@xyo-network/xl1-rpc 1.7.8 → 1.7.9
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/neutral/index.mjs +33 -16
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts +12 -4
- package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts.map +1 -1
- package/dist/neutral/provider/provider/MemoryXyoProvider.d.ts +9 -1
- package/dist/neutral/provider/provider/MemoryXyoProvider.d.ts.map +1 -1
- package/dist/node/index-node.mjs +33 -16
- package/dist/node/index-node.mjs.map +1 -1
- package/dist/node/provider/host/JsonRpcXyoGateway.d.ts +12 -4
- package/dist/node/provider/host/JsonRpcXyoGateway.d.ts.map +1 -1
- package/dist/node/provider/provider/MemoryXyoProvider.d.ts +9 -1
- package/dist/node/provider/provider/MemoryXyoProvider.d.ts.map +1 -1
- package/package.json +23 -15
- package/src/provider/host/JsonRpcXyoGateway.ts +25 -7
- package/src/provider/network/spec/XyoNetwork.spec.ts +77 -0
- package/src/provider/provider/MemoryXyoProvider.ts +42 -18
- package/src/provider/provider/spec/MemoryXyoProvider.spec.ts +25 -0
- package/src/provider/signer/spec/RpcEngineXyoSigner.spec.ts +46 -0
- package/src/provider/viewer/spec/JsonRpcXyoViewer.spec.ts +172 -0
- package/src/types/schema/common/spec/BigIntSchema.spec.ts +20 -0
- package/src/types/schema/common/spec/HydratedBlockSchema.spec.ts +93 -0
- package/vitest.config.ts +0 -11
- package/xy.config.ts +0 -11
package/dist/neutral/index.mjs
CHANGED
|
@@ -60,12 +60,21 @@ var rpcMethodHandlersFromProvider = /* @__PURE__ */ __name((provider) => {
|
|
|
60
60
|
|
|
61
61
|
// src/provider/host/JsonRpcXyoGateway.ts
|
|
62
62
|
import { assertEx } from "@xylabs/assert";
|
|
63
|
-
var
|
|
63
|
+
var AbstractXyoGateway = class {
|
|
64
|
+
static {
|
|
65
|
+
__name(this, "AbstractXyoGateway");
|
|
66
|
+
}
|
|
67
|
+
async submitTransaction(elevatedPayloads, additionalPayloads) {
|
|
68
|
+
return assertEx(assertEx(await this.activeConnection(), () => "No active connection available for transaction submission").submitTransaction, () => "Active connection does not support transaction submission")(elevatedPayloads, additionalPayloads);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
var JsonRpcXyoGateway = class extends AbstractXyoGateway {
|
|
64
72
|
static {
|
|
65
73
|
__name(this, "JsonRpcXyoGateway");
|
|
66
74
|
}
|
|
67
75
|
_transport;
|
|
68
76
|
constructor(transport) {
|
|
77
|
+
super();
|
|
69
78
|
this._transport = transport;
|
|
70
79
|
}
|
|
71
80
|
activeConnection() {
|
|
@@ -86,10 +95,6 @@ var JsonRpcXyoGateway = class {
|
|
|
86
95
|
revokePermissions(permissions) {
|
|
87
96
|
return this._transport.sendRequest("xyoGateway_revokePermissions", permissions);
|
|
88
97
|
}
|
|
89
|
-
async submitTransaction(tx) {
|
|
90
|
-
const runner = assertEx((await this.activeConnection())?.runner, () => "No runner available for transaction submission");
|
|
91
|
-
return await runner.broadcastTransaction(tx);
|
|
92
|
-
}
|
|
93
98
|
};
|
|
94
99
|
|
|
95
100
|
// src/provider/network/MemoryXyoNetwork.ts
|
|
@@ -194,20 +199,31 @@ var MemoryXyoProvider = class {
|
|
|
194
199
|
get viewer() {
|
|
195
200
|
return this._viewer;
|
|
196
201
|
}
|
|
202
|
+
/** @deprecated use submitTransaction instead */
|
|
197
203
|
async send(elevatedPayloads, additionalPayloads, chain, nbf, exp, from, fees) {
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
204
|
+
return (await this.submitTransaction(elevatedPayloads, additionalPayloads, {
|
|
205
|
+
chain,
|
|
206
|
+
nbf,
|
|
207
|
+
exp,
|
|
208
|
+
from,
|
|
209
|
+
fees
|
|
210
|
+
}))[0];
|
|
211
|
+
}
|
|
212
|
+
async submitTransaction(elevatedPayloads, additionalPayloads, { chain, exp, fees, from, nbf } = {}) {
|
|
213
|
+
const chainResolved = chain ?? await this._viewer?.chainId();
|
|
214
|
+
if (chainResolved === void 0) throw new Error("Failed to determine chain");
|
|
215
|
+
const nbfResolved = Math.max(await this._viewer?.currentBlockNumber() ?? 0, nbf ?? 0);
|
|
216
|
+
const expResolved = exp ?? nbfResolved + 1e3;
|
|
217
|
+
const feesResolved = fees ?? defaultTransactionFees;
|
|
218
|
+
const fromResolved = from ?? await this._signer?.address();
|
|
219
|
+
if (fromResolved === void 0) throw new Error("Failed to determine from address");
|
|
220
|
+
const signedTransaction = assertEx2(await this._signer?.createSignedTransaction(chainResolved, elevatedPayloads, additionalPayloads, nbfResolved, expResolved, feesResolved, fromResolved), () => "Failed to create transaction");
|
|
221
|
+
const hydratedTransaction = [
|
|
207
222
|
await PayloadBuilder.addStorageMeta(signedTransaction),
|
|
208
223
|
await PayloadBuilder.addStorageMeta(elevatedPayloads)
|
|
209
|
-
]
|
|
210
|
-
|
|
224
|
+
];
|
|
225
|
+
assertEx2(await this.runner?.broadcastTransaction(hydratedTransaction), () => "Failed to broadcast transaction");
|
|
226
|
+
return hydratedTransaction;
|
|
211
227
|
}
|
|
212
228
|
};
|
|
213
229
|
|
|
@@ -1243,6 +1259,7 @@ var RpcXyoProvider = class extends MemoryXyoProvider {
|
|
|
1243
1259
|
}
|
|
1244
1260
|
};
|
|
1245
1261
|
export {
|
|
1262
|
+
AbstractXyoGateway,
|
|
1246
1263
|
AllRpcSchemas,
|
|
1247
1264
|
CaveatTypesSchema,
|
|
1248
1265
|
CaveatsSchema,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/engine/requestSchemas.ts","../../src/engine/rpcMethodHandlersFromRunner.ts","../../src/engine/rpcMethodHandlersFromSigner.ts","../../src/engine/rpcMethodHandlersFromViewer.ts","../../src/engine/rpcMethodHandlersFromProvider.ts","../../src/provider/host/JsonRpcXyoGateway.ts","../../src/provider/network/MemoryXyoNetwork.ts","../../src/provider/network/lib/FailedNetworkStatusPayloads.ts","../../src/provider/network/lib/StatusNetworks.ts","../../src/provider/provider/MemoryXyoProvider.ts","../../src/types/ErrorCodes.ts","../../src/types/JsonRpc.ts","../../src/types/schema/XyoProviderRpcSchemas.ts","../../src/types/schema/common/AddressSchema.ts","../../src/types/schema/common/BigIntSchema.ts","../../src/types/schema/common/BlockBoundWitnessSchema.ts","../../src/types/schema/common/BoundWitnessSchema.ts","../../src/types/schema/common/HashSchema.ts","../../src/types/schema/common/HexSchema.ts","../../src/types/schema/common/PayloadSchema.ts","../../src/types/schema/common/StorageMetaSchema.ts","../../src/types/schema/common/SequenceSchema.ts","../../src/types/schema/common/HydratedBlockSchema.ts","../../src/types/schema/common/HydratedTransactionSchema.ts","../../src/types/schema/common/TransactionBoundWitnessSchema.ts","../../src/types/schema/common/TransactionFees.ts","../../src/types/schema/XyoRunnerRpcSchemas.ts","../../src/types/schema/XyoSignerRpcSchemas.ts","../../src/types/schema/XyoViewerRpcSchemas.ts","../../src/types/schema/AllRpcSchemas.ts","../../src/types/schema/createRequestSchema.ts","../../src/types/schema/createResponseSchema.ts","../../src/types/schema/XyoHostRpcSchemas.ts","../../src/transport/HttpRpcTransport.ts","../../src/transport/MemoryRpcTransport.ts","../../src/transport/post-message/PostMessageRpcTransport.ts","../../src/transport/post-message/helpers.ts","../../src/transport/post-message/SessionEnvelope.ts","../../src/provider/runner/JsonRpcXyoRunner.ts","../../src/provider/runner/MemoryXyoRunner.ts","../../src/provider/runner/NodeXyoRunner.ts","../../src/provider/signer/JsonRpcXyoSigner.ts","../../src/provider/signer/MemoryXyoSigner.ts","../../src/provider/viewer/JsonRpcXyoViewer.ts","../../src/provider/provider/confirmTransaction.ts","../../src/provider/provider/RpcXyoProvider.ts"],"sourcesContent":["import type { AnyZodObject } from 'zod'\n\nexport const requestSchemas: Record<string, AnyZodObject | undefined> = {}\n","import type { XyoRunner } from '@xyo-network/xl1-protocol'\n\nimport type { XyoRunnerRpcMethodHandlers } from '../types/index.ts'\n\nexport const rpcMethodHandlersFromRunner = (runner: XyoRunner): XyoRunnerRpcMethodHandlers => {\n return { xyoRunner_broadcastTransaction: params => runner.broadcastTransaction(...(params ?? [])) }\n}\n","import type { XyoSigner } from '@xyo-network/xl1-protocol'\n\nimport type { XyoSignerRpcMethodHandlers } from '../types/index.ts'\n\nexport const rpcMethodHandlersFromSigner = (signer: XyoSigner): XyoSignerRpcMethodHandlers => {\n return {\n xyoSigner_address: params => signer.address(...(params ?? [])),\n xyoSigner_createSignedTransaction: params => signer.createSignedTransaction(...(params ?? [])),\n }\n}\n","import type { XyoViewer } from '@xyo-network/xl1-protocol'\n\nimport type { XyoViewerRpcMethodHandlers } from '../types/index.ts'\n\nexport const rpcMethodHandlersFromViewer = (viewer: XyoViewer): XyoViewerRpcMethodHandlers => {\n return {\n xyoViewer_accountBalance: params => viewer.accountBalance(...(params ?? [])),\n xyoViewer_accountHistory: params => viewer.accountHistory(...(params ?? [])),\n xyoViewer_blockByHash: params => viewer.blockByHash(...(params ?? [])),\n xyoViewer_blockByNumber: params => viewer.blockByNumber(...(params ?? [])),\n xyoViewer_blocksByHash: params => viewer.blocksByHash(...(params ?? [])),\n xyoViewer_chainId: params => viewer.chainId(...(params ?? [])),\n xyoViewer_currentBlock: params => viewer.currentBlock(...(params ?? [])),\n xyoViewer_currentBlockHash: params => viewer.currentBlockHash(...(params ?? [])),\n xyoViewer_currentBlockNumber: params => viewer.currentBlockNumber(...(params ?? [])),\n xyoViewer_transactionByBlockHashAndIndex: params => viewer.transactionByBlockHashAndIndex(...(params ?? [])),\n xyoViewer_transactionByBlockNumberAndIndex: params => viewer.transactionByBlockNumberAndIndex(...(params ?? [])),\n xyoViewer_transactionByHash: params => viewer.transactionByHash(...(params ?? [])),\n }\n}\n","import type { XyoConnectionProvider } from '@xyo-network/xl1-protocol'\n\nimport type { XyoProviderRpcMethodHandlers } from '../types/index.ts'\nimport { rpcMethodHandlersFromRunner } from './rpcMethodHandlersFromRunner.ts'\nimport { rpcMethodHandlersFromSigner } from './rpcMethodHandlersFromSigner.ts'\nimport { rpcMethodHandlersFromViewer } from './rpcMethodHandlersFromViewer.ts'\n\nexport const rpcMethodHandlersFromProvider = (provider: XyoConnectionProvider): XyoProviderRpcMethodHandlers => {\n const {\n runner, signer, viewer,\n } = provider\n let result: XyoProviderRpcMethodHandlers = { xyoProvider_send: params => (provider as Required<XyoConnectionProvider>).send(...(params ?? [])) }\n if (runner) result = { ...result, ...rpcMethodHandlersFromRunner(runner) }\n if (signer) result = { ...result, ...rpcMethodHandlersFromSigner(signer) }\n if (viewer) result = { ...result, ...rpcMethodHandlersFromViewer(viewer) }\n return result\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Hash } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport type {\n HydratedTransaction, InvokerPermission, Permission,\n XyoConnectionProvider,\n XyoGatewayProvider,\n XyoRpcConnectionConfig,\n} from '@xyo-network/xl1-protocol'\n\nimport type { RpcTransport } from '../../transport/index.ts'\nimport type { XyoGatewayRpcSchemas } from '../../types/index.ts'\n\nexport class JsonRpcXyoGateway implements XyoGatewayProvider {\n private readonly _transport: RpcTransport<typeof XyoGatewayRpcSchemas>\n\n constructor(transport: RpcTransport<typeof XyoGatewayRpcSchemas>) {\n this._transport = transport\n }\n\n activeConnection(): Promisable<XyoConnectionProvider | undefined> {\n throw new Error('Method not implemented.')\n }\n\n addConnection(_config: XyoRpcConnectionConfig): Promisable<XyoConnectionProvider> {\n throw new Error('Method not implemented.')\n }\n\n connections(): Promisable<Record<string, XyoConnectionProvider>> {\n throw new Error('Method not implemented.')\n }\n\n getPermissions(): Promisable<InvokerPermission[]> {\n return this._transport.sendRequest('xyoGateway_getPermissions')\n }\n\n requestPermissions(permissions: Permission[]): Promisable<boolean> {\n return this._transport.sendRequest('xyoGateway_requestPermissions', permissions)\n }\n\n revokePermissions(permissions: Permission[]): Promisable<boolean> {\n return this._transport.sendRequest('xyoGateway_revokePermissions', permissions)\n }\n\n async submitTransaction(tx: HydratedTransaction): Promise<Hash> {\n const runner = assertEx((await this.activeConnection())?.runner, () => 'No runner available for transaction submission')\n return await runner.broadcastTransaction(tx)\n }\n}\n","import { isUndefined } from '@xylabs/typeof'\nimport type {\n NetworkId, NetworkStatus, XyoNetwork,\n} from '@xyo-network/xl1-protocol'\nimport { isNetworkStatus } from '@xyo-network/xl1-protocol'\nimport axios from 'axios'\n\nimport {\n errorStatus, StatusNetworks, unknownStatus,\n} from './lib/index.ts'\n\nexport class MemoryXyoNetwork implements XyoNetwork {\n protected readonly _networkId: NetworkId\n\n constructor(networkId: NetworkId) {\n this._networkId = networkId\n }\n\n async status(): Promise<NetworkStatus> {\n const statusNetwork = StatusNetworks[this._networkId]\n if (isUndefined(statusNetwork)) {\n throw new Error(`Unknown status network ID: ${this._networkId}`)\n }\n\n return await this.makeRequest(statusNetwork.statusUrl)\n }\n\n private async makeRequest(url: string): Promise<NetworkStatus> {\n try {\n const response = await axios.get(url)\n if (isNetworkStatus(response.data)) {\n return response.data\n } else {\n if (response.status === 200) {\n console.error('Unknown network status response:', response.data)\n\n return unknownStatus\n }\n return errorStatus\n }\n } catch (error) {\n console.error('Error fetching network status:', error)\n return errorStatus\n }\n }\n}\n","import type { NetworkStatus } from '@xyo-network/xl1-protocol'\nimport { NetworkStatusSchema } from '@xyo-network/xl1-protocol'\n\nexport const unknownStatus: NetworkStatus = {\n description: 'Unknown Network Status',\n schema: NetworkStatusSchema,\n state: 'unknown',\n}\n\nexport const errorStatus: NetworkStatus = {\n description: 'Error Fetching Network Status',\n schema: NetworkStatusSchema,\n state: 'unknown',\n}\n","import type { NetworkId } from '@xyo-network/xl1-protocol'\n\nexport type StatusNetwork = {\n id: NetworkId\n statusUrl: string\n}\n\nexport const MainNetworkStats: StatusNetwork = {\n id: 'mainnet',\n statusUrl: 'https://xyo.network/chain-network-status-mainnet.json',\n}\n\nexport const SequenceNetworkStats: StatusNetwork = {\n id: 'sequence',\n statusUrl: 'https://beta.xyo.network/chain-network-status-sequence.json',\n}\n\nexport const LocalNetworkStats: StatusNetwork = {\n id: 'local',\n statusUrl: 'http://localhost:3002/chain-network-status-local.json',\n}\n\nexport const StatusNetworks: Record<NetworkId, StatusNetwork> = {\n mainnet: MainNetworkStats,\n sequence: SequenceNetworkStats,\n local: LocalNetworkStats,\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport {\n type AllowedBlockPayload, defaultTransactionFees,\n type TransactionBoundWitness, type TransactionFeesBigInt, type XyoConnectionProvider, type XyoNetwork, type XyoRunner, type XyoSigner, type XyoViewer,\n} from '@xyo-network/xl1-protocol'\n\nexport class MemoryXyoProvider implements XyoConnectionProvider {\n private readonly _network?: XyoNetwork\n private readonly _runner?: XyoRunner\n private readonly _signer?: XyoSigner\n private readonly _viewer?: XyoViewer\n\n constructor(params?: {\n network?: XyoNetwork\n runner?: XyoRunner\n signer?: XyoSigner\n viewer?: XyoViewer\n }) {\n this._network = params?.network\n this._runner = params?.runner\n this._signer = params?.signer\n this._viewer = params?.viewer\n }\n\n get network(): XyoNetwork | undefined {\n return this._network\n }\n\n get runner(): XyoRunner | undefined {\n return this._runner\n }\n\n get signer(): XyoSigner | undefined {\n return this._signer\n }\n\n get viewer(): XyoViewer | undefined {\n return this._viewer\n }\n\n async send(\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n chain?: Address,\n nbf?: number,\n exp?: number,\n from?: Address,\n fees?: TransactionFeesBigInt,\n ): Promise<Signed<TransactionBoundWitness>> {\n if (chain === undefined) throw new Error('Failed to determine chain')\n const nbfValue = nbf === undefined ? await this._viewer?.currentBlockNumber() : nbf\n if (nbfValue === undefined) throw new Error('Failed to determine nbf')\n const expValue = exp === undefined ? nbfValue + 1000 : exp\n const feesValue = fees === undefined ? defaultTransactionFees : fees\n const fromValue = from === undefined ? await this._signer?.address() : from\n if (fromValue === undefined) throw new Error('Failed to determine from address')\n const signedTransaction = assertEx(await this._signer?.createSignedTransaction(\n chain,\n elevatedPayloads,\n additionalPayloads,\n nbfValue,\n expValue,\n feesValue,\n fromValue,\n ), () => 'Failed to create transaction')\n assertEx(await this.runner?.broadcastTransaction([await PayloadBuilder.addStorageMeta(signedTransaction),\n await PayloadBuilder.addStorageMeta(elevatedPayloads)]), () => 'Failed to broadcast transaction')\n return signedTransaction\n }\n}\n","// NOTE: See https://www.npmjs.com/package/@metamask/rpc-errors for\n// better error codes & protocol specific error codes. Migrate to that\n// if fuller support is needed.\nexport const JsonRpcErrorCodes: Record<string, { code: number; message: string }> = {\n InternalError: { code: -32_603, message: 'Internal JSON-RPC error (unexpected exception).' },\n InvalidParams: { code: -32_602, message: 'Invalid method parameter(s).' },\n InvalidRequest: { code: -32_600, message: 'The JSON sent is not a valid Request object.' },\n MethodNotFound: { code: -32_601, message: 'The method does not exist or is not available.' },\n}\n","export const jsonrpc = '2.0' as const\n","import { z } from 'zod'\n\nimport type { XyoProviderRpcMethodName } from '../XyoProviderRpc.ts'\nimport {\n AddressFromStringSchema, AddressToStringSchema, PayloadSchema, SignedTransactionBoundWitnessSchema, TransactionFeesFromStingSchema,\n TransactionFeesToStingSchema,\n} from './common/index.ts'\nimport type { RpcSchemaMap } from './RpcSchemaMap.ts'\n\nexport const XyoProviderRpcSchemas: RpcSchemaMap<XyoProviderRpcMethodName> = {\n xyoProvider_send: {\n params: {\n to: z.tuple([\n AddressFromStringSchema,\n z.array(PayloadSchema),\n z.array(PayloadSchema),\n z.number().nonnegative(),\n z.number().nonnegative(),\n TransactionFeesToStingSchema,\n AddressFromStringSchema.optional(),\n ]),\n from: z.tuple([\n AddressToStringSchema,\n z.array(PayloadSchema),\n z.array(PayloadSchema),\n z.number().nonnegative(),\n z.number().nonnegative(),\n TransactionFeesFromStingSchema,\n AddressToStringSchema.optional(),\n ]),\n },\n result: {\n to: SignedTransactionBoundWitnessSchema,\n from: SignedTransactionBoundWitnessSchema,\n },\n },\n}\n","import type { Address } from '@xylabs/hex'\nimport { toAddress } from '@xylabs/hex'\nimport { AddressRegEx } from '@xyo-network/payload-wrapper'\nimport { z } from 'zod'\n\nconst CompiledAddressRegEx = new RegExp(AddressRegEx)\n\nexport const AddressToStringSchema = z.string().toLowerCase().regex(CompiledAddressRegEx)\nexport const AddressFromStringSchema = z.string().toLowerCase().regex(CompiledAddressRegEx).transform<Address>(v => toAddress(v))\n","import { hexToBigInt, toHex } from '@xylabs/hex'\nimport { HexRegEx } from '@xyo-network/payload-wrapper'\nimport { z } from 'zod'\n\nconst CompiledHexRegEx = new RegExp(HexRegEx)\n\nexport const BigIntToStringSchema = z.bigint().nonnegative().transform(x => toHex(x))\nexport const BigIntFromStringSchema = z.string().regex(CompiledHexRegEx).transform(x => hexToBigInt(toHex(x)))\n","import { z } from 'zod'\n\nimport {\n SignedBoundWitnessSchema, SignedBoundWitnessWithStorageMetaSchema, UnsignedBoundWitnessSchema, UnsignedBoundWitnessWithStorageMetaSchema,\n} from './BoundWitnessSchema.ts'\nimport { HexToStringSchema } from './HexSchema.ts'\n\nexport const BlockNumberSchema = z.number().int().nonnegative()\n\nconst BlockBoundWitnessFieldsSchema = z.object({\n block: BlockNumberSchema,\n chain: HexToStringSchema,\n previous: HexToStringSchema.nullable(),\n protocol: z.number().optional(),\n step_hashes: z.array(HexToStringSchema).optional(),\n})\n\nexport const BlockBoundWitnessSchema = UnsignedBoundWitnessSchema\n .merge(BlockBoundWitnessFieldsSchema)\n .passthrough()\nexport const BlockBoundWitnessWithStorageMetaSchema = UnsignedBoundWitnessWithStorageMetaSchema\n .merge(BlockBoundWitnessFieldsSchema)\n .passthrough()\n\nexport const SignedBlockBoundWitnessSchema = SignedBoundWitnessSchema\n .merge(BlockBoundWitnessFieldsSchema)\n .passthrough()\nexport const SignedBlockBoundWitnessWithStorageMetaSchema = SignedBoundWitnessWithStorageMetaSchema\n .merge(BlockBoundWitnessFieldsSchema)\n .passthrough()\n","import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { z } from 'zod'\n\nimport { AddressToStringSchema } from './AddressSchema.ts'\nimport { HashToStringSchema } from './HashSchema.ts'\nimport { HexToStringSchema } from './HexSchema.ts'\nimport { PayloadSchema, PayloadWithStorageMetaSchema } from './PayloadSchema.ts'\n\nexport const SchemaIdSchema = z.string()\n\nconst BoundWitnessRequiredFieldsSchema = z.object({\n addresses: z.array(AddressToStringSchema),\n payload_hashes: z.array(HashToStringSchema),\n payload_schemas: z.array(SchemaIdSchema),\n previous_hashes: z.array(HashToStringSchema.nullable()),\n})\n\nconst BoundWitnessMetaSchema = z.object({\n $destination: AddressToStringSchema.optional(),\n $sourceQuery: HashToStringSchema.optional(),\n})\n\nexport const UnsignedBoundWitnessSchema = PayloadSchema\n .extend({ schema: z.literal(BoundWitnessSchema) })\n .merge(BoundWitnessRequiredFieldsSchema)\n .merge(BoundWitnessMetaSchema)\n .passthrough()\n\nexport const UnsignedBoundWitnessWithStorageMetaSchema = PayloadWithStorageMetaSchema\n .extend({ schema: z.literal(BoundWitnessSchema) })\n .merge(BoundWitnessRequiredFieldsSchema)\n .merge(BoundWitnessMetaSchema)\n .passthrough()\n\nexport const SignedBoundWitnessSchema = UnsignedBoundWitnessSchema\n .extend(\n { $signatures: z.array(HexToStringSchema) },\n )\n .passthrough()\n\nexport const SignedBoundWitnessWithStorageMetaSchema = UnsignedBoundWitnessWithStorageMetaSchema\n .extend(\n { $signatures: z.array(HexToStringSchema) },\n )\n .passthrough()\n","import type { Hash } from '@xylabs/hex'\nimport { toHex } from '@xylabs/hex'\nimport { HashRegEx } from '@xyo-network/payload-wrapper'\nimport { z } from 'zod'\n\nexport const HashToStringSchema = z.string().toLowerCase().regex(new RegExp(HashRegEx))\nexport const HashFromStringSchema = z.string().toLowerCase().regex(new RegExp(HashRegEx)).transform<Hash>(v => toHex(v))\n","import type { Hex } from '@xylabs/hex'\nimport { toHex } from '@xylabs/hex'\nimport { HexRegEx } from '@xyo-network/payload-wrapper'\nimport { z } from 'zod'\n\nexport const HexToStringSchema = z.string().toLowerCase().regex(new RegExp(HexRegEx))\nexport const HexFromStringSchema = z.string().toLowerCase().regex(new RegExp(HexRegEx)).transform<Hex>(v => toHex(v))\n","import { z } from 'zod'\n\nimport { StorageMetaSchema } from './StorageMetaSchema.ts'\n\nexport const PayloadSchema = z.object({ schema: z.string() }).passthrough()\nexport const PayloadWithStorageMetaSchema = PayloadSchema.extend(StorageMetaSchema.shape).passthrough()\n","import { z } from 'zod'\n\nimport { HashToStringSchema } from './HashSchema.ts'\nimport { SequenceToStringSchema } from './SequenceSchema.ts'\n\nexport const StorageMetaSchema = z.object({\n _hash: HashToStringSchema,\n _dataHash: HashToStringSchema,\n _sequence: SequenceToStringSchema,\n})\n\nexport function WithStorageMetaSchema<T extends z.ZodTypeAny>(valueSchema: T) {\n return StorageMetaSchema.extend({ value: valueSchema })\n}\n","import { toHex } from '@xylabs/hex'\nimport type {\n LocalSequence,\n QualifiedSequence,\n} from '@xyo-network/payload-model'\nimport { SequenceConstants } from '@xyo-network/payload-model'\nimport { HexRegExMinMax } from '@xyo-network/payload-wrapper'\nimport { z } from 'zod'\n\nconst LocalSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.localSequenceBytes, SequenceConstants.localSequenceBytes))\nexport const LocalSequenceToStringSchema = z.string().regex(LocalSequenceRegex)\nexport const LocalSequenceFromStringSchema = z.string().regex(LocalSequenceRegex).transform<LocalSequence>(v => toHex(v))\n\nconst QualifiedSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.qualifiedSequenceBytes, SequenceConstants.qualifiedSequenceBytes))\nexport const QualifiedSequenceToStringSchema = z.string().regex(QualifiedSequenceRegex)\nexport const QualifiedSequenceFromStringSchema = z.string().regex(QualifiedSequenceRegex).transform<QualifiedSequence>(v => toHex(v))\n\nexport const SequenceToStringSchema = z.union([LocalSequenceToStringSchema, QualifiedSequenceToStringSchema])\nexport const SequenceFromStringSchema = z.union([LocalSequenceFromStringSchema, QualifiedSequenceFromStringSchema])\n","import { z } from 'zod'\n\nimport {\n BlockBoundWitnessSchema, BlockBoundWitnessWithStorageMetaSchema, SignedBlockBoundWitnessSchema, SignedBlockBoundWitnessWithStorageMetaSchema,\n} from './BlockBoundWitnessSchema.ts'\nimport { PayloadSchema, PayloadWithStorageMetaSchema } from './PayloadSchema.ts'\n\nexport const HydratedBlockSchema = z.tuple([\n BlockBoundWitnessSchema,\n z.array(PayloadSchema),\n])\n\nexport const HydratedBlockWithStorageMetaSchema = z.tuple([\n BlockBoundWitnessWithStorageMetaSchema,\n z.array(PayloadWithStorageMetaSchema),\n])\n\nexport const SignedHydratedBlockSchema = z.tuple([\n SignedBlockBoundWitnessSchema,\n z.array(PayloadSchema),\n])\n\nexport const SignedHydratedBlockWithStorageMetaSchema = z.tuple([\n SignedBlockBoundWitnessWithStorageMetaSchema,\n z.array(PayloadWithStorageMetaSchema),\n])\n","import { z } from 'zod'\n\nimport { PayloadSchema } from './PayloadSchema.ts'\nimport { SignedTransactionBoundWitnessSchema, TransactionBoundWitnessSchema } from './TransactionBoundWitnessSchema.ts'\n\nexport const HydratedTransactionSchema = z.tuple([\n TransactionBoundWitnessSchema,\n z.array(PayloadSchema),\n])\n\nexport const SignedHydratedTransactionSchema = z.tuple([\n SignedTransactionBoundWitnessSchema,\n z.array(PayloadSchema),\n])\n","import z from 'zod'\n\nimport { AddressToStringSchema } from './AddressSchema.ts'\nimport { BlockNumberSchema } from './BlockBoundWitnessSchema.ts'\nimport { SignedBoundWitnessSchema, UnsignedBoundWitnessSchema } from './BoundWitnessSchema.ts'\nimport { HexToStringSchema } from './HexSchema.ts'\n\nexport const BlockStartSchema = z.object({ nbf: BlockNumberSchema })\nexport const BlockEndSchema = z.object({ exp: BlockNumberSchema })\nexport const BlockDurationSchema = z.object({ nbf: BlockNumberSchema, exp: BlockNumberSchema })\n\nexport const TransactionFeesSchema = z.object({\n fees: z.object({\n base: HexToStringSchema,\n gasLimit: HexToStringSchema,\n gasPrice: HexToStringSchema,\n priority: HexToStringSchema,\n }),\n})\n\nconst TransactionBoundWitnessFields = z.object({ chain: AddressToStringSchema })\n\nexport const TransactionBoundWitnessSchema = UnsignedBoundWitnessSchema\n .merge(BlockDurationSchema)\n .merge(TransactionFeesSchema)\n .merge(TransactionBoundWitnessFields)\n .passthrough()\n\nexport const SignedTransactionBoundWitnessSchema = SignedBoundWitnessSchema\n .merge(BlockDurationSchema)\n .merge(TransactionFeesSchema)\n .merge(TransactionBoundWitnessFields)\n .passthrough()\n","import { z } from 'zod'\n\nimport { BigIntFromStringSchema, BigIntToStringSchema } from './BigIntSchema.ts'\n\nexport const TransactionFeesToStingSchema = z.object({\n base: BigIntToStringSchema,\n gasLimit: BigIntToStringSchema,\n gasPrice: BigIntToStringSchema,\n priority: BigIntToStringSchema,\n})\n\nexport const TransactionFeesFromStingSchema = z.object({\n base: BigIntFromStringSchema,\n gasLimit: BigIntFromStringSchema,\n gasPrice: BigIntFromStringSchema,\n priority: BigIntFromStringSchema,\n})\n","import { z } from 'zod'\n\nimport type { XyoRunnerRpcMethodName } from '../XyoRunnerRpc.ts'\nimport {\n HashFromStringSchema,\n HashToStringSchema,\n SignedHydratedTransactionSchema,\n} from './common/index.ts'\nimport type { RpcSchemaMap } from './RpcSchemaMap.ts'\n\nexport const XyoRunnerRpcSchemas: RpcSchemaMap<XyoRunnerRpcMethodName> = {\n xyoRunner_broadcastTransaction: {\n params: {\n to: z.tuple([SignedHydratedTransactionSchema]),\n from: z.tuple([SignedHydratedTransactionSchema]),\n },\n result: {\n to: HashToStringSchema,\n from: HashFromStringSchema,\n },\n },\n}\n","import { z } from 'zod'\n\nimport type { XyoSignerRpcMethodName } from '../XyoSignerRpc.ts'\nimport {\n AddressFromStringSchema, AddressToStringSchema, PayloadSchema, SignedTransactionBoundWitnessSchema, TransactionFeesFromStingSchema,\n TransactionFeesToStingSchema,\n} from './common/index.ts'\nimport type { RpcSchemaMap } from './RpcSchemaMap.ts'\n\nexport const XyoSignerRpcSchemas: RpcSchemaMap<XyoSignerRpcMethodName> = {\n xyoSigner_address: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: AddressToStringSchema,\n from: AddressFromStringSchema,\n },\n },\n xyoSigner_createSignedTransaction: {\n params: {\n to: z.tuple([\n AddressFromStringSchema,\n z.array(PayloadSchema),\n z.array(PayloadSchema),\n z.number().nonnegative(),\n z.number().nonnegative(),\n TransactionFeesToStingSchema,\n AddressFromStringSchema.optional(),\n ]),\n from: z.tuple([\n AddressToStringSchema,\n z.array(PayloadSchema),\n z.array(PayloadSchema),\n z.number().nonnegative(),\n z.number().nonnegative(),\n TransactionFeesFromStingSchema,\n AddressToStringSchema.optional(),\n ]),\n },\n result: {\n to: SignedTransactionBoundWitnessSchema,\n from: SignedTransactionBoundWitnessSchema,\n },\n },\n}\n","import { z } from 'zod'\n\nimport type { XyoViewerRpcMethodName } from '../XyoViewerRpc.ts'\nimport {\n AddressFromStringSchema, AddressToStringSchema, BigIntFromStringSchema, BigIntToStringSchema,\n BlockNumberSchema,\n HashFromStringSchema, HashToStringSchema,\n PayloadSchema,\n SignedHydratedBlockSchema,\n SignedHydratedTransactionSchema,\n} from './common/index.ts'\nimport type { RpcSchemaMap } from './RpcSchemaMap.ts'\n\nexport const XyoViewerRpcSchemas: RpcSchemaMap<XyoViewerRpcMethodName> = {\n xyoViewer_accountBalance: {\n params: {\n to: z.union([\n z.tuple([AddressToStringSchema]),\n z.tuple([AddressToStringSchema, z.number()]),\n z.tuple([AddressToStringSchema, z.number(), z.boolean()]),\n ]),\n from: z.union([\n z.tuple([AddressToStringSchema]),\n z.tuple([AddressToStringSchema, z.number()]),\n z.tuple([AddressToStringSchema, z.number(), z.boolean()]),\n ]),\n },\n result: {\n to: BigIntToStringSchema,\n from: BigIntFromStringSchema,\n },\n },\n xyoViewer_accountHistory: {\n params: {\n to: z.union([\n z.tuple([AddressToStringSchema]),\n z.tuple([AddressToStringSchema, z.number()]),\n z.tuple([AddressToStringSchema, z.number(), z.boolean()]),\n ]),\n from: z.union([\n z.tuple([AddressToStringSchema]),\n z.tuple([AddressToStringSchema, z.number()]),\n z.tuple([AddressToStringSchema, z.number(), z.boolean()]),\n ]),\n },\n result: {\n to: z.array(z.array(PayloadSchema)),\n from: z.array(z.array(PayloadSchema)),\n },\n },\n xyoViewer_blockByHash: {\n params: {\n to: z.tuple([HashToStringSchema]),\n from: z.tuple([HashFromStringSchema]),\n },\n result: {\n to: SignedHydratedBlockSchema,\n from: SignedHydratedBlockSchema,\n },\n },\n xyoViewer_blockByNumber: {\n params: {\n to: z.tuple([z.number()]),\n from: z.tuple([z.number()]),\n },\n result: {\n to: SignedHydratedBlockSchema,\n from: SignedHydratedBlockSchema,\n },\n },\n xyoViewer_blocksByHash: {\n params: {\n to: z.tuple([HashToStringSchema, z.number().optional()]),\n from: z.tuple([HashFromStringSchema, z.number().optional()]),\n },\n result: {\n to: z.array(SignedHydratedBlockSchema),\n from: z.array(SignedHydratedBlockSchema),\n },\n },\n xyoViewer_chainId: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: AddressToStringSchema,\n from: AddressFromStringSchema,\n },\n },\n xyoViewer_currentBlock: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: SignedHydratedBlockSchema,\n from: SignedHydratedBlockSchema,\n },\n },\n xyoViewer_currentBlockHash: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: HashToStringSchema,\n from: HashFromStringSchema,\n },\n },\n xyoViewer_currentBlockNumber: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: BlockNumberSchema,\n from: BlockNumberSchema,\n },\n },\n xyoViewer_transactionByBlockHashAndIndex: {\n params: {\n to: z.tuple([HashToStringSchema, z.number()]),\n from: z.tuple([HashFromStringSchema, z.number()]),\n },\n result: {\n to: SignedHydratedTransactionSchema.nullable(),\n from: SignedHydratedTransactionSchema.nullable(),\n },\n },\n xyoViewer_transactionByBlockNumberAndIndex: {\n params: {\n to: z.tuple([z.number(), z.number()]),\n from: z.tuple([z.number(), z.number()]),\n },\n result: {\n to: SignedHydratedTransactionSchema.nullable(),\n from: SignedHydratedTransactionSchema.nullable(),\n },\n },\n xyoViewer_transactionByHash: {\n params: {\n to: z.tuple([HashToStringSchema]),\n from: z.tuple([HashFromStringSchema]),\n },\n result: {\n to: SignedHydratedTransactionSchema.nullable(),\n from: SignedHydratedTransactionSchema.nullable(),\n },\n },\n}\n","import type { RpcSchemaMap } from './RpcSchemaMap.ts'\nimport { XyoProviderRpcSchemas } from './XyoProviderRpcSchemas.ts'\nimport { XyoRunnerRpcSchemas } from './XyoRunnerRpcSchemas.ts'\nimport { XyoSignerRpcSchemas } from './XyoSignerRpcSchemas.ts'\nimport { XyoViewerRpcSchemas } from './XyoViewerRpcSchemas.ts'\n\nexport const AllRpcSchemas: RpcSchemaMap = {\n ...XyoProviderRpcSchemas,\n ...XyoRunnerRpcSchemas,\n ...XyoSignerRpcSchemas,\n ...XyoViewerRpcSchemas,\n}\n","import type { ZodUndefined } from 'zod'\nimport { z } from 'zod'\n\nimport { jsonrpc } from '../JsonRpc.ts'\n\nexport const createRequestSchema = <TParams extends z.ZodTypeAny, TMethodName extends string = string>(\n methodName: TMethodName,\n paramsSchema: TParams | ZodUndefined = z.undefined(),\n) =>\n z.object({\n id: z.union([z.string(), z.number()]),\n jsonrpc: z.literal(jsonrpc),\n method: z.literal(methodName),\n params: paramsSchema,\n })\n","import type { ZodUndefined } from 'zod'\nimport { z } from 'zod'\n\nimport { jsonrpc } from '../JsonRpc.ts'\n\nexport const createResponseSchema = <TParams extends z.ZodTypeAny>(\n resultSchema: TParams | ZodUndefined = z.undefined(),\n) =>\n z.object({\n id: z.union([z.string(), z.number()]),\n jsonrpc: z.literal(jsonrpc),\n result: resultSchema,\n })\n","import type { Hex } from '@xylabs/hex'\nimport { z } from 'zod'\n\nimport type { XyoGatewayRpcMethodName } from '../XyoGatewayRpc.ts'\nimport { BlockBoundWitnessSchema, HydratedTransactionSchema } from './common/index.ts'\nimport type { RpcSchemaMap } from './RpcSchemaMap.ts'\n\nexport const ChainConnectionSchema = z.object({\n chainId: z.union([z.string(), z.custom<Hex>()]).optional(),\n name: z.string(),\n url: z.string(),\n})\n\nexport const CaveatTypesSchema = z.enum(['chain', 'expiration', 'filteredResponse', 'rateLimit'])\n\nexport const CaveatsSchema = z.object({\n type: CaveatTypesSchema,\n value: z.unknown(), // JsonValue is usually unknown, adjust if you have a stricter type\n})\n\nexport const PermissionSchema = z.object({\n capability: z.string(),\n caveats: CaveatsSchema.array().optional(),\n invoker: z.string(),\n})\n\nexport const InvokerPermissionSchema = PermissionSchema.extend({ date: z.number().optional() })\n\nexport type ChainConnection = z.infer<typeof ChainConnectionSchema>\n\nexport const XyoGatewayRpcSchemas: RpcSchemaMap<XyoGatewayRpcMethodName> = {\n xyoGateway_addConnection: {\n params: {\n to: z.tuple([ChainConnectionSchema]),\n from: z.tuple([ChainConnectionSchema]),\n },\n result: {\n to: z.tuple([z.boolean()]),\n from: z.tuple([z.boolean()]),\n },\n },\n xyoGateway_connections: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: z.array(ChainConnectionSchema),\n from: z.array(ChainConnectionSchema),\n },\n },\n xyoGateway_getPermissions: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: z.array(InvokerPermissionSchema),\n from: z.array(InvokerPermissionSchema),\n },\n },\n xyoGateway_requestPermissions: {\n params: {\n to: z.array(PermissionSchema),\n from: z.array(PermissionSchema),\n },\n result: {\n to: z.boolean(),\n from: z.boolean(),\n },\n },\n xyoGateway_revokePermissions: {\n params: {\n to: z.array(PermissionSchema),\n from: z.array(PermissionSchema),\n },\n result: {\n to: z.boolean(),\n from: z.boolean(),\n },\n },\n xyoGateway_activeConnection: {\n params: {\n from: z.never(),\n to: z.never(),\n },\n result: {\n from: z.string().optional(),\n to: z.string().optional(),\n },\n },\n xyoGateway_submitTransaction: {\n params: {\n from: z.array(\n HydratedTransactionSchema,\n ),\n to: z.array(\n HydratedTransactionSchema,\n ),\n },\n result: {\n from: BlockBoundWitnessSchema,\n to: BlockBoundWitnessSchema,\n },\n },\n}\n","import type {\n JsonRpcFailure, JsonRpcRequest, JsonRpcSuccess,\n} from '@metamask/utils'\nimport { AxiosJson } from '@xylabs/axios'\nimport { isUndefinedOrNull } from '@xylabs/typeof'\nimport { v4 } from 'uuid'\nimport type { z } from 'zod'\n\nimport type { RpcSchemaMap } from '../types/index.ts'\nimport { jsonrpc } from '../types/index.ts'\nimport type { RpcTransport } from './RpcTransport.ts'\n\nexport class HttpRpcTransport<T extends RpcSchemaMap = RpcSchemaMap> implements RpcTransport<T> {\n protected readonly _rpcUrl: string\n protected readonly _schemas: T\n\n constructor(rpcUrl: string, schemas: T) {\n this._rpcUrl = rpcUrl\n this._schemas = schemas\n }\n\n async sendRequest<\n TMethod extends keyof T & string,\n >(\n method: TMethod,\n params?: z.infer<T[TMethod]['params']['to']>,\n ): Promise<z.infer<T[TMethod]['result']['from']>> {\n return await this.callRpc(this._rpcUrl, this._schemas, method, params)\n }\n\n private async callRpc<\n TSchemas extends RpcSchemaMap,\n TMethod extends keyof TSchemas,\n >(\n url: string,\n schemas: TSchemas,\n method: TMethod,\n params?: z.infer<TSchemas[TMethod]['params']['to']>,\n ): Promise<z.infer<TSchemas[TMethod]['result']['from']>> {\n const id = v4()\n const body: JsonRpcRequest = {\n jsonrpc,\n id,\n method: method as string,\n }\n\n if (params) {\n body.params = schemas[method].params.to.parse(params)\n }\n\n const res = await new AxiosJson().post(url, body)\n\n const json = res.data\n if (isUndefinedOrNull(json) || (json as Partial<JsonRpcFailure>).error) {\n throw new Error((json as JsonRpcFailure).error.message)\n }\n\n return schemas[method].result.from.parse((json as JsonRpcSuccess).result)\n }\n}\n","import type { JsonRpcEngine } from '@metamask/json-rpc-engine'\nimport type { JsonRpcRequest } from '@metamask/utils'\nimport { isObject } from '@xylabs/typeof'\nimport { v4 } from 'uuid'\nimport type { z } from 'zod'\n\nimport type { RpcSchemaMap } from '../types/index.ts'\nimport {\n AllRpcSchemas, createRequestSchema, createResponseSchema, jsonrpc,\n} from '../types/index.ts'\nimport type { RpcTransport } from './RpcTransport.ts'\n\nexport class MemoryRpcTransport<T extends RpcSchemaMap = typeof AllRpcSchemas> implements RpcTransport<T> {\n protected readonly _rpcEngine: JsonRpcEngine\n protected readonly _schemas: T\n protected readonly requestSchemas: Record<string, z.AnyZodObject> = {}\n protected readonly responseSchemas: Record<string, z.AnyZodObject> = {}\n\n constructor(rpcEngine: JsonRpcEngine, schemas: T = AllRpcSchemas as T) {\n this._rpcEngine = rpcEngine\n this._schemas = schemas\n }\n\n async sendRequest<\n TMethod extends keyof T & string,\n >(\n method: TMethod,\n params?: z.infer<T[TMethod]['params']['to']>,\n ): Promise<z.infer<T[TMethod]['result']['from']>> {\n // Get schema for method\n // Get handler for method\n const schema = this._schemas[method]\n let requestSchema = this.requestSchemas[method]\n if (!isObject(requestSchema)) {\n requestSchema = createRequestSchema(method, schema.params.to)\n this.requestSchemas[method] = requestSchema\n }\n const req: JsonRpcRequest = {\n jsonrpc, id: v4(), method: method as string, params,\n }\n const request = requestSchema.parse(req) as JsonRpcRequest\n const response = await this._rpcEngine.handle(request)\n let responseSchema = this.responseSchemas[method]\n if (!isObject(responseSchema)) {\n responseSchema = createResponseSchema(schema.result.from)\n this.responseSchemas[method] = responseSchema\n }\n return responseSchema.parse(response)?.result\n }\n}\n","import type { JsonRpcRequest } from '@metamask/utils'\nimport { isDefined } from '@xylabs/typeof'\nimport { v4 } from 'uuid'\nimport type { z } from 'zod'\n\nimport type { RpcSchemaMap } from '../../types/index.ts'\nimport { jsonrpc, XyoGatewayRpcSchemas } from '../../types/index.ts'\nimport type { RpcTransport } from '../RpcTransport.ts'\nimport type { JsonRpcRequestWithId } from './helpers.ts'\nimport { isRpcError } from './helpers.ts'\nimport { buildSessionMessageRequest } from './SessionEnvelope.ts'\n\nexport class PostMessageRpcTransport<T extends RpcSchemaMap = RpcSchemaMap> implements RpcTransport<T> {\n protected readonly destination?: string\n protected readonly schemas: T\n\n constructor(defaultDestination?: string, schemas: T = XyoGatewayRpcSchemas as T) {\n this.schemas = schemas\n this.destination = defaultDestination\n }\n\n async sendRequest<\n TMethod extends keyof T & string,\n >(\n method: TMethod,\n params?: z.infer<T[TMethod]['params']['to']>,\n ): Promise<z.infer<T[TMethod]['result']['from']>> {\n const id = v4()\n return await this.callRpc(this.schemas, method, id, params)\n }\n\n private async callRpc<\n TSchemas extends RpcSchemaMap,\n TMethod extends keyof TSchemas,\n >(\n schemas: TSchemas,\n method: TMethod,\n id: string,\n params?: z.infer<TSchemas[TMethod]['params']['to']>,\n ): Promise<z.infer<TSchemas[TMethod]['result']['from']>> {\n const body: JsonRpcRequest = {\n jsonrpc,\n id,\n method: method as string,\n }\n\n body.params = (isDefined(params) && isDefined(schemas[method])) ? schemas[method].params.to.parse(params) : params\n\n return await new Promise((resolve, reject) => {\n const id = body.id\n\n const handler = (event: MessageEvent) => {\n if (event.origin !== globalThis.window.origin) return\n if ((event.data as JsonRpcRequestWithId).id !== id) return\n\n globalThis.removeEventListener('message', handler)\n if (event.data.result.some(isRpcError)) {\n reject(event.data.result[0])\n } else {\n resolve(event.data.result[0])\n }\n }\n\n globalThis.addEventListener('message', handler)\n\n globalThis.postMessage(\n buildSessionMessageRequest(body, this.destination),\n globalThis.location.origin,\n )\n })\n }\n}\n","import type { JsonRpcRequest } from '@metamask/utils'\nimport type { JsonObject } from '@xylabs/object'\n\nexport type JsonRpcRequestWithId = JsonRpcRequest & {\n id: string\n}\n\nexport interface RpcError extends JsonObject {\n error: boolean\n message: string\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isRpcError = (data: any): data is RpcError => {\n return (\n data\n && typeof data === 'object'\n && 'error' in data\n && data.error\n )\n}\n","import type { JsonRpcRequest } from '@metamask/utils'\nimport type { JsonValue } from '@xylabs/object'\n\nexport interface SessionMessageEnvelope<T extends JsonValue> {\n data: T\n destination?: string\n sessionId: string\n}\n\n/** Only intended for web pages where the xyo global object was injected */\nexport const buildSessionMessageRequest = <T extends JsonRpcRequest>(data: T, destination?: string) => {\n const request: SessionMessageEnvelope<T> = {\n data,\n destination,\n sessionId: globalThis.xyo.walletExtensionId() ?? '',\n }\n\n return request\n}\n","import { type Hash } from '@xylabs/hex'\nimport type { HydratedTransaction, XyoRunner } from '@xyo-network/xl1-protocol'\n\nimport type { RpcTransport } from '../../transport/index.ts'\nimport type { XyoRunnerRpcSchemas } from '../../types/index.ts'\nexport class JsonRpcXyoRunner implements XyoRunner {\n protected readonly transport: RpcTransport<typeof XyoRunnerRpcSchemas>\n\n constructor(transport: RpcTransport<typeof XyoRunnerRpcSchemas>) {\n this.transport = transport\n }\n\n async broadcastTransaction(transaction: HydratedTransaction): Promise<Hash> {\n return await this.transport.sendRequest('xyoRunner_broadcastTransaction', [transaction])\n }\n}\n","import type { Hash } from '@xylabs/hex'\nimport { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { HydratedTransaction, XyoRunner } from '@xyo-network/xl1-protocol'\nimport { flattenHydratedTransaction } from '@xyo-network/xl1-protocol-sdk'\n\nexport class MemoryXyoRunner implements XyoRunner {\n protected _archivist: MemoryArchivist | undefined\n\n async broadcastTransaction(transaction: HydratedTransaction): Promise<Hash> {\n const archivist = await this.getArchivist()\n await archivist.insert(flattenHydratedTransaction(transaction))\n return await PayloadBuilder.hash(transaction[0])\n }\n\n protected async getArchivist(): Promise<MemoryArchivist> {\n if (!this._archivist) {\n this._archivist = await MemoryArchivist.create({ account: 'random' })\n }\n return this._archivist\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { type Hash } from '@xylabs/hex'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { asArchivistInstance } from '@xyo-network/archivist-model'\nimport type { ModuleIdentifier } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { PayloadBundle } from '@xyo-network/payload-model'\nimport { PayloadBundleSchema } from '@xyo-network/payload-model'\nimport type {\n HydratedTransaction,\n XyoRunner,\n} from '@xyo-network/xl1-protocol'\nimport { flattenHydratedTransaction } from '@xyo-network/xl1-protocol-sdk'\n\nexport class NodeXyoRunner implements XyoRunner {\n // TODO: Make configurable with defaults\n protected readonly node: NodeInstance\n protected readonly pendingArchivistPath: ModuleIdentifier = 'XYOChain:Pending:PendingTransactions'\n\n private _pendingArchivist: ArchivistInstance | undefined\n\n constructor(node: NodeInstance) {\n this.node = node\n }\n\n async broadcastTransaction(transaction: HydratedTransaction): Promise<Hash> {\n const flattened = flattenHydratedTransaction(transaction)\n\n const pendingArchivist = await this.getPendingArchivist()\n\n const txHash = await PayloadBuilder.hash(transaction[0])\n const payloadBundle: PayloadBundle = {\n schema: PayloadBundleSchema, payloads: flattened, root: txHash,\n }\n\n await pendingArchivist.insert([payloadBundle])\n\n return txHash\n }\n\n protected getArchivist = async (identifier: ModuleIdentifier) => {\n const archivist = await this.node.resolve(identifier)\n return assertEx(asArchivistInstance(archivist), () => `Error: Could not resolve ${identifier} to an archivist instance`)\n }\n\n protected getPendingArchivist = async () => {\n if (this._pendingArchivist) return this._pendingArchivist\n this._pendingArchivist = await this.getArchivist(this.pendingArchivistPath)\n return assertEx(this._pendingArchivist, () => `Error: Could not resolve pending archivist at ${this.pendingArchivistPath}`)\n }\n}\n","import { type Address } from '@xylabs/hex'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n TransactionBoundWitness,\n TransactionFeesBigInt,\n XyoSigner,\n} from '@xyo-network/xl1-protocol'\n\nimport type { RpcTransport } from '../../transport/index.ts'\nimport type { XyoSignerRpcSchemas } from '../../types/index.ts'\nexport class JsonRpcXyoSigner implements XyoSigner {\n protected readonly transport: RpcTransport<typeof XyoSignerRpcSchemas>\n\n constructor(transport: RpcTransport<typeof XyoSignerRpcSchemas>) {\n this.transport = transport\n }\n\n async address(): Promise<Address> {\n return await this.transport.sendRequest('xyoSigner_address')\n }\n\n async createSignedTransaction(\n chain: Address,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n nbf: number,\n exp: number,\n fees: TransactionFeesBigInt,\n from?: Address,\n ): Promise<Signed<TransactionBoundWitness>> {\n return await this.transport.sendRequest('xyoSigner_createSignedTransaction', [\n chain,\n elevatedPayloads,\n additionalPayloads,\n nbf,\n exp,\n fees,\n from,\n ])\n }\n}\n","import type { Address } from '@xylabs/hex'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { type Payload } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload, TransactionBoundWitness, TransactionFeesBigInt, XyoSigner,\n} from '@xyo-network/xl1-protocol'\nimport { buildTransaction } from '@xyo-network/xl1-protocol-sdk'\n\nexport class MemoryXyoSigner implements XyoSigner {\n protected readonly _account: AccountInstance\n\n constructor(account: AccountInstance) {\n this._account = account\n }\n\n address(): Address {\n return this._account.address\n }\n\n async createSignedTransaction(\n chain: Address,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n nbf: number,\n exp: number,\n fees: TransactionFeesBigInt,\n from?: Address,\n ): Promise<Signed<TransactionBoundWitness>> {\n const fromAddress = from ?? this._account.address\n const transaction = await buildTransaction(\n chain,\n elevatedPayloads,\n additionalPayloads,\n this._account,\n nbf,\n exp,\n fromAddress,\n fees,\n )\n return transaction[0]\n }\n}\n","import { type Address, type Hash } from '@xylabs/hex'\nimport type {\n HydratedBlock, HydratedTransaction,\n TransactionBoundWitness,\n Transfer,\n XyoViewer,\n} from '@xyo-network/xl1-protocol'\n\nimport type { RpcTransport } from '../../transport/index.ts'\nimport type { XyoViewerRpcSchemas } from '../../types/index.ts'\nexport class JsonRpcXyoViewer implements XyoViewer {\n protected readonly transport: RpcTransport<typeof XyoViewerRpcSchemas>\n\n constructor(transport: RpcTransport<typeof XyoViewerRpcSchemas>) {\n this.transport = transport\n }\n\n async accountBalance(address: Address): Promise<bigint> {\n return await this.transport.sendRequest('xyoViewer_accountBalance', [address])\n }\n\n async accountHistory(address: Address): Promise<[TransactionBoundWitness[], Transfer[]]> {\n return await this.transport.sendRequest('xyoViewer_accountBalance', [address])\n }\n\n async blockByHash(hash: Hash): Promise<HydratedBlock | null> {\n return await this.transport.sendRequest('xyoViewer_blockByHash', [hash])\n }\n\n async blockByNumber(blockNumber: number): Promise<HydratedBlock | null> {\n return await this.transport.sendRequest('xyoViewer_blockByNumber', [blockNumber])\n }\n\n async blocksByHash(hash: Hash, limit?: number): Promise<HydratedBlock[]> {\n return await this.transport.sendRequest('xyoViewer_blocksByHash', [hash, limit])\n }\n\n async chainId(): Promise<Address> {\n return await this.transport.sendRequest('xyoViewer_chainId')\n }\n\n async currentBlock(): Promise<HydratedBlock> {\n return await this.transport.sendRequest('xyoViewer_currentBlock')\n }\n\n async currentBlockHash(): Promise<Hash> {\n return await this.transport.sendRequest('xyoViewer_currentBlockHash')\n }\n\n async currentBlockNumber(): Promise<number> {\n return await this.transport.sendRequest('xyoViewer_currentBlockNumber')\n }\n\n async transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promise<HydratedTransaction | null> {\n return await this.transport.sendRequest('xyoViewer_transactionByBlockHashAndIndex', [blockHash, transactionIndex])\n }\n\n async transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promise<HydratedTransaction | null> {\n return await this.transport.sendRequest('xyoViewer_transactionByBlockNumberAndIndex', [blockNumber, transactionIndex])\n }\n\n async transactionByHash(transactionHash: Hash): Promise<HydratedTransaction | null> {\n return await this.transport.sendRequest('xyoViewer_transactionByHash', [transactionHash])\n }\n}\n","import { delay } from '@xylabs/delay'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { TransactionBoundWitness, XyoConnectionProvider } from '@xyo-network/xl1-protocol'\n\nconst CONFIRMATION_ATTEMPTS = 20\nconst DELAY_BETWEEN_ATTEMPTS = 1000 // milliseconds\n\nexport const confirmTransaction = async (\n provider: XyoConnectionProvider,\n txBW: Signed<TransactionBoundWitness>,\n onConfirm?: (txBWHash: string) => void,\n onTimeout?: () => void,\n) => {\n const txBWHash = await PayloadBuilder.hash(txBW)\n console.log('✅ confirming transaction:', txBWHash, '\\n')\n let confirmed = false\n let attempts = 0\n while (!confirmed) {\n const tx = await provider.viewer?.transactionByHash(txBWHash)\n if (tx) {\n confirmed = true\n console.log('🍻 Transaction confirmed:', txBWHash, '\\n')\n onConfirm?.(txBWHash)\n } else {\n attempts++\n if (attempts > CONFIRMATION_ATTEMPTS) {\n console.error(`⚠️ Transaction not confirmed after ${CONFIRMATION_ATTEMPTS} attempts`)\n onTimeout?.()\n return\n } else {\n console.log(`🔄 Transaction not confirmed yet, attempt ${attempts}. Retrying...`, '\\n')\n await delay(DELAY_BETWEEN_ATTEMPTS) // wait 1 second before retrying\n }\n }\n }\n}\n","import type { AccountInstance } from '@xyo-network/account-model'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport type { TransactionBoundWitness } from '@xyo-network/xl1-protocol'\n\nimport {\n HttpRpcTransport, XyoRunnerRpcSchemas, XyoViewerRpcSchemas,\n} from '../../index-node.ts'\nimport { JsonRpcXyoRunner } from '../runner/index.ts'\nimport { MemoryXyoSigner } from '../signer/index.ts'\nimport { JsonRpcXyoViewer } from '../viewer/index.ts'\nimport { confirmTransaction } from './confirmTransaction.ts'\nimport { MemoryXyoProvider } from './MemoryXyoProvider.ts'\n\nexport interface RpcXyoProviderParams {\n account?: AccountInstance\n endpoint: string\n}\n\nexport class RpcXyoProvider extends MemoryXyoProvider {\n constructor(params: RpcXyoProviderParams) {\n const transport = new HttpRpcTransport(params.endpoint, { ...XyoRunnerRpcSchemas, ...XyoViewerRpcSchemas })\n const signer = params.account ? new MemoryXyoSigner(params.account) : undefined\n const runner = new JsonRpcXyoRunner(transport)\n const viewer = new JsonRpcXyoViewer(transport)\n super({\n signer, runner, viewer,\n })\n }\n\n async confirm(\n tx: Signed<TransactionBoundWitness>,\n onConfirm?: (txBWHash: string) => void,\n onTimeout?: () => void,\n ) {\n return await confirmTransaction(this, tx, onConfirm, onTimeout)\n }\n}\n"],"mappings":"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","names":["requestSchemas","rpcMethodHandlersFromRunner","runner","xyoRunner_broadcastTransaction","params","broadcastTransaction","rpcMethodHandlersFromSigner","signer","xyoSigner_address","params","address","xyoSigner_createSignedTransaction","createSignedTransaction","rpcMethodHandlersFromViewer","viewer","xyoViewer_accountBalance","params","accountBalance","xyoViewer_accountHistory","accountHistory","xyoViewer_blockByHash","blockByHash","xyoViewer_blockByNumber","blockByNumber","xyoViewer_blocksByHash","blocksByHash","xyoViewer_chainId","chainId","xyoViewer_currentBlock","currentBlock","xyoViewer_currentBlockHash","currentBlockHash","xyoViewer_currentBlockNumber","currentBlockNumber","xyoViewer_transactionByBlockHashAndIndex","transactionByBlockHashAndIndex","xyoViewer_transactionByBlockNumberAndIndex","transactionByBlockNumberAndIndex","xyoViewer_transactionByHash","transactionByHash","rpcMethodHandlersFromProvider","provider","runner","signer","viewer","result","xyoProvider_send","params","send","rpcMethodHandlersFromRunner","rpcMethodHandlersFromSigner","rpcMethodHandlersFromViewer","assertEx","JsonRpcXyoGateway","_transport","transport","activeConnection","Error","addConnection","_config","connections","getPermissions","sendRequest","requestPermissions","permissions","revokePermissions","submitTransaction","tx","runner","assertEx","broadcastTransaction","isUndefined","isNetworkStatus","axios","NetworkStatusSchema","unknownStatus","description","schema","state","errorStatus","MainNetworkStats","id","statusUrl","SequenceNetworkStats","LocalNetworkStats","StatusNetworks","mainnet","sequence","local","MemoryXyoNetwork","_networkId","networkId","status","statusNetwork","StatusNetworks","isUndefined","Error","makeRequest","statusUrl","url","response","axios","get","isNetworkStatus","data","console","error","unknownStatus","errorStatus","assertEx","PayloadBuilder","defaultTransactionFees","MemoryXyoProvider","_network","_runner","_signer","_viewer","params","network","runner","signer","viewer","send","elevatedPayloads","additionalPayloads","chain","nbf","exp","from","fees","undefined","Error","nbfValue","currentBlockNumber","expValue","feesValue","defaultTransactionFees","fromValue","address","signedTransaction","assertEx","createSignedTransaction","broadcastTransaction","PayloadBuilder","addStorageMeta","JsonRpcErrorCodes","InternalError","code","message","InvalidParams","InvalidRequest","MethodNotFound","jsonrpc","z","toAddress","AddressRegEx","z","CompiledAddressRegEx","RegExp","AddressToStringSchema","string","toLowerCase","regex","AddressFromStringSchema","transform","v","hexToBigInt","toHex","HexRegEx","z","CompiledHexRegEx","RegExp","BigIntToStringSchema","bigint","nonnegative","transform","x","BigIntFromStringSchema","string","regex","z","BoundWitnessSchema","z","toHex","HashRegEx","z","HashToStringSchema","string","toLowerCase","regex","RegExp","HashFromStringSchema","transform","v","toHex","HexRegEx","z","HexToStringSchema","string","toLowerCase","regex","RegExp","HexFromStringSchema","transform","v","z","z","toHex","SequenceConstants","HexRegExMinMax","z","LocalSequenceRegex","RegExp","localSequenceBytes","LocalSequenceToStringSchema","string","regex","LocalSequenceFromStringSchema","transform","v","QualifiedSequenceRegex","qualifiedSequenceBytes","QualifiedSequenceToStringSchema","QualifiedSequenceFromStringSchema","SequenceToStringSchema","union","SequenceFromStringSchema","StorageMetaSchema","z","object","_hash","HashToStringSchema","_dataHash","_sequence","SequenceToStringSchema","PayloadSchema","z","object","schema","string","passthrough","PayloadWithStorageMetaSchema","extend","StorageMetaSchema","shape","SchemaIdSchema","z","string","BoundWitnessRequiredFieldsSchema","object","addresses","array","AddressToStringSchema","payload_hashes","HashToStringSchema","payload_schemas","previous_hashes","nullable","BoundWitnessMetaSchema","$destination","optional","$sourceQuery","UnsignedBoundWitnessSchema","PayloadSchema","extend","schema","literal","BoundWitnessSchema","merge","passthrough","UnsignedBoundWitnessWithStorageMetaSchema","PayloadWithStorageMetaSchema","SignedBoundWitnessSchema","$signatures","HexToStringSchema","SignedBoundWitnessWithStorageMetaSchema","BlockNumberSchema","z","number","int","nonnegative","BlockBoundWitnessFieldsSchema","object","block","chain","HexToStringSchema","previous","nullable","protocol","optional","step_hashes","array","BlockBoundWitnessSchema","UnsignedBoundWitnessSchema","merge","passthrough","BlockBoundWitnessWithStorageMetaSchema","UnsignedBoundWitnessWithStorageMetaSchema","SignedBlockBoundWitnessSchema","SignedBoundWitnessSchema","SignedBlockBoundWitnessWithStorageMetaSchema","SignedBoundWitnessWithStorageMetaSchema","z","HydratedBlockSchema","z","tuple","BlockBoundWitnessSchema","array","PayloadSchema","HydratedBlockWithStorageMetaSchema","BlockBoundWitnessWithStorageMetaSchema","PayloadWithStorageMetaSchema","SignedHydratedBlockSchema","SignedBlockBoundWitnessSchema","SignedHydratedBlockWithStorageMetaSchema","SignedBlockBoundWitnessWithStorageMetaSchema","z","z","BlockStartSchema","z","object","nbf","BlockNumberSchema","BlockEndSchema","exp","BlockDurationSchema","TransactionFeesSchema","fees","base","HexToStringSchema","gasLimit","gasPrice","priority","TransactionBoundWitnessFields","chain","AddressToStringSchema","TransactionBoundWitnessSchema","UnsignedBoundWitnessSchema","merge","passthrough","SignedTransactionBoundWitnessSchema","SignedBoundWitnessSchema","HydratedTransactionSchema","z","tuple","TransactionBoundWitnessSchema","array","PayloadSchema","SignedHydratedTransactionSchema","SignedTransactionBoundWitnessSchema","z","TransactionFeesToStingSchema","z","object","base","BigIntToStringSchema","gasLimit","gasPrice","priority","TransactionFeesFromStingSchema","BigIntFromStringSchema","XyoProviderRpcSchemas","xyoProvider_send","params","to","z","tuple","AddressFromStringSchema","array","PayloadSchema","number","nonnegative","TransactionFeesToStingSchema","optional","from","AddressToStringSchema","TransactionFeesFromStingSchema","result","SignedTransactionBoundWitnessSchema","z","XyoRunnerRpcSchemas","xyoRunner_broadcastTransaction","params","to","z","tuple","SignedHydratedTransactionSchema","from","result","HashToStringSchema","HashFromStringSchema","z","XyoSignerRpcSchemas","xyoSigner_address","params","to","z","array","any","length","optional","from","result","AddressToStringSchema","AddressFromStringSchema","xyoSigner_createSignedTransaction","tuple","PayloadSchema","number","nonnegative","TransactionFeesToStingSchema","TransactionFeesFromStingSchema","SignedTransactionBoundWitnessSchema","z","XyoViewerRpcSchemas","xyoViewer_accountBalance","params","to","z","union","tuple","AddressToStringSchema","number","boolean","from","result","BigIntToStringSchema","BigIntFromStringSchema","xyoViewer_accountHistory","array","PayloadSchema","xyoViewer_blockByHash","HashToStringSchema","HashFromStringSchema","SignedHydratedBlockSchema","xyoViewer_blockByNumber","xyoViewer_blocksByHash","optional","xyoViewer_chainId","any","length","AddressFromStringSchema","xyoViewer_currentBlock","xyoViewer_currentBlockHash","xyoViewer_currentBlockNumber","BlockNumberSchema","xyoViewer_transactionByBlockHashAndIndex","SignedHydratedTransactionSchema","nullable","xyoViewer_transactionByBlockNumberAndIndex","xyoViewer_transactionByHash","AllRpcSchemas","XyoProviderRpcSchemas","XyoRunnerRpcSchemas","XyoSignerRpcSchemas","XyoViewerRpcSchemas","z","createRequestSchema","methodName","paramsSchema","z","undefined","object","id","union","string","number","jsonrpc","literal","method","params","z","createResponseSchema","resultSchema","z","undefined","object","id","union","string","number","jsonrpc","literal","result","z","ChainConnectionSchema","z","object","chainId","union","string","custom","optional","name","url","CaveatTypesSchema","enum","CaveatsSchema","type","value","unknown","PermissionSchema","capability","caveats","array","invoker","InvokerPermissionSchema","extend","date","number","XyoGatewayRpcSchemas","xyoGateway_addConnection","params","to","tuple","from","result","boolean","xyoGateway_connections","any","length","xyoGateway_getPermissions","xyoGateway_requestPermissions","xyoGateway_revokePermissions","xyoGateway_activeConnection","never","xyoGateway_submitTransaction","HydratedTransactionSchema","BlockBoundWitnessSchema","AxiosJson","isUndefinedOrNull","v4","HttpRpcTransport","_rpcUrl","_schemas","rpcUrl","schemas","sendRequest","method","params","callRpc","url","id","v4","body","jsonrpc","to","parse","res","AxiosJson","post","json","data","isUndefinedOrNull","error","Error","message","result","from","isObject","v4","MemoryRpcTransport","_rpcEngine","_schemas","requestSchemas","responseSchemas","rpcEngine","schemas","AllRpcSchemas","sendRequest","method","params","schema","requestSchema","isObject","createRequestSchema","to","req","jsonrpc","id","v4","request","parse","response","handle","responseSchema","createResponseSchema","result","from","isDefined","v4","isRpcError","data","error","buildSessionMessageRequest","data","destination","request","sessionId","globalThis","xyo","walletExtensionId","PostMessageRpcTransport","destination","schemas","defaultDestination","XyoGatewayRpcSchemas","sendRequest","method","params","id","v4","callRpc","body","jsonrpc","isDefined","to","parse","Promise","resolve","reject","handler","event","origin","globalThis","window","data","removeEventListener","result","some","isRpcError","addEventListener","postMessage","buildSessionMessageRequest","location","JsonRpcXyoRunner","transport","broadcastTransaction","transaction","sendRequest","MemoryArchivist","PayloadBuilder","flattenHydratedTransaction","MemoryXyoRunner","_archivist","broadcastTransaction","transaction","archivist","getArchivist","insert","flattenHydratedTransaction","PayloadBuilder","hash","MemoryArchivist","create","account","assertEx","asArchivistInstance","PayloadBuilder","PayloadBundleSchema","flattenHydratedTransaction","NodeXyoRunner","node","pendingArchivistPath","_pendingArchivist","broadcastTransaction","transaction","flattened","flattenHydratedTransaction","pendingArchivist","getPendingArchivist","txHash","PayloadBuilder","hash","payloadBundle","schema","PayloadBundleSchema","payloads","root","insert","getArchivist","identifier","archivist","resolve","assertEx","asArchivistInstance","JsonRpcXyoSigner","transport","address","sendRequest","createSignedTransaction","chain","elevatedPayloads","additionalPayloads","nbf","exp","fees","from","buildTransaction","MemoryXyoSigner","_account","account","address","createSignedTransaction","chain","elevatedPayloads","additionalPayloads","nbf","exp","fees","from","fromAddress","transaction","buildTransaction","JsonRpcXyoViewer","transport","accountBalance","address","sendRequest","accountHistory","blockByHash","hash","blockByNumber","blockNumber","blocksByHash","limit","chainId","currentBlock","currentBlockHash","currentBlockNumber","transactionByBlockHashAndIndex","blockHash","transactionIndex","transactionByBlockNumberAndIndex","transactionByHash","transactionHash","delay","PayloadBuilder","CONFIRMATION_ATTEMPTS","DELAY_BETWEEN_ATTEMPTS","confirmTransaction","provider","txBW","onConfirm","onTimeout","txBWHash","PayloadBuilder","hash","console","log","confirmed","attempts","tx","viewer","transactionByHash","error","delay","RpcXyoProvider","MemoryXyoProvider","params","transport","HttpRpcTransport","endpoint","XyoRunnerRpcSchemas","XyoViewerRpcSchemas","signer","account","MemoryXyoSigner","undefined","runner","JsonRpcXyoRunner","viewer","JsonRpcXyoViewer","confirm","tx","onConfirm","onTimeout","confirmTransaction"]}
|
|
1
|
+
{"version":3,"sources":["../../src/engine/requestSchemas.ts","../../src/engine/rpcMethodHandlersFromRunner.ts","../../src/engine/rpcMethodHandlersFromSigner.ts","../../src/engine/rpcMethodHandlersFromViewer.ts","../../src/engine/rpcMethodHandlersFromProvider.ts","../../src/provider/host/JsonRpcXyoGateway.ts","../../src/provider/network/MemoryXyoNetwork.ts","../../src/provider/network/lib/FailedNetworkStatusPayloads.ts","../../src/provider/network/lib/StatusNetworks.ts","../../src/provider/provider/MemoryXyoProvider.ts","../../src/types/ErrorCodes.ts","../../src/types/JsonRpc.ts","../../src/types/schema/XyoProviderRpcSchemas.ts","../../src/types/schema/common/AddressSchema.ts","../../src/types/schema/common/BigIntSchema.ts","../../src/types/schema/common/BlockBoundWitnessSchema.ts","../../src/types/schema/common/BoundWitnessSchema.ts","../../src/types/schema/common/HashSchema.ts","../../src/types/schema/common/HexSchema.ts","../../src/types/schema/common/PayloadSchema.ts","../../src/types/schema/common/StorageMetaSchema.ts","../../src/types/schema/common/SequenceSchema.ts","../../src/types/schema/common/HydratedBlockSchema.ts","../../src/types/schema/common/HydratedTransactionSchema.ts","../../src/types/schema/common/TransactionBoundWitnessSchema.ts","../../src/types/schema/common/TransactionFees.ts","../../src/types/schema/XyoRunnerRpcSchemas.ts","../../src/types/schema/XyoSignerRpcSchemas.ts","../../src/types/schema/XyoViewerRpcSchemas.ts","../../src/types/schema/AllRpcSchemas.ts","../../src/types/schema/createRequestSchema.ts","../../src/types/schema/createResponseSchema.ts","../../src/types/schema/XyoHostRpcSchemas.ts","../../src/transport/HttpRpcTransport.ts","../../src/transport/MemoryRpcTransport.ts","../../src/transport/post-message/PostMessageRpcTransport.ts","../../src/transport/post-message/helpers.ts","../../src/transport/post-message/SessionEnvelope.ts","../../src/provider/runner/JsonRpcXyoRunner.ts","../../src/provider/runner/MemoryXyoRunner.ts","../../src/provider/runner/NodeXyoRunner.ts","../../src/provider/signer/JsonRpcXyoSigner.ts","../../src/provider/signer/MemoryXyoSigner.ts","../../src/provider/viewer/JsonRpcXyoViewer.ts","../../src/provider/provider/confirmTransaction.ts","../../src/provider/provider/RpcXyoProvider.ts"],"sourcesContent":["import type { AnyZodObject } from 'zod'\n\nexport const requestSchemas: Record<string, AnyZodObject | undefined> = {}\n","import type { XyoRunner } from '@xyo-network/xl1-protocol'\n\nimport type { XyoRunnerRpcMethodHandlers } from '../types/index.ts'\n\nexport const rpcMethodHandlersFromRunner = (runner: XyoRunner): XyoRunnerRpcMethodHandlers => {\n return { xyoRunner_broadcastTransaction: params => runner.broadcastTransaction(...(params ?? [])) }\n}\n","import type { XyoSigner } from '@xyo-network/xl1-protocol'\n\nimport type { XyoSignerRpcMethodHandlers } from '../types/index.ts'\n\nexport const rpcMethodHandlersFromSigner = (signer: XyoSigner): XyoSignerRpcMethodHandlers => {\n return {\n xyoSigner_address: params => signer.address(...(params ?? [])),\n xyoSigner_createSignedTransaction: params => signer.createSignedTransaction(...(params ?? [])),\n }\n}\n","import type { XyoViewer } from '@xyo-network/xl1-protocol'\n\nimport type { XyoViewerRpcMethodHandlers } from '../types/index.ts'\n\nexport const rpcMethodHandlersFromViewer = (viewer: XyoViewer): XyoViewerRpcMethodHandlers => {\n return {\n xyoViewer_accountBalance: params => viewer.accountBalance(...(params ?? [])),\n xyoViewer_accountHistory: params => viewer.accountHistory(...(params ?? [])),\n xyoViewer_blockByHash: params => viewer.blockByHash(...(params ?? [])),\n xyoViewer_blockByNumber: params => viewer.blockByNumber(...(params ?? [])),\n xyoViewer_blocksByHash: params => viewer.blocksByHash(...(params ?? [])),\n xyoViewer_chainId: params => viewer.chainId(...(params ?? [])),\n xyoViewer_currentBlock: params => viewer.currentBlock(...(params ?? [])),\n xyoViewer_currentBlockHash: params => viewer.currentBlockHash(...(params ?? [])),\n xyoViewer_currentBlockNumber: params => viewer.currentBlockNumber(...(params ?? [])),\n xyoViewer_transactionByBlockHashAndIndex: params => viewer.transactionByBlockHashAndIndex(...(params ?? [])),\n xyoViewer_transactionByBlockNumberAndIndex: params => viewer.transactionByBlockNumberAndIndex(...(params ?? [])),\n xyoViewer_transactionByHash: params => viewer.transactionByHash(...(params ?? [])),\n }\n}\n","import type { XyoConnectionProvider } from '@xyo-network/xl1-protocol'\n\nimport type { XyoProviderRpcMethodHandlers } from '../types/index.ts'\nimport { rpcMethodHandlersFromRunner } from './rpcMethodHandlersFromRunner.ts'\nimport { rpcMethodHandlersFromSigner } from './rpcMethodHandlersFromSigner.ts'\nimport { rpcMethodHandlersFromViewer } from './rpcMethodHandlersFromViewer.ts'\n\nexport const rpcMethodHandlersFromProvider = (provider: XyoConnectionProvider): XyoProviderRpcMethodHandlers => {\n const {\n runner, signer, viewer,\n } = provider\n let result: XyoProviderRpcMethodHandlers = { xyoProvider_send: params => (provider as Required<XyoConnectionProvider>).send(...(params ?? [])) }\n if (runner) result = { ...result, ...rpcMethodHandlersFromRunner(runner) }\n if (signer) result = { ...result, ...rpcMethodHandlersFromSigner(signer) }\n if (viewer) result = { ...result, ...rpcMethodHandlersFromViewer(viewer) }\n return result\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Hash } from '@xylabs/hex'\nimport type { Promisable } from '@xylabs/promise'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n HydratedTransaction,\n InvokerPermission, Permission,\n XyoConnectionProvider,\n XyoGatewayProvider,\n XyoRpcConnectionConfig,\n} from '@xyo-network/xl1-protocol'\n\nimport type { RpcTransport } from '../../transport/index.ts'\nimport type { XyoGatewayRpcSchemas } from '../../types/index.ts'\n\nexport abstract class AbstractXyoGateway implements XyoGatewayProvider {\n async submitTransaction(elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[]): Promise<HydratedTransaction> {\n return assertEx(\n assertEx(\n await this.activeConnection(),\n () => 'No active connection available for transaction submission',\n ).submitTransaction,\n () => 'Active connection does not support transaction submission',\n )(elevatedPayloads, additionalPayloads)\n }\n\n abstract activeConnection(): Promisable<XyoConnectionProvider | undefined>\n abstract addConnection(config: XyoRpcConnectionConfig): Promisable<XyoConnectionProvider>\n abstract connections(): Promisable<Record<string, XyoConnectionProvider>>\n abstract getPermissions(): Promisable<InvokerPermission[]>\n abstract requestPermissions(permissions: Permission[]): Promisable<boolean>\n abstract revokePermissions(permissions: Permission[]): Promisable<boolean>\n}\n\nexport class JsonRpcXyoGateway extends AbstractXyoGateway {\n private readonly _transport: RpcTransport<typeof XyoGatewayRpcSchemas>\n\n constructor(transport: RpcTransport<typeof XyoGatewayRpcSchemas>) {\n super()\n this._transport = transport\n }\n\n activeConnection(): Promisable<XyoConnectionProvider | undefined> {\n throw new Error('Method not implemented.')\n }\n\n addConnection(_config: XyoRpcConnectionConfig): Promisable<XyoConnectionProvider> {\n throw new Error('Method not implemented.')\n }\n\n connections(): Promisable<Record<string, XyoConnectionProvider>> {\n throw new Error('Method not implemented.')\n }\n\n getPermissions(): Promisable<InvokerPermission[]> {\n return this._transport.sendRequest('xyoGateway_getPermissions')\n }\n\n requestPermissions(permissions: Permission[]): Promisable<boolean> {\n return this._transport.sendRequest('xyoGateway_requestPermissions', permissions)\n }\n\n revokePermissions(permissions: Permission[]): Promisable<boolean> {\n return this._transport.sendRequest('xyoGateway_revokePermissions', permissions)\n }\n}\n","import { isUndefined } from '@xylabs/typeof'\nimport type {\n NetworkId, NetworkStatus, XyoNetwork,\n} from '@xyo-network/xl1-protocol'\nimport { isNetworkStatus } from '@xyo-network/xl1-protocol'\nimport axios from 'axios'\n\nimport {\n errorStatus, StatusNetworks, unknownStatus,\n} from './lib/index.ts'\n\nexport class MemoryXyoNetwork implements XyoNetwork {\n protected readonly _networkId: NetworkId\n\n constructor(networkId: NetworkId) {\n this._networkId = networkId\n }\n\n async status(): Promise<NetworkStatus> {\n const statusNetwork = StatusNetworks[this._networkId]\n if (isUndefined(statusNetwork)) {\n throw new Error(`Unknown status network ID: ${this._networkId}`)\n }\n\n return await this.makeRequest(statusNetwork.statusUrl)\n }\n\n private async makeRequest(url: string): Promise<NetworkStatus> {\n try {\n const response = await axios.get(url)\n if (isNetworkStatus(response.data)) {\n return response.data\n } else {\n if (response.status === 200) {\n console.error('Unknown network status response:', response.data)\n\n return unknownStatus\n }\n return errorStatus\n }\n } catch (error) {\n console.error('Error fetching network status:', error)\n return errorStatus\n }\n }\n}\n","import type { NetworkStatus } from '@xyo-network/xl1-protocol'\nimport { NetworkStatusSchema } from '@xyo-network/xl1-protocol'\n\nexport const unknownStatus: NetworkStatus = {\n description: 'Unknown Network Status',\n schema: NetworkStatusSchema,\n state: 'unknown',\n}\n\nexport const errorStatus: NetworkStatus = {\n description: 'Error Fetching Network Status',\n schema: NetworkStatusSchema,\n state: 'unknown',\n}\n","import type { NetworkId } from '@xyo-network/xl1-protocol'\n\nexport type StatusNetwork = {\n id: NetworkId\n statusUrl: string\n}\n\nexport const MainNetworkStats: StatusNetwork = {\n id: 'mainnet',\n statusUrl: 'https://xyo.network/chain-network-status-mainnet.json',\n}\n\nexport const SequenceNetworkStats: StatusNetwork = {\n id: 'sequence',\n statusUrl: 'https://beta.xyo.network/chain-network-status-sequence.json',\n}\n\nexport const LocalNetworkStats: StatusNetwork = {\n id: 'local',\n statusUrl: 'http://localhost:3002/chain-network-status-local.json',\n}\n\nexport const StatusNetworks: Record<NetworkId, StatusNetwork> = {\n mainnet: MainNetworkStats,\n sequence: SequenceNetworkStats,\n local: LocalNetworkStats,\n}\n","import { assertEx } from '@xylabs/assert'\nimport type { Address } from '@xylabs/hex'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n HydratedTransaction,\n TransactionBoundWitness, TransactionFeesBigInt, XyoConnectionProvider, XyoNetwork, XyoRunner, XyoSigner, XyoViewer,\n} from '@xyo-network/xl1-protocol'\nimport { defaultTransactionFees } from '@xyo-network/xl1-protocol'\n\nexport class MemoryXyoProvider implements XyoConnectionProvider {\n private readonly _network?: XyoNetwork\n private readonly _runner?: XyoRunner\n private readonly _signer?: XyoSigner\n private readonly _viewer?: XyoViewer\n\n constructor(params?: {\n network?: XyoNetwork\n runner?: XyoRunner\n signer?: XyoSigner\n viewer?: XyoViewer\n }) {\n this._network = params?.network\n this._runner = params?.runner\n this._signer = params?.signer\n this._viewer = params?.viewer\n }\n\n get network(): XyoNetwork | undefined {\n return this._network\n }\n\n get runner(): XyoRunner | undefined {\n return this._runner\n }\n\n get signer(): XyoSigner | undefined {\n return this._signer\n }\n\n get viewer(): XyoViewer | undefined {\n return this._viewer\n }\n\n /** @deprecated use submitTransaction instead */\n async send(\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n chain?: Address,\n nbf?: number,\n exp?: number,\n from?: Address,\n fees?: TransactionFeesBigInt,\n ): Promise<Signed<TransactionBoundWitness>> {\n return (await this.submitTransaction(elevatedPayloads, additionalPayloads, {\n chain, nbf, exp, from, fees,\n }))[0]\n }\n\n async submitTransaction(\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n {\n chain, exp, fees, from, nbf,\n }: {\n chain?: Address\n exp?: number\n fees?: TransactionFeesBigInt\n from?: Address\n nbf?: number\n } = {},\n ): Promise<HydratedTransaction> {\n const chainResolved = chain ?? await this._viewer?.chainId()\n if (chainResolved === undefined) throw new Error('Failed to determine chain')\n const nbfResolved = Math.max(await this._viewer?.currentBlockNumber() ?? 0, nbf ?? 0)\n const expResolved = exp ?? (nbfResolved + 1000)\n const feesResolved = fees ?? defaultTransactionFees\n const fromResolved = from ?? await this._signer?.address()\n if (fromResolved === undefined) throw new Error('Failed to determine from address')\n const signedTransaction = assertEx(await this._signer?.createSignedTransaction(\n chainResolved,\n elevatedPayloads,\n additionalPayloads,\n nbfResolved,\n expResolved,\n feesResolved,\n fromResolved,\n ), () => 'Failed to create transaction')\n const hydratedTransaction: HydratedTransaction = [await PayloadBuilder.addStorageMeta(signedTransaction),\n await PayloadBuilder.addStorageMeta(elevatedPayloads)]\n\n assertEx(await this.runner?.broadcastTransaction(hydratedTransaction), () => 'Failed to broadcast transaction')\n\n return hydratedTransaction\n }\n}\n","// NOTE: See https://www.npmjs.com/package/@metamask/rpc-errors for\n// better error codes & protocol specific error codes. Migrate to that\n// if fuller support is needed.\nexport const JsonRpcErrorCodes: Record<string, { code: number; message: string }> = {\n InternalError: { code: -32_603, message: 'Internal JSON-RPC error (unexpected exception).' },\n InvalidParams: { code: -32_602, message: 'Invalid method parameter(s).' },\n InvalidRequest: { code: -32_600, message: 'The JSON sent is not a valid Request object.' },\n MethodNotFound: { code: -32_601, message: 'The method does not exist or is not available.' },\n}\n","export const jsonrpc = '2.0' as const\n","import { z } from 'zod'\n\nimport type { XyoProviderRpcMethodName } from '../XyoProviderRpc.ts'\nimport {\n AddressFromStringSchema, AddressToStringSchema, PayloadSchema, SignedTransactionBoundWitnessSchema, TransactionFeesFromStingSchema,\n TransactionFeesToStingSchema,\n} from './common/index.ts'\nimport type { RpcSchemaMap } from './RpcSchemaMap.ts'\n\nexport const XyoProviderRpcSchemas: RpcSchemaMap<XyoProviderRpcMethodName> = {\n xyoProvider_send: {\n params: {\n to: z.tuple([\n AddressFromStringSchema,\n z.array(PayloadSchema),\n z.array(PayloadSchema),\n z.number().nonnegative(),\n z.number().nonnegative(),\n TransactionFeesToStingSchema,\n AddressFromStringSchema.optional(),\n ]),\n from: z.tuple([\n AddressToStringSchema,\n z.array(PayloadSchema),\n z.array(PayloadSchema),\n z.number().nonnegative(),\n z.number().nonnegative(),\n TransactionFeesFromStingSchema,\n AddressToStringSchema.optional(),\n ]),\n },\n result: {\n to: SignedTransactionBoundWitnessSchema,\n from: SignedTransactionBoundWitnessSchema,\n },\n },\n}\n","import type { Address } from '@xylabs/hex'\nimport { toAddress } from '@xylabs/hex'\nimport { AddressRegEx } from '@xyo-network/payload-wrapper'\nimport { z } from 'zod'\n\nconst CompiledAddressRegEx = new RegExp(AddressRegEx)\n\nexport const AddressToStringSchema = z.string().toLowerCase().regex(CompiledAddressRegEx)\nexport const AddressFromStringSchema = z.string().toLowerCase().regex(CompiledAddressRegEx).transform<Address>(v => toAddress(v))\n","import { hexToBigInt, toHex } from '@xylabs/hex'\nimport { HexRegEx } from '@xyo-network/payload-wrapper'\nimport { z } from 'zod'\n\nconst CompiledHexRegEx = new RegExp(HexRegEx)\n\nexport const BigIntToStringSchema = z.bigint().nonnegative().transform(x => toHex(x))\nexport const BigIntFromStringSchema = z.string().regex(CompiledHexRegEx).transform(x => hexToBigInt(toHex(x)))\n","import { z } from 'zod'\n\nimport {\n SignedBoundWitnessSchema, SignedBoundWitnessWithStorageMetaSchema, UnsignedBoundWitnessSchema, UnsignedBoundWitnessWithStorageMetaSchema,\n} from './BoundWitnessSchema.ts'\nimport { HexToStringSchema } from './HexSchema.ts'\n\nexport const BlockNumberSchema = z.number().int().nonnegative()\n\nconst BlockBoundWitnessFieldsSchema = z.object({\n block: BlockNumberSchema,\n chain: HexToStringSchema,\n previous: HexToStringSchema.nullable(),\n protocol: z.number().optional(),\n step_hashes: z.array(HexToStringSchema).optional(),\n})\n\nexport const BlockBoundWitnessSchema = UnsignedBoundWitnessSchema\n .merge(BlockBoundWitnessFieldsSchema)\n .passthrough()\nexport const BlockBoundWitnessWithStorageMetaSchema = UnsignedBoundWitnessWithStorageMetaSchema\n .merge(BlockBoundWitnessFieldsSchema)\n .passthrough()\n\nexport const SignedBlockBoundWitnessSchema = SignedBoundWitnessSchema\n .merge(BlockBoundWitnessFieldsSchema)\n .passthrough()\nexport const SignedBlockBoundWitnessWithStorageMetaSchema = SignedBoundWitnessWithStorageMetaSchema\n .merge(BlockBoundWitnessFieldsSchema)\n .passthrough()\n","import { BoundWitnessSchema } from '@xyo-network/boundwitness-model'\nimport { z } from 'zod'\n\nimport { AddressToStringSchema } from './AddressSchema.ts'\nimport { HashToStringSchema } from './HashSchema.ts'\nimport { HexToStringSchema } from './HexSchema.ts'\nimport { PayloadSchema, PayloadWithStorageMetaSchema } from './PayloadSchema.ts'\n\nexport const SchemaIdSchema = z.string()\n\nconst BoundWitnessRequiredFieldsSchema = z.object({\n addresses: z.array(AddressToStringSchema),\n payload_hashes: z.array(HashToStringSchema),\n payload_schemas: z.array(SchemaIdSchema),\n previous_hashes: z.array(HashToStringSchema.nullable()),\n})\n\nconst BoundWitnessMetaSchema = z.object({\n $destination: AddressToStringSchema.optional(),\n $sourceQuery: HashToStringSchema.optional(),\n})\n\nexport const UnsignedBoundWitnessSchema = PayloadSchema\n .extend({ schema: z.literal(BoundWitnessSchema) })\n .merge(BoundWitnessRequiredFieldsSchema)\n .merge(BoundWitnessMetaSchema)\n .passthrough()\n\nexport const UnsignedBoundWitnessWithStorageMetaSchema = PayloadWithStorageMetaSchema\n .extend({ schema: z.literal(BoundWitnessSchema) })\n .merge(BoundWitnessRequiredFieldsSchema)\n .merge(BoundWitnessMetaSchema)\n .passthrough()\n\nexport const SignedBoundWitnessSchema = UnsignedBoundWitnessSchema\n .extend(\n { $signatures: z.array(HexToStringSchema) },\n )\n .passthrough()\n\nexport const SignedBoundWitnessWithStorageMetaSchema = UnsignedBoundWitnessWithStorageMetaSchema\n .extend(\n { $signatures: z.array(HexToStringSchema) },\n )\n .passthrough()\n","import type { Hash } from '@xylabs/hex'\nimport { toHex } from '@xylabs/hex'\nimport { HashRegEx } from '@xyo-network/payload-wrapper'\nimport { z } from 'zod'\n\nexport const HashToStringSchema = z.string().toLowerCase().regex(new RegExp(HashRegEx))\nexport const HashFromStringSchema = z.string().toLowerCase().regex(new RegExp(HashRegEx)).transform<Hash>(v => toHex(v))\n","import type { Hex } from '@xylabs/hex'\nimport { toHex } from '@xylabs/hex'\nimport { HexRegEx } from '@xyo-network/payload-wrapper'\nimport { z } from 'zod'\n\nexport const HexToStringSchema = z.string().toLowerCase().regex(new RegExp(HexRegEx))\nexport const HexFromStringSchema = z.string().toLowerCase().regex(new RegExp(HexRegEx)).transform<Hex>(v => toHex(v))\n","import { z } from 'zod'\n\nimport { StorageMetaSchema } from './StorageMetaSchema.ts'\n\nexport const PayloadSchema = z.object({ schema: z.string() }).passthrough()\nexport const PayloadWithStorageMetaSchema = PayloadSchema.extend(StorageMetaSchema.shape).passthrough()\n","import { z } from 'zod'\n\nimport { HashToStringSchema } from './HashSchema.ts'\nimport { SequenceToStringSchema } from './SequenceSchema.ts'\n\nexport const StorageMetaSchema = z.object({\n _hash: HashToStringSchema,\n _dataHash: HashToStringSchema,\n _sequence: SequenceToStringSchema,\n})\n\nexport function WithStorageMetaSchema<T extends z.ZodTypeAny>(valueSchema: T) {\n return StorageMetaSchema.extend({ value: valueSchema })\n}\n","import { toHex } from '@xylabs/hex'\nimport type {\n LocalSequence,\n QualifiedSequence,\n} from '@xyo-network/payload-model'\nimport { SequenceConstants } from '@xyo-network/payload-model'\nimport { HexRegExMinMax } from '@xyo-network/payload-wrapper'\nimport { z } from 'zod'\n\nconst LocalSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.localSequenceBytes, SequenceConstants.localSequenceBytes))\nexport const LocalSequenceToStringSchema = z.string().regex(LocalSequenceRegex)\nexport const LocalSequenceFromStringSchema = z.string().regex(LocalSequenceRegex).transform<LocalSequence>(v => toHex(v))\n\nconst QualifiedSequenceRegex = new RegExp(HexRegExMinMax(SequenceConstants.qualifiedSequenceBytes, SequenceConstants.qualifiedSequenceBytes))\nexport const QualifiedSequenceToStringSchema = z.string().regex(QualifiedSequenceRegex)\nexport const QualifiedSequenceFromStringSchema = z.string().regex(QualifiedSequenceRegex).transform<QualifiedSequence>(v => toHex(v))\n\nexport const SequenceToStringSchema = z.union([LocalSequenceToStringSchema, QualifiedSequenceToStringSchema])\nexport const SequenceFromStringSchema = z.union([LocalSequenceFromStringSchema, QualifiedSequenceFromStringSchema])\n","import { z } from 'zod'\n\nimport {\n BlockBoundWitnessSchema, BlockBoundWitnessWithStorageMetaSchema, SignedBlockBoundWitnessSchema, SignedBlockBoundWitnessWithStorageMetaSchema,\n} from './BlockBoundWitnessSchema.ts'\nimport { PayloadSchema, PayloadWithStorageMetaSchema } from './PayloadSchema.ts'\n\nexport const HydratedBlockSchema = z.tuple([\n BlockBoundWitnessSchema,\n z.array(PayloadSchema),\n])\n\nexport const HydratedBlockWithStorageMetaSchema = z.tuple([\n BlockBoundWitnessWithStorageMetaSchema,\n z.array(PayloadWithStorageMetaSchema),\n])\n\nexport const SignedHydratedBlockSchema = z.tuple([\n SignedBlockBoundWitnessSchema,\n z.array(PayloadSchema),\n])\n\nexport const SignedHydratedBlockWithStorageMetaSchema = z.tuple([\n SignedBlockBoundWitnessWithStorageMetaSchema,\n z.array(PayloadWithStorageMetaSchema),\n])\n","import { z } from 'zod'\n\nimport { PayloadSchema } from './PayloadSchema.ts'\nimport { SignedTransactionBoundWitnessSchema, TransactionBoundWitnessSchema } from './TransactionBoundWitnessSchema.ts'\n\nexport const HydratedTransactionSchema = z.tuple([\n TransactionBoundWitnessSchema,\n z.array(PayloadSchema),\n])\n\nexport const SignedHydratedTransactionSchema = z.tuple([\n SignedTransactionBoundWitnessSchema,\n z.array(PayloadSchema),\n])\n","import z from 'zod'\n\nimport { AddressToStringSchema } from './AddressSchema.ts'\nimport { BlockNumberSchema } from './BlockBoundWitnessSchema.ts'\nimport { SignedBoundWitnessSchema, UnsignedBoundWitnessSchema } from './BoundWitnessSchema.ts'\nimport { HexToStringSchema } from './HexSchema.ts'\n\nexport const BlockStartSchema = z.object({ nbf: BlockNumberSchema })\nexport const BlockEndSchema = z.object({ exp: BlockNumberSchema })\nexport const BlockDurationSchema = z.object({ nbf: BlockNumberSchema, exp: BlockNumberSchema })\n\nexport const TransactionFeesSchema = z.object({\n fees: z.object({\n base: HexToStringSchema,\n gasLimit: HexToStringSchema,\n gasPrice: HexToStringSchema,\n priority: HexToStringSchema,\n }),\n})\n\nconst TransactionBoundWitnessFields = z.object({ chain: AddressToStringSchema })\n\nexport const TransactionBoundWitnessSchema = UnsignedBoundWitnessSchema\n .merge(BlockDurationSchema)\n .merge(TransactionFeesSchema)\n .merge(TransactionBoundWitnessFields)\n .passthrough()\n\nexport const SignedTransactionBoundWitnessSchema = SignedBoundWitnessSchema\n .merge(BlockDurationSchema)\n .merge(TransactionFeesSchema)\n .merge(TransactionBoundWitnessFields)\n .passthrough()\n","import { z } from 'zod'\n\nimport { BigIntFromStringSchema, BigIntToStringSchema } from './BigIntSchema.ts'\n\nexport const TransactionFeesToStingSchema = z.object({\n base: BigIntToStringSchema,\n gasLimit: BigIntToStringSchema,\n gasPrice: BigIntToStringSchema,\n priority: BigIntToStringSchema,\n})\n\nexport const TransactionFeesFromStingSchema = z.object({\n base: BigIntFromStringSchema,\n gasLimit: BigIntFromStringSchema,\n gasPrice: BigIntFromStringSchema,\n priority: BigIntFromStringSchema,\n})\n","import { z } from 'zod'\n\nimport type { XyoRunnerRpcMethodName } from '../XyoRunnerRpc.ts'\nimport {\n HashFromStringSchema,\n HashToStringSchema,\n SignedHydratedTransactionSchema,\n} from './common/index.ts'\nimport type { RpcSchemaMap } from './RpcSchemaMap.ts'\n\nexport const XyoRunnerRpcSchemas: RpcSchemaMap<XyoRunnerRpcMethodName> = {\n xyoRunner_broadcastTransaction: {\n params: {\n to: z.tuple([SignedHydratedTransactionSchema]),\n from: z.tuple([SignedHydratedTransactionSchema]),\n },\n result: {\n to: HashToStringSchema,\n from: HashFromStringSchema,\n },\n },\n}\n","import { z } from 'zod'\n\nimport type { XyoSignerRpcMethodName } from '../XyoSignerRpc.ts'\nimport {\n AddressFromStringSchema, AddressToStringSchema, PayloadSchema, SignedTransactionBoundWitnessSchema, TransactionFeesFromStingSchema,\n TransactionFeesToStingSchema,\n} from './common/index.ts'\nimport type { RpcSchemaMap } from './RpcSchemaMap.ts'\n\nexport const XyoSignerRpcSchemas: RpcSchemaMap<XyoSignerRpcMethodName> = {\n xyoSigner_address: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: AddressToStringSchema,\n from: AddressFromStringSchema,\n },\n },\n xyoSigner_createSignedTransaction: {\n params: {\n to: z.tuple([\n AddressFromStringSchema,\n z.array(PayloadSchema),\n z.array(PayloadSchema),\n z.number().nonnegative(),\n z.number().nonnegative(),\n TransactionFeesToStingSchema,\n AddressFromStringSchema.optional(),\n ]),\n from: z.tuple([\n AddressToStringSchema,\n z.array(PayloadSchema),\n z.array(PayloadSchema),\n z.number().nonnegative(),\n z.number().nonnegative(),\n TransactionFeesFromStingSchema,\n AddressToStringSchema.optional(),\n ]),\n },\n result: {\n to: SignedTransactionBoundWitnessSchema,\n from: SignedTransactionBoundWitnessSchema,\n },\n },\n}\n","import { z } from 'zod'\n\nimport type { XyoViewerRpcMethodName } from '../XyoViewerRpc.ts'\nimport {\n AddressFromStringSchema, AddressToStringSchema, BigIntFromStringSchema, BigIntToStringSchema,\n BlockNumberSchema,\n HashFromStringSchema, HashToStringSchema,\n PayloadSchema,\n SignedHydratedBlockSchema,\n SignedHydratedTransactionSchema,\n} from './common/index.ts'\nimport type { RpcSchemaMap } from './RpcSchemaMap.ts'\n\nexport const XyoViewerRpcSchemas: RpcSchemaMap<XyoViewerRpcMethodName> = {\n xyoViewer_accountBalance: {\n params: {\n to: z.union([\n z.tuple([AddressToStringSchema]),\n z.tuple([AddressToStringSchema, z.number()]),\n z.tuple([AddressToStringSchema, z.number(), z.boolean()]),\n ]),\n from: z.union([\n z.tuple([AddressToStringSchema]),\n z.tuple([AddressToStringSchema, z.number()]),\n z.tuple([AddressToStringSchema, z.number(), z.boolean()]),\n ]),\n },\n result: {\n to: BigIntToStringSchema,\n from: BigIntFromStringSchema,\n },\n },\n xyoViewer_accountHistory: {\n params: {\n to: z.union([\n z.tuple([AddressToStringSchema]),\n z.tuple([AddressToStringSchema, z.number()]),\n z.tuple([AddressToStringSchema, z.number(), z.boolean()]),\n ]),\n from: z.union([\n z.tuple([AddressToStringSchema]),\n z.tuple([AddressToStringSchema, z.number()]),\n z.tuple([AddressToStringSchema, z.number(), z.boolean()]),\n ]),\n },\n result: {\n to: z.array(z.array(PayloadSchema)),\n from: z.array(z.array(PayloadSchema)),\n },\n },\n xyoViewer_blockByHash: {\n params: {\n to: z.tuple([HashToStringSchema]),\n from: z.tuple([HashFromStringSchema]),\n },\n result: {\n to: SignedHydratedBlockSchema,\n from: SignedHydratedBlockSchema,\n },\n },\n xyoViewer_blockByNumber: {\n params: {\n to: z.tuple([z.number()]),\n from: z.tuple([z.number()]),\n },\n result: {\n to: SignedHydratedBlockSchema,\n from: SignedHydratedBlockSchema,\n },\n },\n xyoViewer_blocksByHash: {\n params: {\n to: z.tuple([HashToStringSchema, z.number().optional()]),\n from: z.tuple([HashFromStringSchema, z.number().optional()]),\n },\n result: {\n to: z.array(SignedHydratedBlockSchema),\n from: z.array(SignedHydratedBlockSchema),\n },\n },\n xyoViewer_chainId: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: AddressToStringSchema,\n from: AddressFromStringSchema,\n },\n },\n xyoViewer_currentBlock: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: SignedHydratedBlockSchema,\n from: SignedHydratedBlockSchema,\n },\n },\n xyoViewer_currentBlockHash: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: HashToStringSchema,\n from: HashFromStringSchema,\n },\n },\n xyoViewer_currentBlockNumber: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: BlockNumberSchema,\n from: BlockNumberSchema,\n },\n },\n xyoViewer_transactionByBlockHashAndIndex: {\n params: {\n to: z.tuple([HashToStringSchema, z.number()]),\n from: z.tuple([HashFromStringSchema, z.number()]),\n },\n result: {\n to: SignedHydratedTransactionSchema.nullable(),\n from: SignedHydratedTransactionSchema.nullable(),\n },\n },\n xyoViewer_transactionByBlockNumberAndIndex: {\n params: {\n to: z.tuple([z.number(), z.number()]),\n from: z.tuple([z.number(), z.number()]),\n },\n result: {\n to: SignedHydratedTransactionSchema.nullable(),\n from: SignedHydratedTransactionSchema.nullable(),\n },\n },\n xyoViewer_transactionByHash: {\n params: {\n to: z.tuple([HashToStringSchema]),\n from: z.tuple([HashFromStringSchema]),\n },\n result: {\n to: SignedHydratedTransactionSchema.nullable(),\n from: SignedHydratedTransactionSchema.nullable(),\n },\n },\n}\n","import type { RpcSchemaMap } from './RpcSchemaMap.ts'\nimport { XyoProviderRpcSchemas } from './XyoProviderRpcSchemas.ts'\nimport { XyoRunnerRpcSchemas } from './XyoRunnerRpcSchemas.ts'\nimport { XyoSignerRpcSchemas } from './XyoSignerRpcSchemas.ts'\nimport { XyoViewerRpcSchemas } from './XyoViewerRpcSchemas.ts'\n\nexport const AllRpcSchemas: RpcSchemaMap = {\n ...XyoProviderRpcSchemas,\n ...XyoRunnerRpcSchemas,\n ...XyoSignerRpcSchemas,\n ...XyoViewerRpcSchemas,\n}\n","import type { ZodUndefined } from 'zod'\nimport { z } from 'zod'\n\nimport { jsonrpc } from '../JsonRpc.ts'\n\nexport const createRequestSchema = <TParams extends z.ZodTypeAny, TMethodName extends string = string>(\n methodName: TMethodName,\n paramsSchema: TParams | ZodUndefined = z.undefined(),\n) =>\n z.object({\n id: z.union([z.string(), z.number()]),\n jsonrpc: z.literal(jsonrpc),\n method: z.literal(methodName),\n params: paramsSchema,\n })\n","import type { ZodUndefined } from 'zod'\nimport { z } from 'zod'\n\nimport { jsonrpc } from '../JsonRpc.ts'\n\nexport const createResponseSchema = <TParams extends z.ZodTypeAny>(\n resultSchema: TParams | ZodUndefined = z.undefined(),\n) =>\n z.object({\n id: z.union([z.string(), z.number()]),\n jsonrpc: z.literal(jsonrpc),\n result: resultSchema,\n })\n","import type { Hex } from '@xylabs/hex'\nimport { z } from 'zod'\n\nimport type { XyoGatewayRpcMethodName } from '../XyoGatewayRpc.ts'\nimport { BlockBoundWitnessSchema, HydratedTransactionSchema } from './common/index.ts'\nimport type { RpcSchemaMap } from './RpcSchemaMap.ts'\n\nexport const ChainConnectionSchema = z.object({\n chainId: z.union([z.string(), z.custom<Hex>()]).optional(),\n name: z.string(),\n url: z.string(),\n})\n\nexport const CaveatTypesSchema = z.enum(['chain', 'expiration', 'filteredResponse', 'rateLimit'])\n\nexport const CaveatsSchema = z.object({\n type: CaveatTypesSchema,\n value: z.unknown(), // JsonValue is usually unknown, adjust if you have a stricter type\n})\n\nexport const PermissionSchema = z.object({\n capability: z.string(),\n caveats: CaveatsSchema.array().optional(),\n invoker: z.string(),\n})\n\nexport const InvokerPermissionSchema = PermissionSchema.extend({ date: z.number().optional() })\n\nexport type ChainConnection = z.infer<typeof ChainConnectionSchema>\n\nexport const XyoGatewayRpcSchemas: RpcSchemaMap<XyoGatewayRpcMethodName> = {\n xyoGateway_addConnection: {\n params: {\n to: z.tuple([ChainConnectionSchema]),\n from: z.tuple([ChainConnectionSchema]),\n },\n result: {\n to: z.tuple([z.boolean()]),\n from: z.tuple([z.boolean()]),\n },\n },\n xyoGateway_connections: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: z.array(ChainConnectionSchema),\n from: z.array(ChainConnectionSchema),\n },\n },\n xyoGateway_getPermissions: {\n params: {\n to: z.array(z.any()).length(0).optional(),\n from: z.array(z.any()).length(0).optional(),\n },\n result: {\n to: z.array(InvokerPermissionSchema),\n from: z.array(InvokerPermissionSchema),\n },\n },\n xyoGateway_requestPermissions: {\n params: {\n to: z.array(PermissionSchema),\n from: z.array(PermissionSchema),\n },\n result: {\n to: z.boolean(),\n from: z.boolean(),\n },\n },\n xyoGateway_revokePermissions: {\n params: {\n to: z.array(PermissionSchema),\n from: z.array(PermissionSchema),\n },\n result: {\n to: z.boolean(),\n from: z.boolean(),\n },\n },\n xyoGateway_activeConnection: {\n params: {\n from: z.never(),\n to: z.never(),\n },\n result: {\n from: z.string().optional(),\n to: z.string().optional(),\n },\n },\n xyoGateway_submitTransaction: {\n params: {\n from: z.array(\n HydratedTransactionSchema,\n ),\n to: z.array(\n HydratedTransactionSchema,\n ),\n },\n result: {\n from: BlockBoundWitnessSchema,\n to: BlockBoundWitnessSchema,\n },\n },\n}\n","import type {\n JsonRpcFailure, JsonRpcRequest, JsonRpcSuccess,\n} from '@metamask/utils'\nimport { AxiosJson } from '@xylabs/axios'\nimport { isUndefinedOrNull } from '@xylabs/typeof'\nimport { v4 } from 'uuid'\nimport type { z } from 'zod'\n\nimport type { RpcSchemaMap } from '../types/index.ts'\nimport { jsonrpc } from '../types/index.ts'\nimport type { RpcTransport } from './RpcTransport.ts'\n\nexport class HttpRpcTransport<T extends RpcSchemaMap = RpcSchemaMap> implements RpcTransport<T> {\n protected readonly _rpcUrl: string\n protected readonly _schemas: T\n\n constructor(rpcUrl: string, schemas: T) {\n this._rpcUrl = rpcUrl\n this._schemas = schemas\n }\n\n async sendRequest<\n TMethod extends keyof T & string,\n >(\n method: TMethod,\n params?: z.infer<T[TMethod]['params']['to']>,\n ): Promise<z.infer<T[TMethod]['result']['from']>> {\n return await this.callRpc(this._rpcUrl, this._schemas, method, params)\n }\n\n private async callRpc<\n TSchemas extends RpcSchemaMap,\n TMethod extends keyof TSchemas,\n >(\n url: string,\n schemas: TSchemas,\n method: TMethod,\n params?: z.infer<TSchemas[TMethod]['params']['to']>,\n ): Promise<z.infer<TSchemas[TMethod]['result']['from']>> {\n const id = v4()\n const body: JsonRpcRequest = {\n jsonrpc,\n id,\n method: method as string,\n }\n\n if (params) {\n body.params = schemas[method].params.to.parse(params)\n }\n\n const res = await new AxiosJson().post(url, body)\n\n const json = res.data\n if (isUndefinedOrNull(json) || (json as Partial<JsonRpcFailure>).error) {\n throw new Error((json as JsonRpcFailure).error.message)\n }\n\n return schemas[method].result.from.parse((json as JsonRpcSuccess).result)\n }\n}\n","import type { JsonRpcEngine } from '@metamask/json-rpc-engine'\nimport type { JsonRpcRequest } from '@metamask/utils'\nimport { isObject } from '@xylabs/typeof'\nimport { v4 } from 'uuid'\nimport type { z } from 'zod'\n\nimport type { RpcSchemaMap } from '../types/index.ts'\nimport {\n AllRpcSchemas, createRequestSchema, createResponseSchema, jsonrpc,\n} from '../types/index.ts'\nimport type { RpcTransport } from './RpcTransport.ts'\n\nexport class MemoryRpcTransport<T extends RpcSchemaMap = typeof AllRpcSchemas> implements RpcTransport<T> {\n protected readonly _rpcEngine: JsonRpcEngine\n protected readonly _schemas: T\n protected readonly requestSchemas: Record<string, z.AnyZodObject> = {}\n protected readonly responseSchemas: Record<string, z.AnyZodObject> = {}\n\n constructor(rpcEngine: JsonRpcEngine, schemas: T = AllRpcSchemas as T) {\n this._rpcEngine = rpcEngine\n this._schemas = schemas\n }\n\n async sendRequest<\n TMethod extends keyof T & string,\n >(\n method: TMethod,\n params?: z.infer<T[TMethod]['params']['to']>,\n ): Promise<z.infer<T[TMethod]['result']['from']>> {\n // Get schema for method\n // Get handler for method\n const schema = this._schemas[method]\n let requestSchema = this.requestSchemas[method]\n if (!isObject(requestSchema)) {\n requestSchema = createRequestSchema(method, schema.params.to)\n this.requestSchemas[method] = requestSchema\n }\n const req: JsonRpcRequest = {\n jsonrpc, id: v4(), method: method as string, params,\n }\n const request = requestSchema.parse(req) as JsonRpcRequest\n const response = await this._rpcEngine.handle(request)\n let responseSchema = this.responseSchemas[method]\n if (!isObject(responseSchema)) {\n responseSchema = createResponseSchema(schema.result.from)\n this.responseSchemas[method] = responseSchema\n }\n return responseSchema.parse(response)?.result\n }\n}\n","import type { JsonRpcRequest } from '@metamask/utils'\nimport { isDefined } from '@xylabs/typeof'\nimport { v4 } from 'uuid'\nimport type { z } from 'zod'\n\nimport type { RpcSchemaMap } from '../../types/index.ts'\nimport { jsonrpc, XyoGatewayRpcSchemas } from '../../types/index.ts'\nimport type { RpcTransport } from '../RpcTransport.ts'\nimport type { JsonRpcRequestWithId } from './helpers.ts'\nimport { isRpcError } from './helpers.ts'\nimport { buildSessionMessageRequest } from './SessionEnvelope.ts'\n\nexport class PostMessageRpcTransport<T extends RpcSchemaMap = RpcSchemaMap> implements RpcTransport<T> {\n protected readonly destination?: string\n protected readonly schemas: T\n\n constructor(defaultDestination?: string, schemas: T = XyoGatewayRpcSchemas as T) {\n this.schemas = schemas\n this.destination = defaultDestination\n }\n\n async sendRequest<\n TMethod extends keyof T & string,\n >(\n method: TMethod,\n params?: z.infer<T[TMethod]['params']['to']>,\n ): Promise<z.infer<T[TMethod]['result']['from']>> {\n const id = v4()\n return await this.callRpc(this.schemas, method, id, params)\n }\n\n private async callRpc<\n TSchemas extends RpcSchemaMap,\n TMethod extends keyof TSchemas,\n >(\n schemas: TSchemas,\n method: TMethod,\n id: string,\n params?: z.infer<TSchemas[TMethod]['params']['to']>,\n ): Promise<z.infer<TSchemas[TMethod]['result']['from']>> {\n const body: JsonRpcRequest = {\n jsonrpc,\n id,\n method: method as string,\n }\n\n body.params = (isDefined(params) && isDefined(schemas[method])) ? schemas[method].params.to.parse(params) : params\n\n return await new Promise((resolve, reject) => {\n const id = body.id\n\n const handler = (event: MessageEvent) => {\n if (event.origin !== globalThis.window.origin) return\n if ((event.data as JsonRpcRequestWithId).id !== id) return\n\n globalThis.removeEventListener('message', handler)\n if (event.data.result.some(isRpcError)) {\n reject(event.data.result[0])\n } else {\n resolve(event.data.result[0])\n }\n }\n\n globalThis.addEventListener('message', handler)\n\n globalThis.postMessage(\n buildSessionMessageRequest(body, this.destination),\n globalThis.location.origin,\n )\n })\n }\n}\n","import type { JsonRpcRequest } from '@metamask/utils'\nimport type { JsonObject } from '@xylabs/object'\n\nexport type JsonRpcRequestWithId = JsonRpcRequest & {\n id: string\n}\n\nexport interface RpcError extends JsonObject {\n error: boolean\n message: string\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isRpcError = (data: any): data is RpcError => {\n return (\n data\n && typeof data === 'object'\n && 'error' in data\n && data.error\n )\n}\n","import type { JsonRpcRequest } from '@metamask/utils'\nimport type { JsonValue } from '@xylabs/object'\n\nexport interface SessionMessageEnvelope<T extends JsonValue> {\n data: T\n destination?: string\n sessionId: string\n}\n\n/** Only intended for web pages where the xyo global object was injected */\nexport const buildSessionMessageRequest = <T extends JsonRpcRequest>(data: T, destination?: string) => {\n const request: SessionMessageEnvelope<T> = {\n data,\n destination,\n sessionId: globalThis.xyo.walletExtensionId() ?? '',\n }\n\n return request\n}\n","import { type Hash } from '@xylabs/hex'\nimport type { HydratedTransaction, XyoRunner } from '@xyo-network/xl1-protocol'\n\nimport type { RpcTransport } from '../../transport/index.ts'\nimport type { XyoRunnerRpcSchemas } from '../../types/index.ts'\nexport class JsonRpcXyoRunner implements XyoRunner {\n protected readonly transport: RpcTransport<typeof XyoRunnerRpcSchemas>\n\n constructor(transport: RpcTransport<typeof XyoRunnerRpcSchemas>) {\n this.transport = transport\n }\n\n async broadcastTransaction(transaction: HydratedTransaction): Promise<Hash> {\n return await this.transport.sendRequest('xyoRunner_broadcastTransaction', [transaction])\n }\n}\n","import type { Hash } from '@xylabs/hex'\nimport { MemoryArchivist } from '@xyo-network/archivist-memory'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { HydratedTransaction, XyoRunner } from '@xyo-network/xl1-protocol'\nimport { flattenHydratedTransaction } from '@xyo-network/xl1-protocol-sdk'\n\nexport class MemoryXyoRunner implements XyoRunner {\n protected _archivist: MemoryArchivist | undefined\n\n async broadcastTransaction(transaction: HydratedTransaction): Promise<Hash> {\n const archivist = await this.getArchivist()\n await archivist.insert(flattenHydratedTransaction(transaction))\n return await PayloadBuilder.hash(transaction[0])\n }\n\n protected async getArchivist(): Promise<MemoryArchivist> {\n if (!this._archivist) {\n this._archivist = await MemoryArchivist.create({ account: 'random' })\n }\n return this._archivist\n }\n}\n","import { assertEx } from '@xylabs/assert'\nimport { type Hash } from '@xylabs/hex'\nimport type { ArchivistInstance } from '@xyo-network/archivist-model'\nimport { asArchivistInstance } from '@xyo-network/archivist-model'\nimport type { ModuleIdentifier } from '@xyo-network/module-model'\nimport type { NodeInstance } from '@xyo-network/node-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { PayloadBundle } from '@xyo-network/payload-model'\nimport { PayloadBundleSchema } from '@xyo-network/payload-model'\nimport type {\n HydratedTransaction,\n XyoRunner,\n} from '@xyo-network/xl1-protocol'\nimport { flattenHydratedTransaction } from '@xyo-network/xl1-protocol-sdk'\n\nexport class NodeXyoRunner implements XyoRunner {\n // TODO: Make configurable with defaults\n protected readonly node: NodeInstance\n protected readonly pendingArchivistPath: ModuleIdentifier = 'XYOChain:Pending:PendingTransactions'\n\n private _pendingArchivist: ArchivistInstance | undefined\n\n constructor(node: NodeInstance) {\n this.node = node\n }\n\n async broadcastTransaction(transaction: HydratedTransaction): Promise<Hash> {\n const flattened = flattenHydratedTransaction(transaction)\n\n const pendingArchivist = await this.getPendingArchivist()\n\n const txHash = await PayloadBuilder.hash(transaction[0])\n const payloadBundle: PayloadBundle = {\n schema: PayloadBundleSchema, payloads: flattened, root: txHash,\n }\n\n await pendingArchivist.insert([payloadBundle])\n\n return txHash\n }\n\n protected getArchivist = async (identifier: ModuleIdentifier) => {\n const archivist = await this.node.resolve(identifier)\n return assertEx(asArchivistInstance(archivist), () => `Error: Could not resolve ${identifier} to an archivist instance`)\n }\n\n protected getPendingArchivist = async () => {\n if (this._pendingArchivist) return this._pendingArchivist\n this._pendingArchivist = await this.getArchivist(this.pendingArchivistPath)\n return assertEx(this._pendingArchivist, () => `Error: Could not resolve pending archivist at ${this.pendingArchivistPath}`)\n }\n}\n","import { type Address } from '@xylabs/hex'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport type { Payload } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload,\n TransactionBoundWitness,\n TransactionFeesBigInt,\n XyoSigner,\n} from '@xyo-network/xl1-protocol'\n\nimport type { RpcTransport } from '../../transport/index.ts'\nimport type { XyoSignerRpcSchemas } from '../../types/index.ts'\nexport class JsonRpcXyoSigner implements XyoSigner {\n protected readonly transport: RpcTransport<typeof XyoSignerRpcSchemas>\n\n constructor(transport: RpcTransport<typeof XyoSignerRpcSchemas>) {\n this.transport = transport\n }\n\n async address(): Promise<Address> {\n return await this.transport.sendRequest('xyoSigner_address')\n }\n\n async createSignedTransaction(\n chain: Address,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n nbf: number,\n exp: number,\n fees: TransactionFeesBigInt,\n from?: Address,\n ): Promise<Signed<TransactionBoundWitness>> {\n return await this.transport.sendRequest('xyoSigner_createSignedTransaction', [\n chain,\n elevatedPayloads,\n additionalPayloads,\n nbf,\n exp,\n fees,\n from,\n ])\n }\n}\n","import type { Address } from '@xylabs/hex'\nimport type { AccountInstance } from '@xyo-network/account-model'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { type Payload } from '@xyo-network/payload-model'\nimport type {\n AllowedBlockPayload, TransactionBoundWitness, TransactionFeesBigInt, XyoSigner,\n} from '@xyo-network/xl1-protocol'\nimport { buildTransaction } from '@xyo-network/xl1-protocol-sdk'\n\nexport class MemoryXyoSigner implements XyoSigner {\n protected readonly _account: AccountInstance\n\n constructor(account: AccountInstance) {\n this._account = account\n }\n\n address(): Address {\n return this._account.address\n }\n\n async createSignedTransaction(\n chain: Address,\n elevatedPayloads: AllowedBlockPayload[],\n additionalPayloads: Payload[],\n nbf: number,\n exp: number,\n fees: TransactionFeesBigInt,\n from?: Address,\n ): Promise<Signed<TransactionBoundWitness>> {\n const fromAddress = from ?? this._account.address\n const transaction = await buildTransaction(\n chain,\n elevatedPayloads,\n additionalPayloads,\n this._account,\n nbf,\n exp,\n fromAddress,\n fees,\n )\n return transaction[0]\n }\n}\n","import { type Address, type Hash } from '@xylabs/hex'\nimport type {\n HydratedBlock, HydratedTransaction,\n TransactionBoundWitness,\n Transfer,\n XyoViewer,\n} from '@xyo-network/xl1-protocol'\n\nimport type { RpcTransport } from '../../transport/index.ts'\nimport type { XyoViewerRpcSchemas } from '../../types/index.ts'\nexport class JsonRpcXyoViewer implements XyoViewer {\n protected readonly transport: RpcTransport<typeof XyoViewerRpcSchemas>\n\n constructor(transport: RpcTransport<typeof XyoViewerRpcSchemas>) {\n this.transport = transport\n }\n\n async accountBalance(address: Address): Promise<bigint> {\n return await this.transport.sendRequest('xyoViewer_accountBalance', [address])\n }\n\n async accountHistory(address: Address): Promise<[TransactionBoundWitness[], Transfer[]]> {\n return await this.transport.sendRequest('xyoViewer_accountBalance', [address])\n }\n\n async blockByHash(hash: Hash): Promise<HydratedBlock | null> {\n return await this.transport.sendRequest('xyoViewer_blockByHash', [hash])\n }\n\n async blockByNumber(blockNumber: number): Promise<HydratedBlock | null> {\n return await this.transport.sendRequest('xyoViewer_blockByNumber', [blockNumber])\n }\n\n async blocksByHash(hash: Hash, limit?: number): Promise<HydratedBlock[]> {\n return await this.transport.sendRequest('xyoViewer_blocksByHash', [hash, limit])\n }\n\n async chainId(): Promise<Address> {\n return await this.transport.sendRequest('xyoViewer_chainId')\n }\n\n async currentBlock(): Promise<HydratedBlock> {\n return await this.transport.sendRequest('xyoViewer_currentBlock')\n }\n\n async currentBlockHash(): Promise<Hash> {\n return await this.transport.sendRequest('xyoViewer_currentBlockHash')\n }\n\n async currentBlockNumber(): Promise<number> {\n return await this.transport.sendRequest('xyoViewer_currentBlockNumber')\n }\n\n async transactionByBlockHashAndIndex(blockHash: Hash, transactionIndex: number): Promise<HydratedTransaction | null> {\n return await this.transport.sendRequest('xyoViewer_transactionByBlockHashAndIndex', [blockHash, transactionIndex])\n }\n\n async transactionByBlockNumberAndIndex(blockNumber: number, transactionIndex: number): Promise<HydratedTransaction | null> {\n return await this.transport.sendRequest('xyoViewer_transactionByBlockNumberAndIndex', [blockNumber, transactionIndex])\n }\n\n async transactionByHash(transactionHash: Hash): Promise<HydratedTransaction | null> {\n return await this.transport.sendRequest('xyoViewer_transactionByHash', [transactionHash])\n }\n}\n","import { delay } from '@xylabs/delay'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport { PayloadBuilder } from '@xyo-network/payload-builder'\nimport type { TransactionBoundWitness, XyoConnectionProvider } from '@xyo-network/xl1-protocol'\n\nconst CONFIRMATION_ATTEMPTS = 20\nconst DELAY_BETWEEN_ATTEMPTS = 1000 // milliseconds\n\nexport const confirmTransaction = async (\n provider: XyoConnectionProvider,\n txBW: Signed<TransactionBoundWitness>,\n onConfirm?: (txBWHash: string) => void,\n onTimeout?: () => void,\n) => {\n const txBWHash = await PayloadBuilder.hash(txBW)\n console.log('✅ confirming transaction:', txBWHash, '\\n')\n let confirmed = false\n let attempts = 0\n while (!confirmed) {\n const tx = await provider.viewer?.transactionByHash(txBWHash)\n if (tx) {\n confirmed = true\n console.log('🍻 Transaction confirmed:', txBWHash, '\\n')\n onConfirm?.(txBWHash)\n } else {\n attempts++\n if (attempts > CONFIRMATION_ATTEMPTS) {\n console.error(`⚠️ Transaction not confirmed after ${CONFIRMATION_ATTEMPTS} attempts`)\n onTimeout?.()\n return\n } else {\n console.log(`🔄 Transaction not confirmed yet, attempt ${attempts}. Retrying...`, '\\n')\n await delay(DELAY_BETWEEN_ATTEMPTS) // wait 1 second before retrying\n }\n }\n }\n}\n","import type { AccountInstance } from '@xyo-network/account-model'\nimport type { Signed } from '@xyo-network/boundwitness-model'\nimport type { TransactionBoundWitness } from '@xyo-network/xl1-protocol'\n\nimport {\n HttpRpcTransport, XyoRunnerRpcSchemas, XyoViewerRpcSchemas,\n} from '../../index-node.ts'\nimport { JsonRpcXyoRunner } from '../runner/index.ts'\nimport { MemoryXyoSigner } from '../signer/index.ts'\nimport { JsonRpcXyoViewer } from '../viewer/index.ts'\nimport { confirmTransaction } from './confirmTransaction.ts'\nimport { MemoryXyoProvider } from './MemoryXyoProvider.ts'\n\nexport interface RpcXyoProviderParams {\n account?: AccountInstance\n endpoint: string\n}\n\nexport class RpcXyoProvider extends MemoryXyoProvider {\n constructor(params: RpcXyoProviderParams) {\n const transport = new HttpRpcTransport(params.endpoint, { ...XyoRunnerRpcSchemas, ...XyoViewerRpcSchemas })\n const signer = params.account ? new MemoryXyoSigner(params.account) : undefined\n const runner = new JsonRpcXyoRunner(transport)\n const viewer = new JsonRpcXyoViewer(transport)\n super({\n signer, runner, viewer,\n })\n }\n\n async confirm(\n tx: Signed<TransactionBoundWitness>,\n onConfirm?: (txBWHash: string) => void,\n onTimeout?: () => void,\n ) {\n return await confirmTransaction(this, tx, onConfirm, onTimeout)\n }\n}\n"],"mappings":"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","names":["requestSchemas","rpcMethodHandlersFromRunner","runner","xyoRunner_broadcastTransaction","params","broadcastTransaction","rpcMethodHandlersFromSigner","signer","xyoSigner_address","params","address","xyoSigner_createSignedTransaction","createSignedTransaction","rpcMethodHandlersFromViewer","viewer","xyoViewer_accountBalance","params","accountBalance","xyoViewer_accountHistory","accountHistory","xyoViewer_blockByHash","blockByHash","xyoViewer_blockByNumber","blockByNumber","xyoViewer_blocksByHash","blocksByHash","xyoViewer_chainId","chainId","xyoViewer_currentBlock","currentBlock","xyoViewer_currentBlockHash","currentBlockHash","xyoViewer_currentBlockNumber","currentBlockNumber","xyoViewer_transactionByBlockHashAndIndex","transactionByBlockHashAndIndex","xyoViewer_transactionByBlockNumberAndIndex","transactionByBlockNumberAndIndex","xyoViewer_transactionByHash","transactionByHash","rpcMethodHandlersFromProvider","provider","runner","signer","viewer","result","xyoProvider_send","params","send","rpcMethodHandlersFromRunner","rpcMethodHandlersFromSigner","rpcMethodHandlersFromViewer","assertEx","AbstractXyoGateway","submitTransaction","elevatedPayloads","additionalPayloads","assertEx","activeConnection","JsonRpcXyoGateway","_transport","transport","Error","addConnection","_config","connections","getPermissions","sendRequest","requestPermissions","permissions","revokePermissions","isUndefined","isNetworkStatus","axios","NetworkStatusSchema","unknownStatus","description","schema","state","errorStatus","MainNetworkStats","id","statusUrl","SequenceNetworkStats","LocalNetworkStats","StatusNetworks","mainnet","sequence","local","MemoryXyoNetwork","_networkId","networkId","status","statusNetwork","StatusNetworks","isUndefined","Error","makeRequest","statusUrl","url","response","axios","get","isNetworkStatus","data","console","error","unknownStatus","errorStatus","assertEx","PayloadBuilder","defaultTransactionFees","MemoryXyoProvider","_network","_runner","_signer","_viewer","params","network","runner","signer","viewer","send","elevatedPayloads","additionalPayloads","chain","nbf","exp","from","fees","submitTransaction","chainResolved","chainId","undefined","Error","nbfResolved","Math","max","currentBlockNumber","expResolved","feesResolved","defaultTransactionFees","fromResolved","address","signedTransaction","assertEx","createSignedTransaction","hydratedTransaction","PayloadBuilder","addStorageMeta","broadcastTransaction","JsonRpcErrorCodes","InternalError","code","message","InvalidParams","InvalidRequest","MethodNotFound","jsonrpc","z","toAddress","AddressRegEx","z","CompiledAddressRegEx","RegExp","AddressToStringSchema","string","toLowerCase","regex","AddressFromStringSchema","transform","v","hexToBigInt","toHex","HexRegEx","z","CompiledHexRegEx","RegExp","BigIntToStringSchema","bigint","nonnegative","transform","x","BigIntFromStringSchema","string","regex","z","BoundWitnessSchema","z","toHex","HashRegEx","z","HashToStringSchema","string","toLowerCase","regex","RegExp","HashFromStringSchema","transform","v","toHex","HexRegEx","z","HexToStringSchema","string","toLowerCase","regex","RegExp","HexFromStringSchema","transform","v","z","z","toHex","SequenceConstants","HexRegExMinMax","z","LocalSequenceRegex","RegExp","localSequenceBytes","LocalSequenceToStringSchema","string","regex","LocalSequenceFromStringSchema","transform","v","QualifiedSequenceRegex","qualifiedSequenceBytes","QualifiedSequenceToStringSchema","QualifiedSequenceFromStringSchema","SequenceToStringSchema","union","SequenceFromStringSchema","StorageMetaSchema","z","object","_hash","HashToStringSchema","_dataHash","_sequence","SequenceToStringSchema","PayloadSchema","z","object","schema","string","passthrough","PayloadWithStorageMetaSchema","extend","StorageMetaSchema","shape","SchemaIdSchema","z","string","BoundWitnessRequiredFieldsSchema","object","addresses","array","AddressToStringSchema","payload_hashes","HashToStringSchema","payload_schemas","previous_hashes","nullable","BoundWitnessMetaSchema","$destination","optional","$sourceQuery","UnsignedBoundWitnessSchema","PayloadSchema","extend","schema","literal","BoundWitnessSchema","merge","passthrough","UnsignedBoundWitnessWithStorageMetaSchema","PayloadWithStorageMetaSchema","SignedBoundWitnessSchema","$signatures","HexToStringSchema","SignedBoundWitnessWithStorageMetaSchema","BlockNumberSchema","z","number","int","nonnegative","BlockBoundWitnessFieldsSchema","object","block","chain","HexToStringSchema","previous","nullable","protocol","optional","step_hashes","array","BlockBoundWitnessSchema","UnsignedBoundWitnessSchema","merge","passthrough","BlockBoundWitnessWithStorageMetaSchema","UnsignedBoundWitnessWithStorageMetaSchema","SignedBlockBoundWitnessSchema","SignedBoundWitnessSchema","SignedBlockBoundWitnessWithStorageMetaSchema","SignedBoundWitnessWithStorageMetaSchema","z","HydratedBlockSchema","z","tuple","BlockBoundWitnessSchema","array","PayloadSchema","HydratedBlockWithStorageMetaSchema","BlockBoundWitnessWithStorageMetaSchema","PayloadWithStorageMetaSchema","SignedHydratedBlockSchema","SignedBlockBoundWitnessSchema","SignedHydratedBlockWithStorageMetaSchema","SignedBlockBoundWitnessWithStorageMetaSchema","z","z","BlockStartSchema","z","object","nbf","BlockNumberSchema","BlockEndSchema","exp","BlockDurationSchema","TransactionFeesSchema","fees","base","HexToStringSchema","gasLimit","gasPrice","priority","TransactionBoundWitnessFields","chain","AddressToStringSchema","TransactionBoundWitnessSchema","UnsignedBoundWitnessSchema","merge","passthrough","SignedTransactionBoundWitnessSchema","SignedBoundWitnessSchema","HydratedTransactionSchema","z","tuple","TransactionBoundWitnessSchema","array","PayloadSchema","SignedHydratedTransactionSchema","SignedTransactionBoundWitnessSchema","z","TransactionFeesToStingSchema","z","object","base","BigIntToStringSchema","gasLimit","gasPrice","priority","TransactionFeesFromStingSchema","BigIntFromStringSchema","XyoProviderRpcSchemas","xyoProvider_send","params","to","z","tuple","AddressFromStringSchema","array","PayloadSchema","number","nonnegative","TransactionFeesToStingSchema","optional","from","AddressToStringSchema","TransactionFeesFromStingSchema","result","SignedTransactionBoundWitnessSchema","z","XyoRunnerRpcSchemas","xyoRunner_broadcastTransaction","params","to","z","tuple","SignedHydratedTransactionSchema","from","result","HashToStringSchema","HashFromStringSchema","z","XyoSignerRpcSchemas","xyoSigner_address","params","to","z","array","any","length","optional","from","result","AddressToStringSchema","AddressFromStringSchema","xyoSigner_createSignedTransaction","tuple","PayloadSchema","number","nonnegative","TransactionFeesToStingSchema","TransactionFeesFromStingSchema","SignedTransactionBoundWitnessSchema","z","XyoViewerRpcSchemas","xyoViewer_accountBalance","params","to","z","union","tuple","AddressToStringSchema","number","boolean","from","result","BigIntToStringSchema","BigIntFromStringSchema","xyoViewer_accountHistory","array","PayloadSchema","xyoViewer_blockByHash","HashToStringSchema","HashFromStringSchema","SignedHydratedBlockSchema","xyoViewer_blockByNumber","xyoViewer_blocksByHash","optional","xyoViewer_chainId","any","length","AddressFromStringSchema","xyoViewer_currentBlock","xyoViewer_currentBlockHash","xyoViewer_currentBlockNumber","BlockNumberSchema","xyoViewer_transactionByBlockHashAndIndex","SignedHydratedTransactionSchema","nullable","xyoViewer_transactionByBlockNumberAndIndex","xyoViewer_transactionByHash","AllRpcSchemas","XyoProviderRpcSchemas","XyoRunnerRpcSchemas","XyoSignerRpcSchemas","XyoViewerRpcSchemas","z","createRequestSchema","methodName","paramsSchema","z","undefined","object","id","union","string","number","jsonrpc","literal","method","params","z","createResponseSchema","resultSchema","z","undefined","object","id","union","string","number","jsonrpc","literal","result","z","ChainConnectionSchema","z","object","chainId","union","string","custom","optional","name","url","CaveatTypesSchema","enum","CaveatsSchema","type","value","unknown","PermissionSchema","capability","caveats","array","invoker","InvokerPermissionSchema","extend","date","number","XyoGatewayRpcSchemas","xyoGateway_addConnection","params","to","tuple","from","result","boolean","xyoGateway_connections","any","length","xyoGateway_getPermissions","xyoGateway_requestPermissions","xyoGateway_revokePermissions","xyoGateway_activeConnection","never","xyoGateway_submitTransaction","HydratedTransactionSchema","BlockBoundWitnessSchema","AxiosJson","isUndefinedOrNull","v4","HttpRpcTransport","_rpcUrl","_schemas","rpcUrl","schemas","sendRequest","method","params","callRpc","url","id","v4","body","jsonrpc","to","parse","res","AxiosJson","post","json","data","isUndefinedOrNull","error","Error","message","result","from","isObject","v4","MemoryRpcTransport","_rpcEngine","_schemas","requestSchemas","responseSchemas","rpcEngine","schemas","AllRpcSchemas","sendRequest","method","params","schema","requestSchema","isObject","createRequestSchema","to","req","jsonrpc","id","v4","request","parse","response","handle","responseSchema","createResponseSchema","result","from","isDefined","v4","isRpcError","data","error","buildSessionMessageRequest","data","destination","request","sessionId","globalThis","xyo","walletExtensionId","PostMessageRpcTransport","destination","schemas","defaultDestination","XyoGatewayRpcSchemas","sendRequest","method","params","id","v4","callRpc","body","jsonrpc","isDefined","to","parse","Promise","resolve","reject","handler","event","origin","globalThis","window","data","removeEventListener","result","some","isRpcError","addEventListener","postMessage","buildSessionMessageRequest","location","JsonRpcXyoRunner","transport","broadcastTransaction","transaction","sendRequest","MemoryArchivist","PayloadBuilder","flattenHydratedTransaction","MemoryXyoRunner","_archivist","broadcastTransaction","transaction","archivist","getArchivist","insert","flattenHydratedTransaction","PayloadBuilder","hash","MemoryArchivist","create","account","assertEx","asArchivistInstance","PayloadBuilder","PayloadBundleSchema","flattenHydratedTransaction","NodeXyoRunner","node","pendingArchivistPath","_pendingArchivist","broadcastTransaction","transaction","flattened","flattenHydratedTransaction","pendingArchivist","getPendingArchivist","txHash","PayloadBuilder","hash","payloadBundle","schema","PayloadBundleSchema","payloads","root","insert","getArchivist","identifier","archivist","resolve","assertEx","asArchivistInstance","JsonRpcXyoSigner","transport","address","sendRequest","createSignedTransaction","chain","elevatedPayloads","additionalPayloads","nbf","exp","fees","from","buildTransaction","MemoryXyoSigner","_account","account","address","createSignedTransaction","chain","elevatedPayloads","additionalPayloads","nbf","exp","fees","from","fromAddress","transaction","buildTransaction","JsonRpcXyoViewer","transport","accountBalance","address","sendRequest","accountHistory","blockByHash","hash","blockByNumber","blockNumber","blocksByHash","limit","chainId","currentBlock","currentBlockHash","currentBlockNumber","transactionByBlockHashAndIndex","blockHash","transactionIndex","transactionByBlockNumberAndIndex","transactionByHash","transactionHash","delay","PayloadBuilder","CONFIRMATION_ATTEMPTS","DELAY_BETWEEN_ATTEMPTS","confirmTransaction","provider","txBW","onConfirm","onTimeout","txBWHash","PayloadBuilder","hash","console","log","confirmed","attempts","tx","viewer","transactionByHash","error","delay","RpcXyoProvider","MemoryXyoProvider","params","transport","HttpRpcTransport","endpoint","XyoRunnerRpcSchemas","XyoViewerRpcSchemas","signer","account","MemoryXyoSigner","undefined","runner","JsonRpcXyoRunner","viewer","JsonRpcXyoViewer","confirm","tx","onConfirm","onTimeout","confirmTransaction"]}
|
|
@@ -1,9 +1,18 @@
|
|
|
1
|
-
import type { Hash } from '@xylabs/hex';
|
|
2
1
|
import type { Promisable } from '@xylabs/promise';
|
|
3
|
-
import type {
|
|
2
|
+
import type { Payload } from '@xyo-network/payload-model';
|
|
3
|
+
import type { AllowedBlockPayload, HydratedTransaction, InvokerPermission, Permission, XyoConnectionProvider, XyoGatewayProvider, XyoRpcConnectionConfig } from '@xyo-network/xl1-protocol';
|
|
4
4
|
import type { RpcTransport } from '../../transport/index.ts';
|
|
5
5
|
import type { XyoGatewayRpcSchemas } from '../../types/index.ts';
|
|
6
|
-
export declare class
|
|
6
|
+
export declare abstract class AbstractXyoGateway implements XyoGatewayProvider {
|
|
7
|
+
submitTransaction(elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[]): Promise<HydratedTransaction>;
|
|
8
|
+
abstract activeConnection(): Promisable<XyoConnectionProvider | undefined>;
|
|
9
|
+
abstract addConnection(config: XyoRpcConnectionConfig): Promisable<XyoConnectionProvider>;
|
|
10
|
+
abstract connections(): Promisable<Record<string, XyoConnectionProvider>>;
|
|
11
|
+
abstract getPermissions(): Promisable<InvokerPermission[]>;
|
|
12
|
+
abstract requestPermissions(permissions: Permission[]): Promisable<boolean>;
|
|
13
|
+
abstract revokePermissions(permissions: Permission[]): Promisable<boolean>;
|
|
14
|
+
}
|
|
15
|
+
export declare class JsonRpcXyoGateway extends AbstractXyoGateway {
|
|
7
16
|
private readonly _transport;
|
|
8
17
|
constructor(transport: RpcTransport<typeof XyoGatewayRpcSchemas>);
|
|
9
18
|
activeConnection(): Promisable<XyoConnectionProvider | undefined>;
|
|
@@ -12,6 +21,5 @@ export declare class JsonRpcXyoGateway implements XyoGatewayProvider {
|
|
|
12
21
|
getPermissions(): Promisable<InvokerPermission[]>;
|
|
13
22
|
requestPermissions(permissions: Permission[]): Promisable<boolean>;
|
|
14
23
|
revokePermissions(permissions: Permission[]): Promisable<boolean>;
|
|
15
|
-
submitTransaction(tx: HydratedTransaction): Promise<Hash>;
|
|
16
24
|
}
|
|
17
25
|
//# sourceMappingURL=JsonRpcXyoGateway.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonRpcXyoGateway.d.ts","sourceRoot":"","sources":["../../../../src/provider/host/JsonRpcXyoGateway.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"JsonRpcXyoGateway.d.ts","sourceRoot":"","sources":["../../../../src/provider/host/JsonRpcXyoGateway.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EAAE,UAAU,EAC7B,qBAAqB,EACrB,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,2BAA2B,CAAA;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAEhE,8BAAsB,kBAAmB,YAAW,kBAAkB;IAC9D,iBAAiB,CAAC,gBAAgB,EAAE,mBAAmB,EAAE,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAU7H,QAAQ,CAAC,gBAAgB,IAAI,UAAU,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAC1E,QAAQ,CAAC,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,UAAU,CAAC,qBAAqB,CAAC;IACzF,QAAQ,CAAC,WAAW,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IACzE,QAAQ,CAAC,cAAc,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;IAC1D,QAAQ,CAAC,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;IAC3E,QAAQ,CAAC,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;CAC3E;AAED,qBAAa,iBAAkB,SAAQ,kBAAkB;IACvD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA2C;gBAE1D,SAAS,EAAE,YAAY,CAAC,OAAO,oBAAoB,CAAC;IAKhE,gBAAgB,IAAI,UAAU,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAIjE,aAAa,CAAC,OAAO,EAAE,sBAAsB,GAAG,UAAU,CAAC,qBAAqB,CAAC;IAIjF,WAAW,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAIhE,cAAc,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC;IAIjD,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;IAIlE,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC;CAGlE"}
|