@sovereign-sdk/web3 0.0.11 → 0.0.12

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 CHANGED
@@ -58,6 +58,7 @@ declare class StandardRollup<T extends BaseTypeSpec = BaseTypeSpec> {
58
58
  get ledger(): SovereignClient__default.Ledger;
59
59
  get sequencer(): SovereignClient__default.Sequencer;
60
60
  get rollup(): SovereignClient__default.Rollup;
61
+ get http(): SovereignClient__default;
61
62
  get serializer(): RollupSerializer;
62
63
  }
63
64
 
package/dist/index.d.ts CHANGED
@@ -58,6 +58,7 @@ declare class StandardRollup<T extends BaseTypeSpec = BaseTypeSpec> {
58
58
  get ledger(): SovereignClient__default.Ledger;
59
59
  get sequencer(): SovereignClient__default.Sequencer;
60
60
  get rollup(): SovereignClient__default.Rollup;
61
+ get http(): SovereignClient__default;
61
62
  get serializer(): RollupSerializer;
62
63
  }
63
64
 
package/dist/index.js CHANGED
@@ -224,6 +224,9 @@ var StandardRollup = class {
224
224
  get rollup() {
225
225
  return this._client.rollup;
226
226
  }
227
+ get http() {
228
+ return this._client;
229
+ }
227
230
  get serializer() {
228
231
  return this._serializer;
229
232
  }
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 \"./rollup\";\nexport * from \"./serialization\";\nexport * from \"./errors\";\nexport * from \"./type-spec\";\nexport * as SovereignClient from \"@sovereign-sdk/client\";\n","import SovereignClient from \"@sovereign-sdk/client\";\nimport type { Signer } from \"@sovereign-sdk/signers\";\nimport { Base64 } from \"js-base64\";\nimport {\n type RollupSchema,\n type RollupSerializer,\n createSerializer,\n} from \"./serialization\";\nimport type { BaseTypeSpec } from \"./type-spec\";\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\nexport class StandardRollup<T extends BaseTypeSpec = BaseTypeSpec> {\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: T[\"Transaction\"],\n ): Promise<SovereignClient.Sequencer.TxCreateResponse> {\n const serializedTx = this.serializer.serializeTx(transaction);\n\n return this.sequencer.txs.create({\n body: Base64.fromUint8Array(serializedTx),\n });\n }\n\n async signAndSubmitTransaction(\n unsignedTx: T[\"UnsignedTransaction\"],\n { signer }: SignerParams,\n ): Promise<TransactionResult<T[\"Transaction\"]>> {\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 T[\"Transaction\"];\n const result = await this.submitTransaction(tx);\n\n return { transaction: tx, response: result };\n }\n\n async call(\n runtimeMessage: T[\"RuntimeCall\"],\n { signer, txDetails }: CallParams,\n ): Promise<TransactionResult<T[\"Transaction\"]>> {\n const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);\n const publicKey = await signer.publicKey();\n const dedup = await this.rollup.addresses.dedup(bytesToHex(publicKey));\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(\n unsignedTx as T[\"UnsignedTransaction\"],\n {\n signer,\n },\n );\n }\n\n async simulate(\n runtimeMessage: T[\"RuntimeCall\"],\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.rollup.addresses.dedup(bytesToHex(publicKey));\n // biome-ignore lint/suspicious/noExplicitAny: fix later\n const nonce = (dedup.data as any).nonce as number;\n const response = await this.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 ledger(): SovereignClient.Ledger {\n return this._client.ledger;\n }\n\n get sequencer(): SovereignClient.Sequencer {\n return this._client.sequencer;\n }\n\n get rollup(): SovereignClient.Rollup {\n return this._client.rollup;\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"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/rollup.ts","../src/serialization.ts","../src/errors.ts","../src/utils.ts"],"sourcesContent":["export * from \"./rollup\";\nexport * from \"./serialization\";\nexport * from \"./errors\";\nexport * from \"./type-spec\";\nexport * as SovereignClient from \"@sovereign-sdk/client\";\n","import SovereignClient from \"@sovereign-sdk/client\";\nimport type { Signer } from \"@sovereign-sdk/signers\";\nimport { Base64 } from \"js-base64\";\nimport {\n type RollupSchema,\n type RollupSerializer,\n createSerializer,\n} from \"./serialization\";\nimport type { BaseTypeSpec } from \"./type-spec\";\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\nexport class StandardRollup<T extends BaseTypeSpec = BaseTypeSpec> {\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: T[\"Transaction\"],\n ): Promise<SovereignClient.Sequencer.TxCreateResponse> {\n const serializedTx = this.serializer.serializeTx(transaction);\n\n return this.sequencer.txs.create({\n body: Base64.fromUint8Array(serializedTx),\n });\n }\n\n async signAndSubmitTransaction(\n unsignedTx: T[\"UnsignedTransaction\"],\n { signer }: SignerParams,\n ): Promise<TransactionResult<T[\"Transaction\"]>> {\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 T[\"Transaction\"];\n const result = await this.submitTransaction(tx);\n\n return { transaction: tx, response: result };\n }\n\n async call(\n runtimeMessage: T[\"RuntimeCall\"],\n { signer, txDetails }: CallParams,\n ): Promise<TransactionResult<T[\"Transaction\"]>> {\n const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);\n const publicKey = await signer.publicKey();\n const dedup = await this.rollup.addresses.dedup(bytesToHex(publicKey));\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(\n unsignedTx as T[\"UnsignedTransaction\"],\n {\n signer,\n },\n );\n }\n\n async simulate(\n runtimeMessage: T[\"RuntimeCall\"],\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.rollup.addresses.dedup(bytesToHex(publicKey));\n // biome-ignore lint/suspicious/noExplicitAny: fix later\n const nonce = (dedup.data as any).nonce as number;\n const response = await this.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 ledger(): SovereignClient.Ledger {\n return this._client.ledger;\n }\n\n get sequencer(): SovereignClient.Sequencer {\n return this._client.sequencer;\n }\n\n get rollup(): SovereignClient.Rollup {\n return this._client.rollup;\n }\n\n get http(): 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
@@ -188,6 +188,9 @@ var StandardRollup = class {
188
188
  get rollup() {
189
189
  return this._client.rollup;
190
190
  }
191
+ get http() {
192
+ return this._client;
193
+ }
191
194
  get serializer() {
192
195
  return this._serializer;
193
196
  }
@@ -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 type { Signer } from \"@sovereign-sdk/signers\";\nimport { Base64 } from \"js-base64\";\nimport {\n type RollupSchema,\n type RollupSerializer,\n createSerializer,\n} from \"./serialization\";\nimport type { BaseTypeSpec } from \"./type-spec\";\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\nexport class StandardRollup<T extends BaseTypeSpec = BaseTypeSpec> {\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: T[\"Transaction\"],\n ): Promise<SovereignClient.Sequencer.TxCreateResponse> {\n const serializedTx = this.serializer.serializeTx(transaction);\n\n return this.sequencer.txs.create({\n body: Base64.fromUint8Array(serializedTx),\n });\n }\n\n async signAndSubmitTransaction(\n unsignedTx: T[\"UnsignedTransaction\"],\n { signer }: SignerParams,\n ): Promise<TransactionResult<T[\"Transaction\"]>> {\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 T[\"Transaction\"];\n const result = await this.submitTransaction(tx);\n\n return { transaction: tx, response: result };\n }\n\n async call(\n runtimeMessage: T[\"RuntimeCall\"],\n { signer, txDetails }: CallParams,\n ): Promise<TransactionResult<T[\"Transaction\"]>> {\n const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);\n const publicKey = await signer.publicKey();\n const dedup = await this.rollup.addresses.dedup(bytesToHex(publicKey));\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(\n unsignedTx as T[\"UnsignedTransaction\"],\n {\n signer,\n },\n );\n }\n\n async simulate(\n runtimeMessage: T[\"RuntimeCall\"],\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.rollup.addresses.dedup(bytesToHex(publicKey));\n // biome-ignore lint/suspicious/noExplicitAny: fix later\n const nonce = (dedup.data as any).nonce as number;\n const response = await this.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 ledger(): SovereignClient.Ledger {\n return this._client.ledger;\n }\n\n get sequencer(): SovereignClient.Sequencer {\n return this._client.sequencer;\n }\n\n get rollup(): SovereignClient.Rollup {\n return this._client.rollup;\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 \"./rollup\";\nexport * from \"./serialization\";\nexport * from \"./errors\";\nexport * from \"./type-spec\";\nexport * as SovereignClient from \"@sovereign-sdk/client\";\n"],"mappings":"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","names":["SovereignClient"]}
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 type { Signer } from \"@sovereign-sdk/signers\";\nimport { Base64 } from \"js-base64\";\nimport {\n type RollupSchema,\n type RollupSerializer,\n createSerializer,\n} from \"./serialization\";\nimport type { BaseTypeSpec } from \"./type-spec\";\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\nexport class StandardRollup<T extends BaseTypeSpec = BaseTypeSpec> {\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: T[\"Transaction\"],\n ): Promise<SovereignClient.Sequencer.TxCreateResponse> {\n const serializedTx = this.serializer.serializeTx(transaction);\n\n return this.sequencer.txs.create({\n body: Base64.fromUint8Array(serializedTx),\n });\n }\n\n async signAndSubmitTransaction(\n unsignedTx: T[\"UnsignedTransaction\"],\n { signer }: SignerParams,\n ): Promise<TransactionResult<T[\"Transaction\"]>> {\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 T[\"Transaction\"];\n const result = await this.submitTransaction(tx);\n\n return { transaction: tx, response: result };\n }\n\n async call(\n runtimeMessage: T[\"RuntimeCall\"],\n { signer, txDetails }: CallParams,\n ): Promise<TransactionResult<T[\"Transaction\"]>> {\n const runtimeCall = this.serializer.serializeRuntimeCall(runtimeMessage);\n const publicKey = await signer.publicKey();\n const dedup = await this.rollup.addresses.dedup(bytesToHex(publicKey));\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(\n unsignedTx as T[\"UnsignedTransaction\"],\n {\n signer,\n },\n );\n }\n\n async simulate(\n runtimeMessage: T[\"RuntimeCall\"],\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.rollup.addresses.dedup(bytesToHex(publicKey));\n // biome-ignore lint/suspicious/noExplicitAny: fix later\n const nonce = (dedup.data as any).nonce as number;\n const response = await this.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 ledger(): SovereignClient.Ledger {\n return this._client.ledger;\n }\n\n get sequencer(): SovereignClient.Sequencer {\n return this._client.sequencer;\n }\n\n get rollup(): SovereignClient.Rollup {\n return this._client.rollup;\n }\n\n get http(): 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 \"./rollup\";\nexport * from \"./serialization\";\nexport * from \"./errors\";\nexport * from \"./type-spec\";\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.11",
3
+ "version": "0.0.12",
4
4
  "files": [
5
5
  "dist",
6
6
  "package.json"
@@ -26,8 +26,8 @@
26
26
  "dependencies": {
27
27
  "@sovereign-sdk/client": "0.1.0-alpha.13",
28
28
  "js-base64": "^3.7.7",
29
- "@sovereign-sdk/signers": "^0.0.2",
30
- "@sovereign-sdk/universal-wallet-wasm": "^0.1.3"
29
+ "@sovereign-sdk/universal-wallet-wasm": "^0.1.3",
30
+ "@sovereign-sdk/signers": "^0.0.2"
31
31
  },
32
32
  "publishConfig": {
33
33
  "access": "public"