diff --git a/README.md b/README.md index bfa458b..f79f17f 100644 --- a/README.md +++ b/README.md @@ -57,7 +57,7 @@ npm i @orionprotocol/sdk import { OrionUnit, Orion } from "@orionprotocol/sdk"; import { Wallet } from "ethers"; -const orion = new Orion("production"); +const orion = new Orion(); const orionUnit = orion.getUnit("bsc"); // eth, bsc, ftm, polygon, okc available const wallet = new Wallet("0x...", orionUnit.provider); // OrionUnit is chain-in-environment abstraction @@ -74,7 +74,7 @@ const startApp = async (provider: BaseProvider) => { const web3Provider = new providers.Web3Provider(provider); await web3Provider.ready; const signer = web3Provider.getSigner(); // ready to go - const orion = new Orion("production"); + const orion = new Orion(); const orionUnit = orion.getUnit("eth"); // ready to go }; diff --git a/docs/INTEGRATION.md b/docs/INTEGRATION.md index ee36e0b..d3c052e 100644 --- a/docs/INTEGRATION.md +++ b/docs/INTEGRATION.md @@ -7,8 +7,10 @@ Let's consider integration of Orion Protocol with your UI. Orion Protocol's SDK operate with OrionUnit — chain-in-environment abstraction. "Ethereum-in-production", "bsc-in-production", "fantom-in-testing", etc. ```ts -import { OrionUnit } from "@orionprotocol/sdk"; -const orionUnit = new OrionUnit("bsc", "production"); // eth, bsc, ftm available +import { Orion } from "@orionprotocol/sdk"; +const orion = new Orion(); +const bscOrionUnit = orion.getUnit("bsc"); // eth, bsc, ftm, polygon, okc available +const ethOrionUnit = orion.getUnit("eth"); ``` ## 2. Signer accessing diff --git a/package.json b/package.json index 7621622..48f2154 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@orionprotocol/sdk", - "version": "0.17.0-rc.6", + "version": "0.17.0-rc.8", "description": "Orion Protocol SDK", "main": "./lib/esm/index.js", "module": "./lib/esm/index.js", diff --git a/src/Orion/index.ts b/src/Orion/index.ts index 7ccf202..d89253d 100644 --- a/src/Orion/index.ts +++ b/src/Orion/index.ts @@ -20,12 +20,15 @@ type EnvConfig = { // type KnownEnv = 'testing' | 'staging' | 'production'; export default class Orion { + public readonly env?: string; + public readonly units: Partial>; public readonly orionAnalytics: OrionAnalytics; public readonly referralSystem: ReferralSystem; + constructor(); constructor( env: string, overrides?: DeepPartial @@ -40,13 +43,14 @@ export default class Orion { // TODO: bridge constructor( - envOrConfig: string | EnvConfig, + envOrConfig: string | EnvConfig = 'production', overrides?: DeepPartial ) { let config: EnvConfig; if (typeof envOrConfig === 'string') { const envConfig = envs[envOrConfig]; if (!envConfig) throw new Error(`Invalid environment: ${envOrConfig}. Available environments: ${Object.keys(envs).join(', ')}`); + this.env = envOrConfig; config = { analyticsAPI: envConfig.analyticsAPI, referralAPI: envConfig.referralAPI, diff --git a/src/__tests__/basic.test.ts b/src/__tests__/basic.test.ts index 5418f7c..54abae1 100644 --- a/src/__tests__/basic.test.ts +++ b/src/__tests__/basic.test.ts @@ -95,7 +95,8 @@ describe('Orion', () => { }); test('Init Orion production', () => { - const orion = new Orion('production'); + const orion = new Orion(); + expect(orion.env).toBe('production'); expect(orion.orionAnalytics).toBeInstanceOf(OrionAnalytics); expect(orion.referralSystem).toBeInstanceOf(ReferralSystem); expect(orion.unitsArray.length).toBe(5); // eth, bsc, polygon, fantom, okc