@sovereign-sdk/web3 0.0.5 → 0.0.7
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 +14 -8
- package/dist/index.d.ts +14 -8
- package/dist/index.js +25 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +24 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import SovereignClient__default from '@sovereign-sdk/client';
|
|
2
|
+
import * as SovereignClient from '@sovereign-sdk/client';
|
|
3
|
+
export { SovereignClient };
|
|
2
4
|
|
|
3
5
|
interface Signer {
|
|
4
6
|
sign(message: Uint8Array): Promise<Uint8Array>;
|
|
@@ -15,7 +17,7 @@ type RollupSerializer = {
|
|
|
15
17
|
declare function createSerializer(schemaObject: RollupSchema): RollupSerializer;
|
|
16
18
|
|
|
17
19
|
type RollupCallResult = {
|
|
18
|
-
response:
|
|
20
|
+
response: SovereignClient__default.Sequencer.TxCreateResponse;
|
|
19
21
|
unsignedTx: unknown;
|
|
20
22
|
};
|
|
21
23
|
type RollupConfig = {
|
|
@@ -25,9 +27,9 @@ type RollupConfig = {
|
|
|
25
27
|
};
|
|
26
28
|
type TxDetails = {
|
|
27
29
|
max_priority_fee_bips: number;
|
|
28
|
-
max_fee:
|
|
29
|
-
gas_limit?:
|
|
30
|
-
chain_id:
|
|
30
|
+
max_fee: number;
|
|
31
|
+
gas_limit?: number[];
|
|
32
|
+
chain_id: number;
|
|
31
33
|
};
|
|
32
34
|
type SignerParams = {
|
|
33
35
|
signer: Signer;
|
|
@@ -35,15 +37,19 @@ type SignerParams = {
|
|
|
35
37
|
type CallParams = {
|
|
36
38
|
txDetails?: TxDetails;
|
|
37
39
|
} & SignerParams;
|
|
40
|
+
type SimulateParams = {
|
|
41
|
+
txDetails: TxDetails;
|
|
42
|
+
} & SignerParams;
|
|
38
43
|
declare class StandardRollup<Tx = unknown, UnsignedTx = unknown> {
|
|
39
44
|
private readonly _config;
|
|
40
45
|
private readonly _client;
|
|
41
46
|
private readonly _serializer;
|
|
42
47
|
constructor(config: RollupConfig);
|
|
43
|
-
submitTransaction(transaction: Tx): Promise<
|
|
44
|
-
signAndSubmitTransaction(unsignedTx: UnsignedTx, { signer }: SignerParams): Promise<
|
|
48
|
+
submitTransaction(transaction: Tx): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
|
|
49
|
+
signAndSubmitTransaction(unsignedTx: UnsignedTx, { signer }: SignerParams): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
|
|
45
50
|
call(runtimeMessage: unknown, { signer, txDetails }: CallParams): Promise<RollupCallResult>;
|
|
46
|
-
|
|
51
|
+
simulate(runtimeMessage: unknown, { signer, txDetails }: SimulateParams): Promise<SovereignClient__default.Rollup.SimulateExecutionResponse>;
|
|
52
|
+
get client(): SovereignClient__default;
|
|
47
53
|
get serializer(): RollupSerializer;
|
|
48
54
|
}
|
|
49
55
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import SovereignClient__default from '@sovereign-sdk/client';
|
|
2
|
+
import * as SovereignClient from '@sovereign-sdk/client';
|
|
3
|
+
export { SovereignClient };
|
|
2
4
|
|
|
3
5
|
interface Signer {
|
|
4
6
|
sign(message: Uint8Array): Promise<Uint8Array>;
|
|
@@ -15,7 +17,7 @@ type RollupSerializer = {
|
|
|
15
17
|
declare function createSerializer(schemaObject: RollupSchema): RollupSerializer;
|
|
16
18
|
|
|
17
19
|
type RollupCallResult = {
|
|
18
|
-
response:
|
|
20
|
+
response: SovereignClient__default.Sequencer.TxCreateResponse;
|
|
19
21
|
unsignedTx: unknown;
|
|
20
22
|
};
|
|
21
23
|
type RollupConfig = {
|
|
@@ -25,9 +27,9 @@ type RollupConfig = {
|
|
|
25
27
|
};
|
|
26
28
|
type TxDetails = {
|
|
27
29
|
max_priority_fee_bips: number;
|
|
28
|
-
max_fee:
|
|
29
|
-
gas_limit?:
|
|
30
|
-
chain_id:
|
|
30
|
+
max_fee: number;
|
|
31
|
+
gas_limit?: number[];
|
|
32
|
+
chain_id: number;
|
|
31
33
|
};
|
|
32
34
|
type SignerParams = {
|
|
33
35
|
signer: Signer;
|
|
@@ -35,15 +37,19 @@ type SignerParams = {
|
|
|
35
37
|
type CallParams = {
|
|
36
38
|
txDetails?: TxDetails;
|
|
37
39
|
} & SignerParams;
|
|
40
|
+
type SimulateParams = {
|
|
41
|
+
txDetails: TxDetails;
|
|
42
|
+
} & SignerParams;
|
|
38
43
|
declare class StandardRollup<Tx = unknown, UnsignedTx = unknown> {
|
|
39
44
|
private readonly _config;
|
|
40
45
|
private readonly _client;
|
|
41
46
|
private readonly _serializer;
|
|
42
47
|
constructor(config: RollupConfig);
|
|
43
|
-
submitTransaction(transaction: Tx): Promise<
|
|
44
|
-
signAndSubmitTransaction(unsignedTx: UnsignedTx, { signer }: SignerParams): Promise<
|
|
48
|
+
submitTransaction(transaction: Tx): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
|
|
49
|
+
signAndSubmitTransaction(unsignedTx: UnsignedTx, { signer }: SignerParams): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
|
|
45
50
|
call(runtimeMessage: unknown, { signer, txDetails }: CallParams): Promise<RollupCallResult>;
|
|
46
|
-
|
|
51
|
+
simulate(runtimeMessage: unknown, { signer, txDetails }: SimulateParams): Promise<SovereignClient__default.Rollup.SimulateExecutionResponse>;
|
|
52
|
+
get client(): SovereignClient__default;
|
|
47
53
|
get serializer(): RollupSerializer;
|
|
48
54
|
}
|
|
49
55
|
|
package/dist/index.js
CHANGED
|
@@ -64,6 +64,7 @@ var __async = (__this, __arguments, generator) => {
|
|
|
64
64
|
// src/index.ts
|
|
65
65
|
var src_exports = {};
|
|
66
66
|
__export(src_exports, {
|
|
67
|
+
SovereignClient: () => SovereignClient2,
|
|
67
68
|
SovereignError: () => SovereignError,
|
|
68
69
|
StandardRollup: () => StandardRollup,
|
|
69
70
|
createSerializer: () => createSerializer
|
|
@@ -181,7 +182,7 @@ var StandardRollup = class {
|
|
|
181
182
|
return __async(this, arguments, function* (runtimeMessage, { signer, txDetails }) {
|
|
182
183
|
const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);
|
|
183
184
|
const publicKey = yield signer.publicKey();
|
|
184
|
-
const dedup = yield this.client.rollup.addresses.dedup
|
|
185
|
+
const dedup = yield this.client.rollup.addresses.dedup(
|
|
185
186
|
bytesToHex(publicKey)
|
|
186
187
|
);
|
|
187
188
|
const nonce = dedup.data.nonce;
|
|
@@ -202,6 +203,25 @@ var StandardRollup = class {
|
|
|
202
203
|
};
|
|
203
204
|
});
|
|
204
205
|
}
|
|
206
|
+
simulate(_0, _1) {
|
|
207
|
+
return __async(this, arguments, function* (runtimeMessage, { signer, txDetails }) {
|
|
208
|
+
const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);
|
|
209
|
+
const publicKey = yield signer.publicKey();
|
|
210
|
+
const dedup = yield this.client.rollup.addresses.dedup(
|
|
211
|
+
bytesToHex(publicKey)
|
|
212
|
+
);
|
|
213
|
+
const nonce = dedup.data.nonce;
|
|
214
|
+
const response = yield this.client.rollup.simulate({
|
|
215
|
+
body: {
|
|
216
|
+
details: txDetails,
|
|
217
|
+
encoded_call_message: bytesToHex(runtimeCall),
|
|
218
|
+
nonce,
|
|
219
|
+
sender_pub_key: bytesToHex(publicKey)
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
return response.data;
|
|
223
|
+
});
|
|
224
|
+
}
|
|
205
225
|
get client() {
|
|
206
226
|
return this._client;
|
|
207
227
|
}
|
|
@@ -209,8 +229,12 @@ var StandardRollup = class {
|
|
|
209
229
|
return this._serializer;
|
|
210
230
|
}
|
|
211
231
|
};
|
|
232
|
+
|
|
233
|
+
// src/index.ts
|
|
234
|
+
var SovereignClient2 = __toESM(require("@sovereign-sdk/client"));
|
|
212
235
|
// Annotate the CommonJS export names for ESM import in node:
|
|
213
236
|
0 && (module.exports = {
|
|
237
|
+
SovereignClient,
|
|
214
238
|
SovereignError,
|
|
215
239
|
StandardRollup,
|
|
216
240
|
createSerializer
|
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\";\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 RollupCallResult = {\n response: SovereignClient.Sequencer.TxCreateResponse;\n unsignedTx: unknown;\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:
|
|
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 RollupCallResult = {\n response: SovereignClient.Sequencer.TxCreateResponse;\n unsignedTx: unknown;\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\nexport class StandardRollup<Tx = unknown, UnsignedTx = unknown> {\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<SovereignClient.Sequencer.TxCreateResponse> {\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 };\n\n return this.submitTransaction(tx as Tx);\n }\n\n async call(\n runtimeMessage: unknown,\n { signer, txDetails }: CallParams,\n ): Promise<RollupCallResult> {\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 const response = await this.signAndSubmitTransaction(\n unsignedTx as UnsignedTx,\n {\n signer,\n },\n );\n\n return {\n response,\n unsignedTx,\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
|
@@ -146,7 +146,7 @@ var StandardRollup = class {
|
|
|
146
146
|
return __async(this, arguments, function* (runtimeMessage, { signer, txDetails }) {
|
|
147
147
|
const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);
|
|
148
148
|
const publicKey = yield signer.publicKey();
|
|
149
|
-
const dedup = yield this.client.rollup.addresses.dedup
|
|
149
|
+
const dedup = yield this.client.rollup.addresses.dedup(
|
|
150
150
|
bytesToHex(publicKey)
|
|
151
151
|
);
|
|
152
152
|
const nonce = dedup.data.nonce;
|
|
@@ -167,6 +167,25 @@ var StandardRollup = class {
|
|
|
167
167
|
};
|
|
168
168
|
});
|
|
169
169
|
}
|
|
170
|
+
simulate(_0, _1) {
|
|
171
|
+
return __async(this, arguments, function* (runtimeMessage, { signer, txDetails }) {
|
|
172
|
+
const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);
|
|
173
|
+
const publicKey = yield signer.publicKey();
|
|
174
|
+
const dedup = yield this.client.rollup.addresses.dedup(
|
|
175
|
+
bytesToHex(publicKey)
|
|
176
|
+
);
|
|
177
|
+
const nonce = dedup.data.nonce;
|
|
178
|
+
const response = yield this.client.rollup.simulate({
|
|
179
|
+
body: {
|
|
180
|
+
details: txDetails,
|
|
181
|
+
encoded_call_message: bytesToHex(runtimeCall),
|
|
182
|
+
nonce,
|
|
183
|
+
sender_pub_key: bytesToHex(publicKey)
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
return response.data;
|
|
187
|
+
});
|
|
188
|
+
}
|
|
170
189
|
get client() {
|
|
171
190
|
return this._client;
|
|
172
191
|
}
|
|
@@ -174,7 +193,11 @@ var StandardRollup = class {
|
|
|
174
193
|
return this._serializer;
|
|
175
194
|
}
|
|
176
195
|
};
|
|
196
|
+
|
|
197
|
+
// src/index.ts
|
|
198
|
+
import * as SovereignClient2 from "@sovereign-sdk/client";
|
|
177
199
|
export {
|
|
200
|
+
SovereignClient2 as SovereignClient,
|
|
178
201
|
SovereignError,
|
|
179
202
|
StandardRollup,
|
|
180
203
|
createSerializer
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/rollup.ts","../src/serialization.ts","../src/errors.ts","../src/utils.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 RollupCallResult = {\n response: SovereignClient.Sequencer.TxCreateResponse;\n unsignedTx: unknown;\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:
|
|
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 RollupCallResult = {\n response: SovereignClient.Sequencer.TxCreateResponse;\n unsignedTx: unknown;\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\nexport class StandardRollup<Tx = unknown, UnsignedTx = unknown> {\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<SovereignClient.Sequencer.TxCreateResponse> {\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 };\n\n return this.submitTransaction(tx as Tx);\n }\n\n async call(\n runtimeMessage: unknown,\n { signer, txDetails }: CallParams,\n ): Promise<RollupCallResult> {\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 const response = await this.signAndSubmitTransaction(\n unsignedTx as UnsignedTx,\n {\n signer,\n },\n );\n\n return {\n response,\n unsignedTx,\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.7",
|
|
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.12",
|
|
28
28
|
"js-base64": "^3.7.7",
|
|
29
29
|
"@sovereign-sdk/universal-wallet-wasm": "^0.1.2"
|
|
30
30
|
},
|