@sovereign-sdk/web3 0.0.6 → 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 +19 -13
- package/dist/index.d.ts +19 -13
- package/dist/index.js +28 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +27 -10
- 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>;
|
|
@@ -14,9 +16,9 @@ type RollupSerializer = {
|
|
|
14
16
|
};
|
|
15
17
|
declare function createSerializer(schemaObject: RollupSchema): RollupSerializer;
|
|
16
18
|
|
|
17
|
-
type
|
|
18
|
-
response:
|
|
19
|
-
|
|
19
|
+
type TransactionResult<Tx> = {
|
|
20
|
+
response: SovereignClient__default.Sequencer.TxCreateResponse;
|
|
21
|
+
transaction: Tx;
|
|
20
22
|
};
|
|
21
23
|
type RollupConfig = {
|
|
22
24
|
url?: string;
|
|
@@ -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;
|
|
38
|
-
|
|
40
|
+
type SimulateParams = {
|
|
41
|
+
txDetails: TxDetails;
|
|
42
|
+
} & SignerParams;
|
|
43
|
+
declare class StandardRollup<Tx = any, UnsignedTx = any> {
|
|
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<
|
|
45
|
-
call(runtimeMessage: unknown, { signer, txDetails }: CallParams): Promise<
|
|
46
|
-
|
|
48
|
+
submitTransaction(transaction: Tx): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
|
|
49
|
+
signAndSubmitTransaction(unsignedTx: UnsignedTx, { signer }: SignerParams): Promise<TransactionResult<Tx>>;
|
|
50
|
+
call(runtimeMessage: unknown, { signer, txDetails }: CallParams): Promise<TransactionResult<Tx>>;
|
|
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
|
|
|
@@ -51,4 +57,4 @@ declare class SovereignError extends Error {
|
|
|
51
57
|
constructor(message: string);
|
|
52
58
|
}
|
|
53
59
|
|
|
54
|
-
export { type
|
|
60
|
+
export { type RollupConfig, type RollupSchema, type RollupSerializer, type Signer, SovereignError, StandardRollup, type TransactionResult, createSerializer };
|
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>;
|
|
@@ -14,9 +16,9 @@ type RollupSerializer = {
|
|
|
14
16
|
};
|
|
15
17
|
declare function createSerializer(schemaObject: RollupSchema): RollupSerializer;
|
|
16
18
|
|
|
17
|
-
type
|
|
18
|
-
response:
|
|
19
|
-
|
|
19
|
+
type TransactionResult<Tx> = {
|
|
20
|
+
response: SovereignClient__default.Sequencer.TxCreateResponse;
|
|
21
|
+
transaction: Tx;
|
|
20
22
|
};
|
|
21
23
|
type RollupConfig = {
|
|
22
24
|
url?: string;
|
|
@@ -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;
|
|
38
|
-
|
|
40
|
+
type SimulateParams = {
|
|
41
|
+
txDetails: TxDetails;
|
|
42
|
+
} & SignerParams;
|
|
43
|
+
declare class StandardRollup<Tx = any, UnsignedTx = any> {
|
|
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<
|
|
45
|
-
call(runtimeMessage: unknown, { signer, txDetails }: CallParams): Promise<
|
|
46
|
-
|
|
48
|
+
submitTransaction(transaction: Tx): Promise<SovereignClient__default.Sequencer.TxCreateResponse>;
|
|
49
|
+
signAndSubmitTransaction(unsignedTx: UnsignedTx, { signer }: SignerParams): Promise<TransactionResult<Tx>>;
|
|
50
|
+
call(runtimeMessage: unknown, { signer, txDetails }: CallParams): Promise<TransactionResult<Tx>>;
|
|
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
|
|
|
@@ -51,4 +57,4 @@ declare class SovereignError extends Error {
|
|
|
51
57
|
constructor(message: string);
|
|
52
58
|
}
|
|
53
59
|
|
|
54
|
-
export { type
|
|
60
|
+
export { type RollupConfig, type RollupSchema, type RollupSerializer, type Signer, SovereignError, StandardRollup, type TransactionResult, createSerializer };
|
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
|
|
@@ -174,7 +175,8 @@ var StandardRollup = class {
|
|
|
174
175
|
msg_sig: signature
|
|
175
176
|
}
|
|
176
177
|
}, unsignedTx);
|
|
177
|
-
|
|
178
|
+
const result = yield this.submitTransaction(tx);
|
|
179
|
+
return { transaction: tx, response: result };
|
|
178
180
|
});
|
|
179
181
|
}
|
|
180
182
|
call(_0, _1) {
|
|
@@ -190,16 +192,28 @@ var StandardRollup = class {
|
|
|
190
192
|
nonce,
|
|
191
193
|
details: txDetails != null ? txDetails : this._config.defaultTxDetails
|
|
192
194
|
};
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
195
|
+
return this.signAndSubmitTransaction(unsignedTx, {
|
|
196
|
+
signer
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
simulate(_0, _1) {
|
|
201
|
+
return __async(this, arguments, function* (runtimeMessage, { signer, txDetails }) {
|
|
202
|
+
const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);
|
|
203
|
+
const publicKey = yield signer.publicKey();
|
|
204
|
+
const dedup = yield this.client.rollup.addresses.dedup(
|
|
205
|
+
bytesToHex(publicKey)
|
|
198
206
|
);
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
207
|
+
const nonce = dedup.data.nonce;
|
|
208
|
+
const response = yield this.client.rollup.simulate({
|
|
209
|
+
body: {
|
|
210
|
+
details: txDetails,
|
|
211
|
+
encoded_call_message: bytesToHex(runtimeCall),
|
|
212
|
+
nonce,
|
|
213
|
+
sender_pub_key: bytesToHex(publicKey)
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
return response.data;
|
|
203
217
|
});
|
|
204
218
|
}
|
|
205
219
|
get client() {
|
|
@@ -209,8 +223,12 @@ var StandardRollup = class {
|
|
|
209
223
|
return this._serializer;
|
|
210
224
|
}
|
|
211
225
|
};
|
|
226
|
+
|
|
227
|
+
// src/index.ts
|
|
228
|
+
var SovereignClient2 = __toESM(require("@sovereign-sdk/client"));
|
|
212
229
|
// Annotate the CommonJS export names for ESM import in node:
|
|
213
230
|
0 && (module.exports = {
|
|
231
|
+
SovereignClient,
|
|
214
232
|
SovereignError,
|
|
215
233
|
StandardRollup,
|
|
216
234
|
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
|
|
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,28 @@ var StandardRollup = class {
|
|
|
155
156
|
nonce,
|
|
156
157
|
details: txDetails != null ? txDetails : this._config.defaultTxDetails
|
|
157
158
|
};
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
159
|
+
return this.signAndSubmitTransaction(unsignedTx, {
|
|
160
|
+
signer
|
|
161
|
+
});
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
simulate(_0, _1) {
|
|
165
|
+
return __async(this, arguments, function* (runtimeMessage, { signer, txDetails }) {
|
|
166
|
+
const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);
|
|
167
|
+
const publicKey = yield signer.publicKey();
|
|
168
|
+
const dedup = yield this.client.rollup.addresses.dedup(
|
|
169
|
+
bytesToHex(publicKey)
|
|
163
170
|
);
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
171
|
+
const nonce = dedup.data.nonce;
|
|
172
|
+
const response = yield this.client.rollup.simulate({
|
|
173
|
+
body: {
|
|
174
|
+
details: txDetails,
|
|
175
|
+
encoded_call_message: bytesToHex(runtimeCall),
|
|
176
|
+
nonce,
|
|
177
|
+
sender_pub_key: bytesToHex(publicKey)
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
return response.data;
|
|
168
181
|
});
|
|
169
182
|
}
|
|
170
183
|
get client() {
|
|
@@ -174,7 +187,11 @@ var StandardRollup = class {
|
|
|
174
187
|
return this._serializer;
|
|
175
188
|
}
|
|
176
189
|
};
|
|
190
|
+
|
|
191
|
+
// src/index.ts
|
|
192
|
+
import * as SovereignClient2 from "@sovereign-sdk/client";
|
|
177
193
|
export {
|
|
194
|
+
SovereignClient2 as SovereignClient,
|
|
178
195
|
SovereignError,
|
|
179
196
|
StandardRollup,
|
|
180
197
|
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
|
|
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
|
},
|