diff --git a/src/client.ts b/src/client.ts index 98cebd0..2eb034a 100644 --- a/src/client.ts +++ b/src/client.ts @@ -10,6 +10,7 @@ export class SingleEthereum extends ISingleEthereum { public events: ISingleEthereum["events"] = new EventEmitter(); public engine: ISingleEthereum["engine"]; public metadata: ISingleEthereum["metadata"]; + public chainId: ISingleEthereum["chainId"]; static async init(opts: SingleEthereumTypes.Options) { const client = new SingleEthereum(opts); @@ -24,6 +25,7 @@ export class SingleEthereum extends ISingleEthereum { this.name = opts.name || CLIENT_CONTEXT; this.core = opts.core; this.logger = this.core.logger; + this.chainId = opts.chainId; this.engine = new Engine(this); } diff --git a/src/controllers/engine.ts b/src/controllers/engine.ts index 032e50f..df07722 100644 --- a/src/controllers/engine.ts +++ b/src/controllers/engine.ts @@ -19,7 +19,7 @@ import { export class Engine extends ISingleEthereumEngine { public web3wallet: IWeb3Wallet; - public chainId?: number; + public chainId: number; private pendingInternalRequests: { id: number; resolve: (value?: T | PromiseLike) => void; @@ -30,11 +30,13 @@ export class Engine extends ISingleEthereumEngine { constructor(client: ISingleEthereumEngine["client"]) { super(client); + this.chainId = 1; // initialized in init() this.web3wallet = {} as IWeb3Wallet; } public init = async () => { + this.chainId = this.client.chainId; this.web3wallet = await Web3Wallet.init({ core: this.client.core, metadata: this.client.metadata, diff --git a/src/types/client.ts b/src/types/client.ts index c8adf0b..2abd709 100644 --- a/src/types/client.ts +++ b/src/types/client.ts @@ -52,6 +52,7 @@ export declare namespace SingleEthereumTypes { core: ICore; metadata: Metadata; name?: string; + chainId: number; } type Metadata = CoreTypes.Metadata; @@ -95,6 +96,7 @@ export abstract class ISingleEthereum { public abstract logger: Logger; public abstract core: ICore; public abstract metadata: SingleEthereumTypes.Metadata; + public abstract chainId: number; constructor(public opts: SingleEthereumTypes.Options) {} diff --git a/test/auth.spec.ts b/test/auth.spec.ts index eeb27dd..25b922c 100644 --- a/test/auth.spec.ts +++ b/test/auth.spec.ts @@ -42,7 +42,7 @@ describe("Auth Integration", () => { metadata: {} as any, name: "dapp", }); - wallet = await SingleEthereum.init({ core, name: "wallet", metadata: {} as any }); + wallet = await SingleEthereum.init({ core, name: "wallet", metadata: {} as any, chainId: 1 }); expect(wallet).to.be.exist; expect(dapp).to.be.exist; expect(core).to.be.exist; diff --git a/test/sign.spec.ts b/test/sign.spec.ts index 048f080..3fa2b34 100644 --- a/test/sign.spec.ts +++ b/test/sign.spec.ts @@ -58,6 +58,7 @@ describe("Sign Integration", () => { core, name: "wallet", metadata: {} as any, + chainId: 1, }); await new Promise((resolve) => setTimeout(resolve, 1000)); expect(wallet).to.be.exist; @@ -284,6 +285,7 @@ describe("Sign Integration", () => { core, name: "wallet", metadata: {} as any, + chainId: 1, }); // first pair and approve session @@ -670,6 +672,7 @@ describe("Sign Integration", () => { core, name: "wallet", metadata: {} as any, + chainId: 1, }); const expectedError = getSdkError("UNSUPPORTED_CHAINS"); await Promise.all([ @@ -707,6 +710,7 @@ describe("Sign Integration", () => { core, name: "wallet", metadata: {} as any, + chainId: 1, }); const expectedError = getSdkError("UNSUPPORTED_NAMESPACE_KEY"); await Promise.all([ @@ -744,6 +748,7 @@ describe("Sign Integration", () => { core, name: "wallet", metadata: {} as any, + chainId: 1, }); await Promise.all([ new Promise((resolve) => {