@xyo-network/xl1-rpc 1.7.11 → 1.7.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +539 -261
- package/dist/neutral/engine/rpcMethodHandlersFromSigner.d.ts.map +1 -1
- package/dist/neutral/index.mjs +206 -91
- package/dist/neutral/index.mjs.map +1 -1
- package/dist/neutral/provider/host/Abstract.d.ts +13 -0
- package/dist/neutral/provider/host/Abstract.d.ts.map +1 -0
- package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts +2 -11
- package/dist/neutral/provider/host/JsonRpcXyoGateway.d.ts.map +1 -1
- package/dist/neutral/provider/host/MemoryXyoGateway.d.ts +22 -0
- package/dist/neutral/provider/host/MemoryXyoGateway.d.ts.map +1 -0
- package/dist/neutral/provider/host/PermissionsStore.d.ts +8 -0
- package/dist/neutral/provider/host/PermissionsStore.d.ts.map +1 -0
- package/dist/neutral/provider/host/getPermissionsStoreFromTransport.d.ts +5 -0
- package/dist/neutral/provider/host/getPermissionsStoreFromTransport.d.ts.map +1 -0
- package/dist/neutral/provider/host/index.d.ts +3 -0
- package/dist/neutral/provider/host/index.d.ts.map +1 -1
- package/dist/neutral/provider/provider/XyoConnection.d.ts +6 -9
- package/dist/neutral/provider/provider/XyoConnection.d.ts.map +1 -1
- package/dist/neutral/provider/signer/JsonRpcXyoSigner.d.ts +9 -2
- package/dist/neutral/provider/signer/JsonRpcXyoSigner.d.ts.map +1 -1
- package/dist/neutral/provider/signer/MemoryXyoSigner.d.ts +3 -1
- package/dist/neutral/provider/signer/MemoryXyoSigner.d.ts.map +1 -1
- package/dist/neutral/transport/HttpRpcTransport.d.ts.map +1 -1
- package/dist/neutral/types/schema/XyoSignerRpcSchemas.d.ts.map +1 -1
- package/dist/node/engine/rpcMethodHandlersFromSigner.d.ts.map +1 -1
- package/dist/node/index-node.mjs +208 -93
- package/dist/node/index-node.mjs.map +1 -1
- package/dist/node/provider/host/Abstract.d.ts +13 -0
- package/dist/node/provider/host/Abstract.d.ts.map +1 -0
- package/dist/node/provider/host/JsonRpcXyoGateway.d.ts +2 -11
- package/dist/node/provider/host/JsonRpcXyoGateway.d.ts.map +1 -1
- package/dist/node/provider/host/MemoryXyoGateway.d.ts +22 -0
- package/dist/node/provider/host/MemoryXyoGateway.d.ts.map +1 -0
- package/dist/node/provider/host/PermissionsStore.d.ts +8 -0
- package/dist/node/provider/host/PermissionsStore.d.ts.map +1 -0
- package/dist/node/provider/host/getPermissionsStoreFromTransport.d.ts +5 -0
- package/dist/node/provider/host/getPermissionsStoreFromTransport.d.ts.map +1 -0
- package/dist/node/provider/host/index.d.ts +3 -0
- package/dist/node/provider/host/index.d.ts.map +1 -1
- package/dist/node/provider/provider/XyoConnection.d.ts +6 -9
- package/dist/node/provider/provider/XyoConnection.d.ts.map +1 -1
- package/dist/node/provider/signer/JsonRpcXyoSigner.d.ts +9 -2
- package/dist/node/provider/signer/JsonRpcXyoSigner.d.ts.map +1 -1
- package/dist/node/provider/signer/MemoryXyoSigner.d.ts +3 -1
- package/dist/node/provider/signer/MemoryXyoSigner.d.ts.map +1 -1
- package/dist/node/transport/HttpRpcTransport.d.ts.map +1 -1
- package/dist/node/types/schema/XyoSignerRpcSchemas.d.ts.map +1 -1
- package/package.json +26 -25
- package/src/engine/rpcMethodHandlersFromSigner.ts +1 -0
- package/src/provider/host/Abstract.ts +30 -0
- package/src/provider/host/JsonRpcXyoGateway.ts +2 -28
- package/src/provider/host/MemoryXyoGateway.ts +84 -0
- package/src/provider/host/PermissionsStore.ts +8 -0
- package/src/provider/host/getPermissionsStoreFromTransport.ts +13 -0
- package/src/provider/host/index.ts +3 -0
- package/src/provider/provider/XyoConnection.ts +20 -10
- package/src/provider/signer/JsonRpcXyoSigner.ts +13 -2
- package/src/provider/signer/MemoryXyoSigner.ts +6 -1
- package/src/provider/signer/spec/RpcEngineXyoSigner.spec.ts +2 -2
- package/src/transport/HttpRpcTransport.ts +25 -16
- package/src/types/schema/XyoSignerRpcSchemas.ts +14 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MemoryXyoGateway.d.ts","sourceRoot":"","sources":["../../../../src/provider/host/MemoryXyoGateway.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEjD,OAAO,KAAK,EACV,iBAAiB,EAAE,UAAU,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,SAAS,EACxF,MAAM,2BAA2B,CAAA;AAElC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAEzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,qBAAa,gBAAiB,SAAQ,kBAAkB;IACtD,OAAO,CAAC,mBAAmB,CAAC,CAAQ;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgD;IAC7E,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAkB;IACpD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAW;gBAEvB,MAAM,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB;IAMjE,IAAI,MAAM,IAAI,SAAS,CAEtB;IAED,gBAAgB,IAAI,qBAAqB,GAAG,SAAS;IAOrD,aAAa,CAAC,MAAM,EAAE,sBAAsB,GAAG,UAAU,CAAC,qBAAqB,CAAC;IAChF,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,aAAa,GAAG,UAAU,CAAC,qBAAqB,CAAC;IAuBzF,WAAW,IAAI,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAQhE,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;IAIjE,OAAO,CAAC,gCAAgC;CAKzC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/promise';
|
|
2
|
+
import type { InvokerPermission, Permission } from '@xyo-network/xl1-protocol';
|
|
3
|
+
export interface PermissionsStore {
|
|
4
|
+
getPermissions(): Promisable<InvokerPermission[]>;
|
|
5
|
+
requestPermissions(permissions: Permission[]): Promisable<boolean>;
|
|
6
|
+
revokePermissions(permissions: Permission[]): Promisable<boolean>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=PermissionsStore.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PermissionsStore.d.ts","sourceRoot":"","sources":["../../../../src/provider/host/PermissionsStore.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAE9E,MAAM,WAAW,gBAAgB;IAC/B,cAAc,IAAI,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAA;IACjD,kBAAkB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;IAClE,iBAAiB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,UAAU,CAAC,OAAO,CAAC,CAAA;CAClE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type RpcTransport } from '../../transport/index.ts';
|
|
2
|
+
import type { XyoGatewayRpcSchemas } from '../../types/index.ts';
|
|
3
|
+
import type { PermissionsStore } from './PermissionsStore.ts';
|
|
4
|
+
export declare const getPermissionsStoreFromTransport: (transport: RpcTransport<typeof XyoGatewayRpcSchemas>) => PermissionsStore;
|
|
5
|
+
//# sourceMappingURL=getPermissionsStoreFromTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPermissionsStoreFromTransport.d.ts","sourceRoot":"","sources":["../../../../src/provider/host/getPermissionsStoreFromTransport.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,eAAO,MAAM,gCAAgC,GAAI,WAAW,YAAY,CAAC,OAAO,oBAAoB,CAAC,KAAG,gBAMvG,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/provider/host/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/provider/host/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAA;AAC7B,cAAc,wBAAwB,CAAA;AACtC,cAAc,uBAAuB,CAAA;AACrC,cAAc,uBAAuB,CAAA"}
|
|
@@ -1,30 +1,27 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex';
|
|
2
2
|
import type { Signed } from '@xyo-network/boundwitness-model';
|
|
3
|
-
import type
|
|
4
|
-
import type { AllowedBlockPayload, HydratedTransaction, TransactionBoundWitness, TransactionFeesBigInt, XyoConnectionProvider, XyoNetwork, XyoRunner, XyoSigner, XyoViewer } from '@xyo-network/xl1-protocol';
|
|
3
|
+
import { type Payload } from '@xyo-network/payload-model';
|
|
4
|
+
import type { AllowedBlockPayload, HydratedTransaction, TransactionBoundWitness, TransactionFeesBigInt, TransactionSubmitterOptions, XyoConnectionProvider, XyoDataLakeProvider, XyoDataLakeViewer, XyoNetwork, XyoRunner, XyoSigner, XyoViewer } from '@xyo-network/xl1-protocol';
|
|
5
5
|
export declare class XyoConnection implements XyoConnectionProvider {
|
|
6
6
|
private readonly _network?;
|
|
7
7
|
private readonly _runner?;
|
|
8
8
|
private readonly _signer?;
|
|
9
|
+
private readonly _storage?;
|
|
9
10
|
private readonly _viewer?;
|
|
10
11
|
constructor(params?: {
|
|
11
12
|
network?: XyoNetwork;
|
|
12
13
|
runner?: XyoRunner;
|
|
13
14
|
signer?: XyoSigner;
|
|
15
|
+
storage?: XyoDataLakeProvider | XyoDataLakeViewer;
|
|
14
16
|
viewer?: XyoViewer;
|
|
15
17
|
});
|
|
16
18
|
get network(): XyoNetwork | undefined;
|
|
17
19
|
get runner(): XyoRunner | undefined;
|
|
18
20
|
get signer(): XyoSigner | undefined;
|
|
21
|
+
get storage(): XyoDataLakeProvider | XyoDataLakeViewer | undefined;
|
|
19
22
|
get viewer(): XyoViewer | undefined;
|
|
20
23
|
/** @deprecated use submitTransaction instead */
|
|
21
24
|
send(elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[], chain?: Address, nbf?: number, exp?: number, from?: Address, fees?: TransactionFeesBigInt): Promise<Signed<TransactionBoundWitness>>;
|
|
22
|
-
submitTransaction(elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[], { chain, exp, fees, from, nbf, }?:
|
|
23
|
-
chain?: Address;
|
|
24
|
-
exp?: number;
|
|
25
|
-
fees?: TransactionFeesBigInt;
|
|
26
|
-
from?: Address;
|
|
27
|
-
nbf?: number;
|
|
28
|
-
}): Promise<HydratedTransaction>;
|
|
25
|
+
submitTransaction(elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[], { chain, exp, fees, from, nbf, }?: TransactionSubmitterOptions): Promise<HydratedTransaction>;
|
|
29
26
|
}
|
|
30
27
|
//# sourceMappingURL=XyoConnection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoConnection.d.ts","sourceRoot":"","sources":["../../../../src/provider/provider/XyoConnection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoConnection.d.ts","sourceRoot":"","sources":["../../../../src/provider/provider/XyoConnection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;AAG7D,OAAO,EAAgB,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACvE,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EAAE,qBAAqB,EAC9C,2BAA2B,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EACxI,MAAM,2BAA2B,CAAA;AAGlC,qBAAa,aAAc,YAAW,qBAAqB;IACzD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAW;IACpC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAyC;IACnE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAW;gBAExB,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,UAAU,CAAA;QACpB,MAAM,CAAC,EAAE,SAAS,CAAA;QAClB,MAAM,CAAC,EAAE,SAAS,CAAA;QAClB,OAAO,CAAC,EAAE,mBAAmB,GAAG,iBAAiB,CAAA;QACjD,MAAM,CAAC,EAAE,SAAS,CAAA;KACnB;IAQD,IAAI,OAAO,IAAI,UAAU,GAAG,SAAS,CAEpC;IAED,IAAI,MAAM,IAAI,SAAS,GAAG,SAAS,CAElC;IAED,IAAI,MAAM,IAAI,SAAS,GAAG,SAAS,CAElC;IAED,IAAI,OAAO,IAAI,mBAAmB,GAAG,iBAAiB,GAAG,SAAS,CAEjE;IAED,IAAI,MAAM,IAAI,SAAS,GAAG,SAAS,CAElC;IAED,gDAAgD;IAC1C,IAAI,CACR,gBAAgB,EAAE,mBAAmB,EAAE,EACvC,kBAAkB,EAAE,OAAO,EAAE,EAC7B,KAAK,CAAC,EAAE,OAAO,EACf,GAAG,CAAC,EAAE,MAAM,EACZ,GAAG,CAAC,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE,OAAO,EACd,IAAI,CAAC,EAAE,qBAAqB,GAC3B,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAMrC,iBAAiB,CACrB,gBAAgB,EAAE,mBAAmB,EAAE,EACvC,kBAAkB,EAAE,OAAO,EAAE,EAC7B,EACE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,GAC5B,GAAE,2BAAgC,GAClC,OAAO,CAAC,mBAAmB,CAAC;CAkChC"}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
1
|
import { type Address } from '@xylabs/hex';
|
|
2
|
-
import type {
|
|
2
|
+
import type { Promisable } from '@xylabs/promise';
|
|
3
|
+
import type { Signed, UnsignedBoundWitness } from '@xyo-network/boundwitness-model';
|
|
3
4
|
import type { Payload } from '@xyo-network/payload-model';
|
|
4
5
|
import type { AllowedBlockPayload, TransactionBoundWitness, TransactionFeesBigInt, XyoSigner } from '@xyo-network/xl1-protocol';
|
|
5
6
|
import type { RpcTransport } from '../../transport/index.ts';
|
|
6
7
|
import type { XyoSignerRpcSchemas } from '../../types/index.ts';
|
|
7
|
-
export declare class
|
|
8
|
+
export declare class RpcXyoSigner implements XyoSigner {
|
|
8
9
|
protected readonly transport: RpcTransport<typeof XyoSignerRpcSchemas>;
|
|
9
10
|
constructor(transport: RpcTransport<typeof XyoSignerRpcSchemas>);
|
|
10
11
|
address(): Promise<Address>;
|
|
11
12
|
createSignedTransaction(chain: Address, elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[], nbf: number, exp: number, fees: TransactionFeesBigInt, from?: Address): Promise<Signed<TransactionBoundWitness>>;
|
|
13
|
+
signTransaction(tx: [UnsignedBoundWitness<TransactionBoundWitness>, Payload[]]): Promisable<[Signed<TransactionBoundWitness>, Payload[]]>;
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* @deprecated Use `RpcXyoSigner` instead.
|
|
17
|
+
*/
|
|
18
|
+
export declare class JsonRpcXyoSigner extends RpcXyoSigner {
|
|
12
19
|
}
|
|
13
20
|
//# sourceMappingURL=JsonRpcXyoSigner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"JsonRpcXyoSigner.d.ts","sourceRoot":"","sources":["../../../../src/provider/signer/JsonRpcXyoSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"JsonRpcXyoSigner.d.ts","sourceRoot":"","sources":["../../../../src/provider/signer/JsonRpcXyoSigner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACnF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EACV,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,SAAS,EACV,MAAM,2BAA2B,CAAA;AAElC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAE/D,qBAAa,YAAa,YAAW,SAAS;IAC5C,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,YAAY,CAAC,OAAO,mBAAmB,CAAC,CAAA;gBAE1D,SAAS,EAAE,YAAY,CAAC,OAAO,mBAAmB,CAAC;IAIzD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,uBAAuB,CAC3B,KAAK,EAAE,OAAO,EACd,gBAAgB,EAAE,mBAAmB,EAAE,EACvC,kBAAkB,EAAE,OAAO,EAAE,EAC7B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,qBAAqB,EAC3B,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAY3C,eAAe,CAAC,EAAE,EAAE,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;CAG1I;AAED;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;CAAG"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex';
|
|
2
|
+
import type { Promisable } from '@xylabs/promise';
|
|
2
3
|
import type { AccountInstance } from '@xyo-network/account-model';
|
|
3
|
-
import type { Signed } from '@xyo-network/boundwitness-model';
|
|
4
|
+
import type { Signed, UnsignedBoundWitness } from '@xyo-network/boundwitness-model';
|
|
4
5
|
import { type Payload } from '@xyo-network/payload-model';
|
|
5
6
|
import type { AllowedBlockPayload, TransactionBoundWitness, TransactionFeesBigInt, XyoSigner } from '@xyo-network/xl1-protocol';
|
|
6
7
|
export declare class MemoryXyoSigner implements XyoSigner {
|
|
@@ -8,5 +9,6 @@ export declare class MemoryXyoSigner implements XyoSigner {
|
|
|
8
9
|
constructor(account: AccountInstance);
|
|
9
10
|
address(): Address;
|
|
10
11
|
createSignedTransaction(chain: Address, elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[], nbf: number, exp: number, fees: TransactionFeesBigInt, from?: Address): Promise<Signed<TransactionBoundWitness>>;
|
|
12
|
+
signTransaction(_tx: [UnsignedBoundWitness<TransactionBoundWitness>, Payload[]]): Promisable<[Signed<TransactionBoundWitness>, Payload[]]>;
|
|
11
13
|
}
|
|
12
14
|
//# sourceMappingURL=MemoryXyoSigner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MemoryXyoSigner.d.ts","sourceRoot":"","sources":["../../../../src/provider/signer/MemoryXyoSigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iCAAiC,CAAA;
|
|
1
|
+
{"version":3,"file":"MemoryXyoSigner.d.ts","sourceRoot":"","sources":["../../../../src/provider/signer/MemoryXyoSigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAA;AACjE,OAAO,KAAK,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,iCAAiC,CAAA;AACnF,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,4BAA4B,CAAA;AACzD,OAAO,KAAK,EACV,mBAAmB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,SAAS,EAC/E,MAAM,2BAA2B,CAAA;AAGlC,qBAAa,eAAgB,YAAW,SAAS;IAC/C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAA;gBAEhC,OAAO,EAAE,eAAe;IAIpC,OAAO,IAAI,OAAO;IAIZ,uBAAuB,CAC3B,KAAK,EAAE,OAAO,EACd,gBAAgB,EAAE,mBAAmB,EAAE,EACvC,kBAAkB,EAAE,OAAO,EAAE,EAC7B,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,qBAAqB,EAC3B,IAAI,CAAC,EAAE,OAAO,GACb,OAAO,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC;IAe3C,eAAe,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;CAG3I"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpRpcTransport.d.ts","sourceRoot":"","sources":["../../../src/transport/HttpRpcTransport.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"HttpRpcTransport.d.ts","sourceRoot":"","sources":["../../../src/transport/HttpRpcTransport.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAE5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,qBAAa,gBAAgB,CAAC,CAAC,SAAS,YAAY,GAAG,YAAY,CAAE,YAAW,YAAY,CAAC,CAAC,CAAC;IAC7F,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IAClC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;gBAElB,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IAKhC,WAAW,CACf,OAAO,SAAS,MAAM,CAAC,GAAG,MAAM,EAEhC,MAAM,EAAE,OAAO,EACf,MAAM,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,GAC3C,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAInC,OAAO;CAqCtB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XyoSignerRpcSchemas.d.ts","sourceRoot":"","sources":["../../../../src/types/schema/XyoSignerRpcSchemas.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"XyoSignerRpcSchemas.d.ts","sourceRoot":"","sources":["../../../../src/types/schema/XyoSignerRpcSchemas.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAA;AAQhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAErD,eAAO,MAAM,mBAAmB,EAAE,YAAY,CAAC,sBAAsB,CA+CpE,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json.schemastore.org/package.json",
|
|
3
3
|
"name": "@xyo-network/xl1-rpc",
|
|
4
|
-
"version": "1.7.
|
|
4
|
+
"version": "1.7.12",
|
|
5
5
|
"description": "XYO Layer One API",
|
|
6
6
|
"homepage": "https://xylabs.com",
|
|
7
7
|
"bugs": {
|
|
@@ -59,35 +59,36 @@
|
|
|
59
59
|
"dependencies": {
|
|
60
60
|
"@metamask/json-rpc-engine": "^10.0.3",
|
|
61
61
|
"@metamask/utils": "^11.4.2",
|
|
62
|
-
"@xylabs/assert": "^4.13.
|
|
63
|
-
"@xylabs/axios": "^4.13.
|
|
64
|
-
"@xylabs/delay": "^4.13.
|
|
65
|
-
"@xylabs/hex": "^4.13.
|
|
66
|
-
"@xylabs/object": "^4.13.
|
|
67
|
-
"@xylabs/promise": "^4.13.
|
|
68
|
-
"@xylabs/typeof": "^4.13.
|
|
69
|
-
"@xyo-network/account-model": "^4.1.
|
|
70
|
-
"@xyo-network/archivist-memory": "^4.1.
|
|
71
|
-
"@xyo-network/archivist-model": "^4.1.
|
|
72
|
-
"@xyo-network/boundwitness-model": "^4.1.
|
|
73
|
-
"@xyo-network/
|
|
74
|
-
"@xyo-network/
|
|
75
|
-
"@xyo-network/
|
|
76
|
-
"@xyo-network/payload-
|
|
77
|
-
"@xyo-network/payload-
|
|
78
|
-
"@xyo-network/
|
|
79
|
-
"@xyo-network/xl1-protocol
|
|
80
|
-
"
|
|
62
|
+
"@xylabs/assert": "^4.13.23",
|
|
63
|
+
"@xylabs/axios": "^4.13.23",
|
|
64
|
+
"@xylabs/delay": "^4.13.23",
|
|
65
|
+
"@xylabs/hex": "^4.13.23",
|
|
66
|
+
"@xylabs/object": "^4.13.23",
|
|
67
|
+
"@xylabs/promise": "^4.13.23",
|
|
68
|
+
"@xylabs/typeof": "^4.13.23",
|
|
69
|
+
"@xyo-network/account-model": "^4.1.7",
|
|
70
|
+
"@xyo-network/archivist-memory": "^4.1.7",
|
|
71
|
+
"@xyo-network/archivist-model": "^4.1.7",
|
|
72
|
+
"@xyo-network/boundwitness-model": "^4.1.7",
|
|
73
|
+
"@xyo-network/chain-wrappers": "^1.7.12",
|
|
74
|
+
"@xyo-network/module-model": "^4.1.7",
|
|
75
|
+
"@xyo-network/node-model": "^4.1.7",
|
|
76
|
+
"@xyo-network/payload-builder": "^4.1.7",
|
|
77
|
+
"@xyo-network/payload-model": "^4.1.7",
|
|
78
|
+
"@xyo-network/payload-wrapper": "^4.1.7",
|
|
79
|
+
"@xyo-network/xl1-protocol": "^1.7.19",
|
|
80
|
+
"@xyo-network/xl1-protocol-sdk": "^1.7.12",
|
|
81
|
+
"axios": "^1.11.0",
|
|
81
82
|
"uuid": "^11.1.0",
|
|
82
83
|
"zod": "^3.25.76"
|
|
83
84
|
},
|
|
84
85
|
"devDependencies": {
|
|
85
86
|
"@metamask/utils": "^11.4.2",
|
|
86
|
-
"@types/node": "^24.0
|
|
87
|
-
"@xylabs/ts-scripts-yarn3": "^7.0.
|
|
88
|
-
"@xylabs/tsconfig": "^7.0.
|
|
89
|
-
"@xylabs/vitest-extended": "^4.13.
|
|
90
|
-
"@xyo-network/account": "^4.1.
|
|
87
|
+
"@types/node": "^24.1.0",
|
|
88
|
+
"@xylabs/ts-scripts-yarn3": "^7.0.1",
|
|
89
|
+
"@xylabs/tsconfig": "^7.0.1",
|
|
90
|
+
"@xylabs/vitest-extended": "^4.13.23",
|
|
91
|
+
"@xyo-network/account": "^4.1.7",
|
|
91
92
|
"dotenv": "^17.2.0",
|
|
92
93
|
"knip": "^5.62.0",
|
|
93
94
|
"typescript": "^5.8.3",
|
|
@@ -6,5 +6,6 @@ export const rpcMethodHandlersFromSigner = (signer: XyoSigner): XyoSignerRpcMeth
|
|
|
6
6
|
return {
|
|
7
7
|
xyoSigner_address: params => signer.address(...(params ?? [])),
|
|
8
8
|
xyoSigner_createSignedTransaction: params => signer.createSignedTransaction(...(params ?? [])),
|
|
9
|
+
xyoSigner_signTransaction: params => signer.signTransaction(...(params ?? [])),
|
|
9
10
|
}
|
|
10
11
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { assertEx } from '@xylabs/assert'
|
|
2
|
+
import type { Promisable } from '@xylabs/promise'
|
|
3
|
+
import type { Payload } from '@xyo-network/payload-model'
|
|
4
|
+
import type {
|
|
5
|
+
AllowedBlockPayload,
|
|
6
|
+
HydratedTransaction,
|
|
7
|
+
InvokerPermission, Permission,
|
|
8
|
+
XyoConnectionProvider,
|
|
9
|
+
XyoGatewayProvider,
|
|
10
|
+
XyoRpcConnectionConfig,
|
|
11
|
+
} from '@xyo-network/xl1-protocol'
|
|
12
|
+
|
|
13
|
+
export abstract class AbstractXyoGateway implements XyoGatewayProvider {
|
|
14
|
+
async submitTransaction(elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[]): Promise<HydratedTransaction> {
|
|
15
|
+
return assertEx(
|
|
16
|
+
assertEx(
|
|
17
|
+
await this.activeConnection(),
|
|
18
|
+
() => 'No active connection available for transaction submission',
|
|
19
|
+
).submitTransaction,
|
|
20
|
+
() => 'Active connection does not support transaction submission',
|
|
21
|
+
)(elevatedPayloads, additionalPayloads)
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
abstract activeConnection(): Promisable<XyoConnectionProvider | undefined>
|
|
25
|
+
abstract addConnection(config: XyoRpcConnectionConfig): Promisable<XyoConnectionProvider>
|
|
26
|
+
abstract connections(): Promisable<Record<string, XyoConnectionProvider>>
|
|
27
|
+
abstract getPermissions(): Promisable<InvokerPermission[]>
|
|
28
|
+
abstract requestPermissions(permissions: Permission[]): Promisable<boolean>
|
|
29
|
+
abstract revokePermissions(permissions: Permission[]): Promisable<boolean>
|
|
30
|
+
}
|
|
@@ -1,37 +1,11 @@
|
|
|
1
|
-
import { assertEx } from '@xylabs/assert'
|
|
2
|
-
import type { Hash } from '@xylabs/hex'
|
|
3
1
|
import type { Promisable } from '@xylabs/promise'
|
|
4
|
-
import type { Payload } from '@xyo-network/payload-model'
|
|
5
2
|
import type {
|
|
6
|
-
|
|
7
|
-
HydratedTransaction,
|
|
8
|
-
InvokerPermission, Permission,
|
|
9
|
-
XyoConnectionProvider,
|
|
10
|
-
XyoGatewayProvider,
|
|
11
|
-
XyoRpcConnectionConfig,
|
|
3
|
+
InvokerPermission, Permission, XyoConnectionProvider, XyoRpcConnectionConfig,
|
|
12
4
|
} from '@xyo-network/xl1-protocol'
|
|
13
5
|
|
|
14
6
|
import type { RpcTransport } from '../../transport/index.ts'
|
|
15
7
|
import type { XyoGatewayRpcSchemas } from '../../types/index.ts'
|
|
16
|
-
|
|
17
|
-
export abstract class AbstractXyoGateway implements XyoGatewayProvider {
|
|
18
|
-
async submitTransaction(elevatedPayloads: AllowedBlockPayload[], additionalPayloads: Payload[]): Promise<HydratedTransaction> {
|
|
19
|
-
return assertEx(
|
|
20
|
-
assertEx(
|
|
21
|
-
await this.activeConnection(),
|
|
22
|
-
() => 'No active connection available for transaction submission',
|
|
23
|
-
).submitTransaction,
|
|
24
|
-
() => 'Active connection does not support transaction submission',
|
|
25
|
-
)(elevatedPayloads, additionalPayloads)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
abstract activeConnection(): Promisable<XyoConnectionProvider | undefined>
|
|
29
|
-
abstract addConnection(config: XyoRpcConnectionConfig): Promisable<XyoConnectionProvider>
|
|
30
|
-
abstract connections(): Promisable<Record<string, XyoConnectionProvider>>
|
|
31
|
-
abstract getPermissions(): Promisable<InvokerPermission[]>
|
|
32
|
-
abstract requestPermissions(permissions: Permission[]): Promisable<boolean>
|
|
33
|
-
abstract revokePermissions(permissions: Permission[]): Promisable<boolean>
|
|
34
|
-
}
|
|
8
|
+
import { AbstractXyoGateway } from './Abstract.ts'
|
|
35
9
|
|
|
36
10
|
export class JsonRpcXyoGateway extends AbstractXyoGateway {
|
|
37
11
|
private readonly _transport: RpcTransport<typeof XyoGatewayRpcSchemas>
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/promise'
|
|
2
|
+
import { isDefined } from '@xylabs/typeof'
|
|
3
|
+
import type {
|
|
4
|
+
InvokerPermission, Permission, XyoConnectionProvider, XyoRpcConnectionConfig, XyoSigner,
|
|
5
|
+
} from '@xyo-network/xl1-protocol'
|
|
6
|
+
|
|
7
|
+
import type { XyoConnection } from '../provider/index.ts'
|
|
8
|
+
import { RpcXyoConnection } from '../provider/index.ts'
|
|
9
|
+
import { AbstractXyoGateway } from './Abstract.ts'
|
|
10
|
+
import type { PermissionsStore } from './PermissionsStore.ts'
|
|
11
|
+
|
|
12
|
+
export class MemoryXyoGateway extends AbstractXyoGateway {
|
|
13
|
+
private _activeConnectionId?: string
|
|
14
|
+
private readonly _connections: Map<string, XyoConnectionProvider> = new Map()
|
|
15
|
+
private readonly _permissionsStore: PermissionsStore
|
|
16
|
+
private readonly _signer: XyoSigner
|
|
17
|
+
|
|
18
|
+
constructor(signer: XyoSigner, permissionsStore: PermissionsStore) {
|
|
19
|
+
super()
|
|
20
|
+
this._signer = signer
|
|
21
|
+
this._permissionsStore = permissionsStore
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
get signer(): XyoSigner {
|
|
25
|
+
return this._signer
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
activeConnection(): XyoConnectionProvider | undefined {
|
|
29
|
+
return isDefined(this._activeConnectionId)
|
|
30
|
+
? this._connections.get(this._activeConnectionId)
|
|
31
|
+
: undefined
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// TODO: Deprecate connection config in favor of connection object
|
|
35
|
+
addConnection(config: XyoRpcConnectionConfig): Promisable<XyoConnectionProvider>
|
|
36
|
+
addConnection(name: string, connection: XyoConnection): Promisable<XyoConnectionProvider>
|
|
37
|
+
addConnection(configOrName: XyoRpcConnectionConfig | string, connection?: XyoConnection): Promisable<XyoConnectionProvider> {
|
|
38
|
+
if (typeof configOrName === 'string' && connection !== undefined) {
|
|
39
|
+
// Called with (name: string, connection: XyoConnection)
|
|
40
|
+
const name = configOrName
|
|
41
|
+
this._connections.set(name, connection)
|
|
42
|
+
this.setActiveConnectionIdIfUndefined(name)
|
|
43
|
+
return connection
|
|
44
|
+
} else if (typeof configOrName === 'object') {
|
|
45
|
+
// Called with (config: XyoRpcConnectionConfig)
|
|
46
|
+
const config = configOrName
|
|
47
|
+
const {
|
|
48
|
+
name, dataLakeEndpoint, networkEndpoint,
|
|
49
|
+
} = config
|
|
50
|
+
const rpcConnection = new RpcXyoConnection({ endpoint: networkEndpoint })
|
|
51
|
+
this._connections.set(name, rpcConnection)
|
|
52
|
+
this.setActiveConnectionIdIfUndefined(name)
|
|
53
|
+
return rpcConnection
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
throw new Error('Invalid arguments passed to addConnection')
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
connections(): Promisable<Record<string, XyoConnectionProvider>> {
|
|
60
|
+
const record: Record<string, XyoConnectionProvider> = {}
|
|
61
|
+
for (const [id, conn] of this._connections.entries()) {
|
|
62
|
+
record[id] = conn
|
|
63
|
+
}
|
|
64
|
+
return record
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
getPermissions(): Promisable<InvokerPermission[]> {
|
|
68
|
+
return this._permissionsStore.getPermissions()
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
requestPermissions(permissions: Permission[]): Promisable<boolean> {
|
|
72
|
+
return this._permissionsStore.requestPermissions(permissions)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
revokePermissions(permissions: Permission[]): Promisable<boolean> {
|
|
76
|
+
return this._permissionsStore.revokePermissions(permissions)
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
private setActiveConnectionIdIfUndefined(id: string): void {
|
|
80
|
+
if (!isDefined(this._activeConnectionId)) {
|
|
81
|
+
this._activeConnectionId = id
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Promisable } from '@xylabs/promise'
|
|
2
|
+
import type { InvokerPermission, Permission } from '@xyo-network/xl1-protocol'
|
|
3
|
+
|
|
4
|
+
export interface PermissionsStore {
|
|
5
|
+
getPermissions(): Promisable<InvokerPermission[]>
|
|
6
|
+
requestPermissions(permissions: Permission[]): Promisable<boolean>
|
|
7
|
+
revokePermissions(permissions: Permission[]): Promisable<boolean>
|
|
8
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { Permission } from '@xyo-network/xl1-protocol'
|
|
2
|
+
|
|
3
|
+
import { type RpcTransport } from '../../transport/index.ts'
|
|
4
|
+
import type { XyoGatewayRpcSchemas } from '../../types/index.ts'
|
|
5
|
+
import type { PermissionsStore } from './PermissionsStore.ts'
|
|
6
|
+
|
|
7
|
+
export const getPermissionsStoreFromTransport = (transport: RpcTransport<typeof XyoGatewayRpcSchemas>): PermissionsStore => {
|
|
8
|
+
return {
|
|
9
|
+
getPermissions: () => transport.sendRequest('xyoGateway_getPermissions'),
|
|
10
|
+
requestPermissions: (permissions: Permission[]) => transport.sendRequest('xyoGateway_requestPermissions', permissions),
|
|
11
|
+
revokePermissions: (permissions: Permission[]) => transport.sendRequest('xyoGateway_revokePermissions', permissions),
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -1,30 +1,35 @@
|
|
|
1
1
|
import { assertEx } from '@xylabs/assert'
|
|
2
2
|
import type { Address } from '@xylabs/hex'
|
|
3
3
|
import type { Signed } from '@xyo-network/boundwitness-model'
|
|
4
|
+
import { HydratedTransactionWrapper } from '@xyo-network/chain-wrappers'
|
|
4
5
|
import { PayloadBuilder } from '@xyo-network/payload-builder'
|
|
5
|
-
import type
|
|
6
|
+
import { isAnyPayload, type Payload } from '@xyo-network/payload-model'
|
|
6
7
|
import type {
|
|
7
8
|
AllowedBlockPayload,
|
|
8
9
|
HydratedTransaction,
|
|
9
|
-
TransactionBoundWitness, TransactionFeesBigInt,
|
|
10
|
+
TransactionBoundWitness, TransactionFeesBigInt,
|
|
11
|
+
TransactionSubmitterOptions, XyoConnectionProvider, XyoDataLakeProvider, XyoDataLakeViewer, XyoNetwork, XyoRunner, XyoSigner, XyoViewer,
|
|
10
12
|
} from '@xyo-network/xl1-protocol'
|
|
11
|
-
import { defaultTransactionFees } from '@xyo-network/xl1-protocol'
|
|
13
|
+
import { defaultTransactionFees, isDataLakeProvider } from '@xyo-network/xl1-protocol'
|
|
12
14
|
|
|
13
15
|
export class XyoConnection implements XyoConnectionProvider {
|
|
14
16
|
private readonly _network?: XyoNetwork
|
|
15
17
|
private readonly _runner?: XyoRunner
|
|
16
18
|
private readonly _signer?: XyoSigner
|
|
19
|
+
private readonly _storage?: XyoDataLakeProvider | XyoDataLakeViewer
|
|
17
20
|
private readonly _viewer?: XyoViewer
|
|
18
21
|
|
|
19
22
|
constructor(params?: {
|
|
20
23
|
network?: XyoNetwork
|
|
21
24
|
runner?: XyoRunner
|
|
22
25
|
signer?: XyoSigner
|
|
26
|
+
storage?: XyoDataLakeProvider | XyoDataLakeViewer
|
|
23
27
|
viewer?: XyoViewer
|
|
24
28
|
}) {
|
|
25
29
|
this._network = params?.network
|
|
26
30
|
this._runner = params?.runner
|
|
27
31
|
this._signer = params?.signer
|
|
32
|
+
this._storage = params?.storage
|
|
28
33
|
this._viewer = params?.viewer
|
|
29
34
|
}
|
|
30
35
|
|
|
@@ -40,6 +45,10 @@ export class XyoConnection implements XyoConnectionProvider {
|
|
|
40
45
|
return this._signer
|
|
41
46
|
}
|
|
42
47
|
|
|
48
|
+
get storage(): XyoDataLakeProvider | XyoDataLakeViewer | undefined {
|
|
49
|
+
return this._storage
|
|
50
|
+
}
|
|
51
|
+
|
|
43
52
|
get viewer(): XyoViewer | undefined {
|
|
44
53
|
return this._viewer
|
|
45
54
|
}
|
|
@@ -64,17 +73,12 @@ export class XyoConnection implements XyoConnectionProvider {
|
|
|
64
73
|
additionalPayloads: Payload[],
|
|
65
74
|
{
|
|
66
75
|
chain, exp, fees, from, nbf,
|
|
67
|
-
}: {
|
|
68
|
-
chain?: Address
|
|
69
|
-
exp?: number
|
|
70
|
-
fees?: TransactionFeesBigInt
|
|
71
|
-
from?: Address
|
|
72
|
-
nbf?: number
|
|
73
|
-
} = {},
|
|
76
|
+
}: TransactionSubmitterOptions = {},
|
|
74
77
|
): Promise<HydratedTransaction> {
|
|
75
78
|
const viewer = assertEx(this.viewer, () => 'No viewer available')
|
|
76
79
|
const signer = assertEx(this.signer, () => 'No signer available')
|
|
77
80
|
const runner = assertEx(this.runner, () => 'No runner available')
|
|
81
|
+
const storage = this.storage
|
|
78
82
|
const chainResolved = chain ?? await viewer.chainId()
|
|
79
83
|
if (chainResolved === undefined) throw new Error('Failed to determine chain')
|
|
80
84
|
const nbfResolved = Math.max(await viewer.currentBlockNumber() ?? 0, nbf ?? 0)
|
|
@@ -94,6 +98,12 @@ export class XyoConnection implements XyoConnectionProvider {
|
|
|
94
98
|
const hydratedTransaction: HydratedTransaction = [await PayloadBuilder.addStorageMeta(signedTransaction),
|
|
95
99
|
await PayloadBuilder.addStorageMeta(elevatedPayloads)]
|
|
96
100
|
|
|
101
|
+
// if storage configured, add the external payloads to it
|
|
102
|
+
if (isDataLakeProvider(storage)) {
|
|
103
|
+
const wrapper = await HydratedTransactionWrapper.parse(hydratedTransaction)
|
|
104
|
+
await storage.add(Object.values(wrapper.externalPayloads).filter(isAnyPayload))
|
|
105
|
+
}
|
|
106
|
+
|
|
97
107
|
assertEx(await runner.broadcastTransaction(hydratedTransaction), () => 'Failed to broadcast transaction')
|
|
98
108
|
|
|
99
109
|
return hydratedTransaction
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { type Address } from '@xylabs/hex'
|
|
2
|
-
import type {
|
|
2
|
+
import type { Promisable } from '@xylabs/promise'
|
|
3
|
+
import type { Signed, UnsignedBoundWitness } from '@xyo-network/boundwitness-model'
|
|
3
4
|
import type { Payload } from '@xyo-network/payload-model'
|
|
4
5
|
import type {
|
|
5
6
|
AllowedBlockPayload,
|
|
@@ -10,7 +11,8 @@ import type {
|
|
|
10
11
|
|
|
11
12
|
import type { RpcTransport } from '../../transport/index.ts'
|
|
12
13
|
import type { XyoSignerRpcSchemas } from '../../types/index.ts'
|
|
13
|
-
|
|
14
|
+
|
|
15
|
+
export class RpcXyoSigner implements XyoSigner {
|
|
14
16
|
protected readonly transport: RpcTransport<typeof XyoSignerRpcSchemas>
|
|
15
17
|
|
|
16
18
|
constructor(transport: RpcTransport<typeof XyoSignerRpcSchemas>) {
|
|
@@ -40,4 +42,13 @@ export class JsonRpcXyoSigner implements XyoSigner {
|
|
|
40
42
|
from,
|
|
41
43
|
])
|
|
42
44
|
}
|
|
45
|
+
|
|
46
|
+
signTransaction(tx: [UnsignedBoundWitness<TransactionBoundWitness>, Payload[]]): Promisable<[Signed<TransactionBoundWitness>, Payload[]]> {
|
|
47
|
+
throw new Error('Method not implemented.')
|
|
48
|
+
}
|
|
43
49
|
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* @deprecated Use `RpcXyoSigner` instead.
|
|
53
|
+
*/
|
|
54
|
+
export class JsonRpcXyoSigner extends RpcXyoSigner {}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Address } from '@xylabs/hex'
|
|
2
|
+
import type { Promisable } from '@xylabs/promise'
|
|
2
3
|
import type { AccountInstance } from '@xyo-network/account-model'
|
|
3
|
-
import type { Signed } from '@xyo-network/boundwitness-model'
|
|
4
|
+
import type { Signed, UnsignedBoundWitness } from '@xyo-network/boundwitness-model'
|
|
4
5
|
import { type Payload } from '@xyo-network/payload-model'
|
|
5
6
|
import type {
|
|
6
7
|
AllowedBlockPayload, TransactionBoundWitness, TransactionFeesBigInt, XyoSigner,
|
|
@@ -40,4 +41,8 @@ export class MemoryXyoSigner implements XyoSigner {
|
|
|
40
41
|
)
|
|
41
42
|
return transaction[0]
|
|
42
43
|
}
|
|
44
|
+
|
|
45
|
+
signTransaction(_tx: [UnsignedBoundWitness<TransactionBoundWitness>, Payload[]]): Promisable<[Signed<TransactionBoundWitness>, Payload[]]> {
|
|
46
|
+
throw new Error('Method not implemented.')
|
|
47
|
+
}
|
|
43
48
|
}
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
import { rpcEngineFromProvider } from '../../../engine/index-node.ts'
|
|
11
11
|
import { MemoryRpcTransport } from '../../../transport/index.ts'
|
|
12
12
|
import { XyoConnection } from '../../provider/index.ts'
|
|
13
|
-
import {
|
|
13
|
+
import { RpcXyoSigner } from '../JsonRpcXyoSigner.ts'
|
|
14
14
|
import { MemoryXyoSigner } from '../MemoryXyoSigner.ts'
|
|
15
15
|
|
|
16
16
|
describe('RpcEngine - XyoSigner', () => {
|
|
@@ -22,7 +22,7 @@ describe('RpcEngine - XyoSigner', () => {
|
|
|
22
22
|
const provider = new XyoConnection({ signer })
|
|
23
23
|
const engine = rpcEngineFromProvider(provider)
|
|
24
24
|
const transport = new MemoryRpcTransport(engine)
|
|
25
|
-
sut = new
|
|
25
|
+
sut = new RpcXyoSigner(transport)
|
|
26
26
|
})
|
|
27
27
|
describe('address', () => {
|
|
28
28
|
it('should return signer addresses', async () => {
|