@sovereign-sdk/web3 0.0.7 → 0.0.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +6 -6
- package/dist/index.d.ts +6 -6
- package/dist/index.js +5 -11
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -11
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -16,9 +16,9 @@ type RollupSerializer = {
|
|
|
16
16
|
};
|
|
17
17
|
declare function createSerializer(schemaObject: RollupSchema): RollupSerializer;
|
|
18
18
|
|
|
19
|
-
type
|
|
19
|
+
type TransactionResult<Tx> = {
|
|
20
20
|
response: SovereignClient__default.Sequencer.TxCreateResponse;
|
|
21
|
-
|
|
21
|
+
transaction: Tx;
|
|
22
22
|
};
|
|
23
23
|
type RollupConfig = {
|
|
24
24
|
url?: string;
|
|
@@ -40,14 +40,14 @@ type CallParams = {
|
|
|
40
40
|
type SimulateParams = {
|
|
41
41
|
txDetails: TxDetails;
|
|
42
42
|
} & SignerParams;
|
|
43
|
-
declare class StandardRollup<Tx =
|
|
43
|
+
declare class StandardRollup<Tx = any, UnsignedTx = any> {
|
|
44
44
|
private readonly _config;
|
|
45
45
|
private readonly _client;
|
|
46
46
|
private readonly _serializer;
|
|
47
47
|
constructor(config: RollupConfig);
|
|
48
48
|
submitTransaction(transaction: Tx): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
|
|
49
|
-
signAndSubmitTransaction(unsignedTx: UnsignedTx, { signer }: SignerParams): Promise<
|
|
50
|
-
call(runtimeMessage: unknown, { signer, txDetails }: CallParams): Promise<
|
|
49
|
+
signAndSubmitTransaction(unsignedTx: UnsignedTx, { signer }: SignerParams): Promise<TransactionResult<Tx>>;
|
|
50
|
+
call(runtimeMessage: unknown, { signer, txDetails }: CallParams): Promise<TransactionResult<Tx>>;
|
|
51
51
|
simulate(runtimeMessage: unknown, { signer, txDetails }: SimulateParams): Promise<SovereignClient__default.Rollup.SimulateExecutionResponse>;
|
|
52
52
|
get client(): SovereignClient__default;
|
|
53
53
|
get serializer(): RollupSerializer;
|
|
@@ -57,4 +57,4 @@ declare class SovereignError extends Error {
|
|
|
57
57
|
constructor(message: string);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
export { type
|
|
60
|
+
export { type RollupConfig, type RollupSchema, type RollupSerializer, type Signer, SovereignError, StandardRollup, type TransactionResult, createSerializer };
|
package/dist/index.d.ts
CHANGED
|
@@ -16,9 +16,9 @@ type RollupSerializer = {
|
|
|
16
16
|
};
|
|
17
17
|
declare function createSerializer(schemaObject: RollupSchema): RollupSerializer;
|
|
18
18
|
|
|
19
|
-
type
|
|
19
|
+
type TransactionResult<Tx> = {
|
|
20
20
|
response: SovereignClient__default.Sequencer.TxCreateResponse;
|
|
21
|
-
|
|
21
|
+
transaction: Tx;
|
|
22
22
|
};
|
|
23
23
|
type RollupConfig = {
|
|
24
24
|
url?: string;
|
|
@@ -40,14 +40,14 @@ type CallParams = {
|
|
|
40
40
|
type SimulateParams = {
|
|
41
41
|
txDetails: TxDetails;
|
|
42
42
|
} & SignerParams;
|
|
43
|
-
declare class StandardRollup<Tx =
|
|
43
|
+
declare class StandardRollup<Tx = any, UnsignedTx = any> {
|
|
44
44
|
private readonly _config;
|
|
45
45
|
private readonly _client;
|
|
46
46
|
private readonly _serializer;
|
|
47
47
|
constructor(config: RollupConfig);
|
|
48
48
|
submitTransaction(transaction: Tx): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
|
|
49
|
-
signAndSubmitTransaction(unsignedTx: UnsignedTx, { signer }: SignerParams): Promise<
|
|
50
|
-
call(runtimeMessage: unknown, { signer, txDetails }: CallParams): Promise<
|
|
49
|
+
signAndSubmitTransaction(unsignedTx: UnsignedTx, { signer }: SignerParams): Promise<TransactionResult<Tx>>;
|
|
50
|
+
call(runtimeMessage: unknown, { signer, txDetails }: CallParams): Promise<TransactionResult<Tx>>;
|
|
51
51
|
simulate(runtimeMessage: unknown, { signer, txDetails }: SimulateParams): Promise<SovereignClient__default.Rollup.SimulateExecutionResponse>;
|
|
52
52
|
get client(): SovereignClient__default;
|
|
53
53
|
get serializer(): RollupSerializer;
|
|
@@ -57,4 +57,4 @@ declare class SovereignError extends Error {
|
|
|
57
57
|
constructor(message: string);
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
-
export { type
|
|
60
|
+
export { type RollupConfig, type RollupSchema, type RollupSerializer, type Signer, SovereignError, StandardRollup, type TransactionResult, createSerializer };
|
package/dist/index.js
CHANGED
|
@@ -175,7 +175,8 @@ var StandardRollup = class {
|
|
|
175
175
|
msg_sig: signature
|
|
176
176
|
}
|
|
177
177
|
}, unsignedTx);
|
|
178
|
-
|
|
178
|
+
const result = yield this.submitTransaction(tx);
|
|
179
|
+
return { transaction: tx, response: result };
|
|
179
180
|
});
|
|
180
181
|
}
|
|
181
182
|
call(_0, _1) {
|
|
@@ -191,16 +192,9 @@ var StandardRollup = class {
|
|
|
191
192
|
nonce,
|
|
192
193
|
details: txDetails != null ? txDetails : this._config.defaultTxDetails
|
|
193
194
|
};
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
signer
|
|
198
|
-
}
|
|
199
|
-
);
|
|
200
|
-
return {
|
|
201
|
-
response,
|
|
202
|
-
unsignedTx
|
|
203
|
-
};
|
|
195
|
+
return this.signAndSubmitTransaction(unsignedTx, {
|
|
196
|
+
signer
|
|
197
|
+
});
|
|
204
198
|
});
|
|
205
199
|
}
|
|
206
200
|
simulate(_0, _1) {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/rollup.ts","../src/serialization.ts","../src/errors.ts","../src/utils.ts"],"sourcesContent":["export * from \"./signer\";\nexport * from \"./rollup\";\nexport * from \"./serialization\";\nexport * from \"./errors\";\nexport * as SovereignClient from \"@sovereign-sdk/client\";\n","import SovereignClient from \"@sovereign-sdk/client\";\nimport { Base64 } from \"js-base64\";\nimport {\n type RollupSchema,\n type RollupSerializer,\n createSerializer,\n} from \"./serialization\";\nimport type { Signer } from \"./signer\";\nimport { bytesToHex } from \"./utils\";\n\nexport type
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/rollup.ts","../src/serialization.ts","../src/errors.ts","../src/utils.ts"],"sourcesContent":["export * from \"./signer\";\nexport * from \"./rollup\";\nexport * from \"./serialization\";\nexport * from \"./errors\";\nexport * as SovereignClient from \"@sovereign-sdk/client\";\n","import SovereignClient from \"@sovereign-sdk/client\";\nimport { Base64 } from \"js-base64\";\nimport {\n type RollupSchema,\n type RollupSerializer,\n createSerializer,\n} from \"./serialization\";\nimport type { Signer } from \"./signer\";\nimport { bytesToHex } from \"./utils\";\n\nexport type TransactionResult<Tx> = {\n response: SovereignClient.Sequencer.TxCreateResponse;\n transaction: Tx;\n};\n\nexport type RollupConfig = {\n url?: string;\n schema: RollupSchema;\n defaultTxDetails: TxDetails;\n};\n\ntype TxDetails = {\n max_priority_fee_bips: number;\n max_fee: number;\n gas_limit?: number[];\n chain_id: number;\n};\n\ntype SignerParams = {\n signer: Signer;\n};\n\ntype CallParams = {\n txDetails?: TxDetails;\n} & SignerParams;\n\ntype SimulateParams = {\n txDetails: TxDetails;\n} & SignerParams;\n\n// biome-ignore lint/suspicious/noExplicitAny: fix later\nexport class StandardRollup<Tx = any, UnsignedTx = any> {\n private readonly _config: RollupConfig;\n private readonly _client: SovereignClient;\n private readonly _serializer: RollupSerializer;\n\n constructor(config: RollupConfig) {\n this._client = new SovereignClient({ baseURL: config.url });\n this._serializer = createSerializer(config.schema);\n this._config = config;\n }\n\n async submitTransaction(\n transaction: Tx,\n ): Promise<SovereignClient.Sequencer.TxCreateResponse> {\n const serializedTx = this.serializer.serializeTx(transaction);\n\n return this.client.sequencer.txs.create({\n body: Base64.fromUint8Array(serializedTx),\n });\n }\n\n async signAndSubmitTransaction(\n unsignedTx: UnsignedTx,\n { signer }: SignerParams,\n ): Promise<TransactionResult<Tx>> {\n const serializedUnsignedTx =\n this.serializer.serializeUnsignedTx(unsignedTx);\n const signature = await signer.sign(serializedUnsignedTx);\n const publicKey = await signer.publicKey();\n const tx = {\n pub_key: {\n pub_key: publicKey,\n },\n signature: {\n msg_sig: signature,\n },\n ...unsignedTx,\n } as Tx;\n const result = await this.submitTransaction(tx);\n\n return { transaction: tx, response: result };\n }\n\n async call(\n runtimeMessage: unknown,\n { signer, txDetails }: CallParams,\n ): Promise<TransactionResult<Tx>> {\n const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);\n const publicKey = await signer.publicKey();\n const dedup = await this.client.rollup.addresses.dedup(\n bytesToHex(publicKey),\n );\n // biome-ignore lint/suspicious/noExplicitAny: fix later\n const nonce = (dedup.data as any).nonce as number;\n const unsignedTx = {\n runtime_msg: runtimeCall,\n nonce,\n details: txDetails ?? this._config.defaultTxDetails,\n };\n\n return this.signAndSubmitTransaction(unsignedTx as UnsignedTx, {\n signer,\n });\n }\n\n async simulate(\n runtimeMessage: unknown,\n { signer, txDetails }: SimulateParams,\n ): Promise<SovereignClient.Rollup.SimulateExecutionResponse> {\n const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);\n const publicKey = await signer.publicKey();\n const dedup = await this.client.rollup.addresses.dedup(\n bytesToHex(publicKey),\n );\n // biome-ignore lint/suspicious/noExplicitAny: fix later\n const nonce = (dedup.data as any).nonce as number;\n const response = await this.client.rollup.simulate({\n body: {\n details: txDetails,\n encoded_call_message: bytesToHex(runtimeCall),\n nonce,\n sender_pub_key: bytesToHex(publicKey),\n },\n });\n\n // biome-ignore lint/style/noNonNullAssertion: fix later\n return response.data!;\n }\n\n get client(): SovereignClient {\n return this._client;\n }\n\n get serializer(): RollupSerializer {\n return this._serializer;\n }\n}\n","import { KnownTypeId, Schema } from \"@sovereign-sdk/universal-wallet-wasm\";\nimport { SovereignError } from \"./errors\";\n\nexport type RollupSchema = object;\n\nexport type RollupSerializer = {\n serialize(input: unknown, index: number): Uint8Array;\n serializeRuntimeCall(input: unknown): Uint8Array;\n serializeUnsignedTx(input: unknown): Uint8Array;\n serializeTx(input: unknown): Uint8Array;\n};\n\nfunction loadSchema(schemaObject: RollupSchema): Schema {\n try {\n return Schema.fromJSON(JSON.stringify(schemaObject));\n } catch (err) {\n throw new SovereignError(`Failed to create runtime schema due to: ${err}`);\n }\n}\n\nexport function createSerializer(schemaObject: RollupSchema): RollupSerializer {\n const schema = loadSchema(schemaObject);\n\n return {\n serialize(input: unknown, index: number): Uint8Array {\n try {\n return schema.jsonToBorsh(\n index,\n JSON.stringify(input, (_, value) => {\n if (value instanceof Uint8Array) {\n return Array.from(value);\n }\n return value;\n }),\n );\n } catch (err) {\n throw new SovereignError(`Failed to serialize input due to: ${err}`);\n }\n },\n serializeRuntimeCall(input: unknown): Uint8Array {\n return this.serialize(\n input,\n schema.knownTypeIndex(KnownTypeId.RuntimeCall),\n );\n },\n serializeUnsignedTx(input: unknown): Uint8Array {\n return this.serialize(\n input,\n schema.knownTypeIndex(KnownTypeId.UnsignedTransaction),\n );\n },\n serializeTx(input: unknown): Uint8Array {\n return this.serialize(\n input,\n schema.knownTypeIndex(KnownTypeId.Transaction),\n );\n },\n };\n}\n","export class SovereignError extends Error {\n constructor(message: string) {\n super(message);\n\n this.name = this.constructor.name;\n this.stack = new Error().stack;\n }\n}\n","export function hexToBytes(hex: string) {\n if (hex.length && hex.length % 2 !== 0) {\n throw new Error(`Invalid hex string length: ${hex.length}`);\n }\n\n const matches = hex.match(/[\\da-f]{2}/gi);\n\n if (!matches) {\n throw new Error(\"Invalid hex string: No valid hex digits found\");\n }\n\n return new Uint8Array(matches.map((h) => Number.parseInt(h, 16)));\n}\n\nexport function bytesToHex(arr: Uint8Array): string {\n let hex = \"\";\n for (let i = 0; i < arr.length; i++) {\n let hexValue = arr[i].toString(16);\n if (hexValue.length === 1) {\n hexValue = `0${hexValue}`;\n }\n hex += hexValue;\n }\n return hex;\n}\n"],"mappings":"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","names":["SovereignClient","SovereignClient","SovereignClient"]}
|
package/dist/index.mjs
CHANGED
|
@@ -139,7 +139,8 @@ var StandardRollup = class {
|
|
|
139
139
|
msg_sig: signature
|
|
140
140
|
}
|
|
141
141
|
}, unsignedTx);
|
|
142
|
-
|
|
142
|
+
const result = yield this.submitTransaction(tx);
|
|
143
|
+
return { transaction: tx, response: result };
|
|
143
144
|
});
|
|
144
145
|
}
|
|
145
146
|
call(_0, _1) {
|
|
@@ -155,16 +156,9 @@ var StandardRollup = class {
|
|
|
155
156
|
nonce,
|
|
156
157
|
details: txDetails != null ? txDetails : this._config.defaultTxDetails
|
|
157
158
|
};
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
signer
|
|
162
|
-
}
|
|
163
|
-
);
|
|
164
|
-
return {
|
|
165
|
-
response,
|
|
166
|
-
unsignedTx
|
|
167
|
-
};
|
|
159
|
+
return this.signAndSubmitTransaction(unsignedTx, {
|
|
160
|
+
signer
|
|
161
|
+
});
|
|
168
162
|
});
|
|
169
163
|
}
|
|
170
164
|
simulate(_0, _1) {
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rollup.ts","../src/serialization.ts","../src/errors.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":["import SovereignClient from \"@sovereign-sdk/client\";\nimport { Base64 } from \"js-base64\";\nimport {\n type RollupSchema,\n type RollupSerializer,\n createSerializer,\n} from \"./serialization\";\nimport type { Signer } from \"./signer\";\nimport { bytesToHex } from \"./utils\";\n\nexport type
|
|
1
|
+
{"version":3,"sources":["../src/rollup.ts","../src/serialization.ts","../src/errors.ts","../src/utils.ts","../src/index.ts"],"sourcesContent":["import SovereignClient from \"@sovereign-sdk/client\";\nimport { Base64 } from \"js-base64\";\nimport {\n type RollupSchema,\n type RollupSerializer,\n createSerializer,\n} from \"./serialization\";\nimport type { Signer } from \"./signer\";\nimport { bytesToHex } from \"./utils\";\n\nexport type TransactionResult<Tx> = {\n response: SovereignClient.Sequencer.TxCreateResponse;\n transaction: Tx;\n};\n\nexport type RollupConfig = {\n url?: string;\n schema: RollupSchema;\n defaultTxDetails: TxDetails;\n};\n\ntype TxDetails = {\n max_priority_fee_bips: number;\n max_fee: number;\n gas_limit?: number[];\n chain_id: number;\n};\n\ntype SignerParams = {\n signer: Signer;\n};\n\ntype CallParams = {\n txDetails?: TxDetails;\n} & SignerParams;\n\ntype SimulateParams = {\n txDetails: TxDetails;\n} & SignerParams;\n\n// biome-ignore lint/suspicious/noExplicitAny: fix later\nexport class StandardRollup<Tx = any, UnsignedTx = any> {\n private readonly _config: RollupConfig;\n private readonly _client: SovereignClient;\n private readonly _serializer: RollupSerializer;\n\n constructor(config: RollupConfig) {\n this._client = new SovereignClient({ baseURL: config.url });\n this._serializer = createSerializer(config.schema);\n this._config = config;\n }\n\n async submitTransaction(\n transaction: Tx,\n ): Promise<SovereignClient.Sequencer.TxCreateResponse> {\n const serializedTx = this.serializer.serializeTx(transaction);\n\n return this.client.sequencer.txs.create({\n body: Base64.fromUint8Array(serializedTx),\n });\n }\n\n async signAndSubmitTransaction(\n unsignedTx: UnsignedTx,\n { signer }: SignerParams,\n ): Promise<TransactionResult<Tx>> {\n const serializedUnsignedTx =\n this.serializer.serializeUnsignedTx(unsignedTx);\n const signature = await signer.sign(serializedUnsignedTx);\n const publicKey = await signer.publicKey();\n const tx = {\n pub_key: {\n pub_key: publicKey,\n },\n signature: {\n msg_sig: signature,\n },\n ...unsignedTx,\n } as Tx;\n const result = await this.submitTransaction(tx);\n\n return { transaction: tx, response: result };\n }\n\n async call(\n runtimeMessage: unknown,\n { signer, txDetails }: CallParams,\n ): Promise<TransactionResult<Tx>> {\n const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);\n const publicKey = await signer.publicKey();\n const dedup = await this.client.rollup.addresses.dedup(\n bytesToHex(publicKey),\n );\n // biome-ignore lint/suspicious/noExplicitAny: fix later\n const nonce = (dedup.data as any).nonce as number;\n const unsignedTx = {\n runtime_msg: runtimeCall,\n nonce,\n details: txDetails ?? this._config.defaultTxDetails,\n };\n\n return this.signAndSubmitTransaction(unsignedTx as UnsignedTx, {\n signer,\n });\n }\n\n async simulate(\n runtimeMessage: unknown,\n { signer, txDetails }: SimulateParams,\n ): Promise<SovereignClient.Rollup.SimulateExecutionResponse> {\n const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);\n const publicKey = await signer.publicKey();\n const dedup = await this.client.rollup.addresses.dedup(\n bytesToHex(publicKey),\n );\n // biome-ignore lint/suspicious/noExplicitAny: fix later\n const nonce = (dedup.data as any).nonce as number;\n const response = await this.client.rollup.simulate({\n body: {\n details: txDetails,\n encoded_call_message: bytesToHex(runtimeCall),\n nonce,\n sender_pub_key: bytesToHex(publicKey),\n },\n });\n\n // biome-ignore lint/style/noNonNullAssertion: fix later\n return response.data!;\n }\n\n get client(): SovereignClient {\n return this._client;\n }\n\n get serializer(): RollupSerializer {\n return this._serializer;\n }\n}\n","import { KnownTypeId, Schema } from \"@sovereign-sdk/universal-wallet-wasm\";\nimport { SovereignError } from \"./errors\";\n\nexport type RollupSchema = object;\n\nexport type RollupSerializer = {\n serialize(input: unknown, index: number): Uint8Array;\n serializeRuntimeCall(input: unknown): Uint8Array;\n serializeUnsignedTx(input: unknown): Uint8Array;\n serializeTx(input: unknown): Uint8Array;\n};\n\nfunction loadSchema(schemaObject: RollupSchema): Schema {\n try {\n return Schema.fromJSON(JSON.stringify(schemaObject));\n } catch (err) {\n throw new SovereignError(`Failed to create runtime schema due to: ${err}`);\n }\n}\n\nexport function createSerializer(schemaObject: RollupSchema): RollupSerializer {\n const schema = loadSchema(schemaObject);\n\n return {\n serialize(input: unknown, index: number): Uint8Array {\n try {\n return schema.jsonToBorsh(\n index,\n JSON.stringify(input, (_, value) => {\n if (value instanceof Uint8Array) {\n return Array.from(value);\n }\n return value;\n }),\n );\n } catch (err) {\n throw new SovereignError(`Failed to serialize input due to: ${err}`);\n }\n },\n serializeRuntimeCall(input: unknown): Uint8Array {\n return this.serialize(\n input,\n schema.knownTypeIndex(KnownTypeId.RuntimeCall),\n );\n },\n serializeUnsignedTx(input: unknown): Uint8Array {\n return this.serialize(\n input,\n schema.knownTypeIndex(KnownTypeId.UnsignedTransaction),\n );\n },\n serializeTx(input: unknown): Uint8Array {\n return this.serialize(\n input,\n schema.knownTypeIndex(KnownTypeId.Transaction),\n );\n },\n };\n}\n","export class SovereignError extends Error {\n constructor(message: string) {\n super(message);\n\n this.name = this.constructor.name;\n this.stack = new Error().stack;\n }\n}\n","export function hexToBytes(hex: string) {\n if (hex.length && hex.length % 2 !== 0) {\n throw new Error(`Invalid hex string length: ${hex.length}`);\n }\n\n const matches = hex.match(/[\\da-f]{2}/gi);\n\n if (!matches) {\n throw new Error(\"Invalid hex string: No valid hex digits found\");\n }\n\n return new Uint8Array(matches.map((h) => Number.parseInt(h, 16)));\n}\n\nexport function bytesToHex(arr: Uint8Array): string {\n let hex = \"\";\n for (let i = 0; i < arr.length; i++) {\n let hexValue = arr[i].toString(16);\n if (hexValue.length === 1) {\n hexValue = `0${hexValue}`;\n }\n hex += hexValue;\n }\n return hex;\n}\n","export * from \"./signer\";\nexport * from \"./rollup\";\nexport * from \"./serialization\";\nexport * from \"./errors\";\nexport * as SovereignClient from \"@sovereign-sdk/client\";\n"],"mappings":"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","names":["SovereignClient"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sovereign-sdk/web3",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"files": [
|
|
5
5
|
"dist",
|
|
6
6
|
"package.json"
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"typescript": "^5.0.0"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@sovereign-sdk/client": "0.1.0-alpha.
|
|
27
|
+
"@sovereign-sdk/client": "0.1.0-alpha.13",
|
|
28
28
|
"js-base64": "^3.7.7",
|
|
29
29
|
"@sovereign-sdk/universal-wallet-wasm": "^0.1.2"
|
|
30
30
|
},
|