@towns-labs/relayer-client 2.1.0 → 3.0.0
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/actions/index.d.ts +1 -1
- package/dist/actions/index.d.ts.map +1 -1
- package/dist/actions/index.js.map +1 -1
- package/dist/actions/prepareCalls.d.ts +8 -15
- package/dist/actions/prepareCalls.d.ts.map +1 -1
- package/dist/actions/prepareCalls.js +31 -2
- package/dist/actions/prepareCalls.js.map +1 -1
- package/dist/chains.d.ts.map +1 -1
- package/dist/chains.js +3 -2
- package/dist/chains.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/account.d.ts +10 -0
- package/dist/utils/account.d.ts.map +1 -0
- package/dist/utils/account.js +15 -0
- package/dist/utils/account.js.map +1 -0
- package/dist/utils/index.d.ts +2 -1
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/serialize.d.ts +15 -0
- package/dist/utils/serialize.d.ts.map +1 -1
- package/dist/utils/serialize.js +40 -0
- package/dist/utils/serialize.js.map +1 -1
- package/package.json +3 -3
package/dist/actions/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*/
|
|
7
7
|
export { checkHealth } from './checkHealth';
|
|
8
8
|
export { getCapabilities } from './getCapabilities';
|
|
9
|
-
export { prepareCalls, type PrepareCallsParams, type PrepareCallsResponse, type PrepareCallsContext,
|
|
9
|
+
export { prepareCalls, type PrepareCallsParams, type PrepareCallsResponse, type PrepareCallsContext, } from './prepareCalls';
|
|
10
10
|
export { sendPreparedCalls, type SendPreparedCallsParams, type SendPreparedCallsResponse, } from './sendPreparedCalls';
|
|
11
11
|
export { getCallsStatus, type GetCallsStatusParams } from './getCallsStatus';
|
|
12
12
|
export { upgradeAccount, type UpgradeAccountParams, type AuthorizeKey, type CallPermission, type SpendPermission, type Permission, type SpendPeriod, type KeyType, } from './upgradeAccount';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EACH,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAGnD,OAAO,EACH,YAAY,EACZ,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,GAC3B,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACH,iBAAiB,EACjB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,GACjC,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,cAAc,EAAE,KAAK,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AAG5E,OAAO,EACH,cAAc,EACd,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,OAAO,GACf,MAAM,kBAAkB,CAAA;AAGzB,OAAO,EACH,OAAO,EACP,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,GAC1B,MAAM,WAAW,CAAA;AAGlB,OAAO,EACH,eAAe,EACf,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,GACtB,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,aAAa,EAAE,KAAK,mBAAmB,EAAE,MAAM,iBAAiB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,kBAAkB;AAClB,OAAO,EACH,YAAY,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/actions/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD,kBAAkB;AAClB,OAAO,EACH,YAAY,GAIf,MAAM,gBAAgB,CAAA;AACvB,OAAO,EACH,iBAAiB,GAGpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAAE,cAAc,EAA6B,MAAM,kBAAkB,CAAA;AAE5E,UAAU;AACV,OAAO,EACH,cAAc,GAQjB,MAAM,kBAAkB,CAAA;AAEzB,OAAO;AACP,OAAO,EACH,OAAO,GAOV,MAAM,WAAW,CAAA;AAElB,yBAAyB;AACzB,OAAO,EACH,eAAe,GAIlB,MAAM,mBAAmB,CAAA;AAE1B,sCAAsC;AACtC,OAAO,EAAE,aAAa,EAA4B,MAAM,iBAAiB,CAAA"}
|
|
@@ -13,6 +13,12 @@ export interface PrepareCallsParams {
|
|
|
13
13
|
calls: Call[];
|
|
14
14
|
/** Optional nonce override */
|
|
15
15
|
nonce?: bigint;
|
|
16
|
+
/**
|
|
17
|
+
* Nonce resolution behavior when `nonce` is not provided.
|
|
18
|
+
* - `latest` (default): read `getNonce(seqKey)` from chain and pass it explicitly.
|
|
19
|
+
* - `draft`: let relayer allocate/replay nonce drafts.
|
|
20
|
+
*/
|
|
21
|
+
noncePolicy?: 'latest' | 'draft';
|
|
16
22
|
/** Optional sequence key for 2D nonce */
|
|
17
23
|
seqKey?: bigint;
|
|
18
24
|
/** Optional idempotency key for prepare replay on a lane */
|
|
@@ -23,11 +29,8 @@ export interface PrepareCallsParams {
|
|
|
23
29
|
settler?: Address;
|
|
24
30
|
/** Settler context for cross-chain settlement (optional) */
|
|
25
31
|
settlerContext?: Hex;
|
|
26
|
-
/**
|
|
27
|
-
|
|
28
|
-
* When provided, the response will include key info for signature wrapping.
|
|
29
|
-
*/
|
|
30
|
-
key?: Hex;
|
|
32
|
+
/** Session key's public key for gas simulation accuracy */
|
|
33
|
+
sessionKey?: Hex;
|
|
31
34
|
/** Payer address for gas reimbursement */
|
|
32
35
|
payer?: Address;
|
|
33
36
|
/** Payment token for reimbursement */
|
|
@@ -39,14 +42,6 @@ export interface PrepareCallsParams {
|
|
|
39
42
|
* Prepared calls context - opaque to the client, passed to sendPreparedCalls
|
|
40
43
|
*/
|
|
41
44
|
export type PrepareCallsContext = RpcPrepareCallsContext;
|
|
42
|
-
/**
|
|
43
|
-
* Key information returned when a key hash is provided
|
|
44
|
-
*/
|
|
45
|
-
export interface PreparedKeyInfo {
|
|
46
|
-
type: string;
|
|
47
|
-
publicKey: Hex;
|
|
48
|
-
prehash: boolean;
|
|
49
|
-
}
|
|
50
45
|
/**
|
|
51
46
|
* Response from prepareCalls
|
|
52
47
|
*/
|
|
@@ -79,8 +74,6 @@ export interface PrepareCallsResponse {
|
|
|
79
74
|
expiry: bigint;
|
|
80
75
|
};
|
|
81
76
|
};
|
|
82
|
-
/** Key information (when key hash was provided) */
|
|
83
|
-
key?: PreparedKeyInfo;
|
|
84
77
|
}
|
|
85
78
|
/**
|
|
86
79
|
* Prepare calls for signing
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareCalls.d.ts","sourceRoot":"","sources":["../../src/actions/prepareCalls.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAErF,OAAO,KAAK,EAAE,sBAAsB,EAAyB,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"prepareCalls.d.ts","sourceRoot":"","sources":["../../src/actions/prepareCalls.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAErF,OAAO,KAAK,EAAE,sBAAsB,EAAyB,MAAM,eAAe,CAAA;AAYlF,MAAM,WAAW,kBAAkB;IAC/B,2CAA2C;IAC3C,IAAI,EAAE,OAAO,CAAA;IACb,4DAA4D;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,uBAAuB;IACvB,KAAK,EAAE,IAAI,EAAE,CAAA;IACb,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;;OAIG;IACH,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IAChC,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,4DAA4D;IAC5D,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,+BAA+B;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,iCAAiC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,4DAA4D;IAC5D,cAAc,CAAC,EAAE,GAAG,CAAA;IACpB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,GAAG,CAAA;IAChB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,sCAAsC;IACtC,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;CAC5B;AAED;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG,sBAAsB,CAAA;AAExD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC,2CAA2C;IAC3C,OAAO,EAAE,mBAAmB,CAAA;IAC5B,iCAAiC;IACjC,MAAM,EAAE,GAAG,CAAA;IACX,+EAA+E;IAC/E,SAAS,EAAE;QACP,MAAM,EAAE,YAAY,CAAA;QACpB,KAAK,EAAE,OAAO,YAAY,CAAA;QAC1B,WAAW,EAAE,QAAQ,CAAA;QACrB,OAAO,EAAE;YACL,UAAU,EAAE,OAAO,CAAA;YACnB,GAAG,EAAE,OAAO,CAAA;YACZ,KAAK,EAAE,SAAS;gBAAE,EAAE,EAAE,OAAO,CAAC;gBAAC,KAAK,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,GAAG,CAAA;aAAE,EAAE,CAAA;YAC3D,KAAK,EAAE,MAAM,CAAA;YACb,KAAK,EAAE,OAAO,CAAA;YACd,YAAY,EAAE,OAAO,CAAA;YACrB,gBAAgB,EAAE,MAAM,CAAA;YACxB,WAAW,EAAE,MAAM,CAAA;YACnB,eAAe,EAAE,SAAS,GAAG,EAAE,CAAA;YAC/B,oBAAoB,EAAE,SAAS,GAAG,EAAE,CAAA;YACpC,OAAO,EAAE,OAAO,CAAA;YAChB,MAAM,EAAE,MAAM,CAAA;SACjB,CAAA;KACJ,CAAA;CACJ;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAsB,YAAY,CAC9B,MAAM,EAAE,mBAAmB,EAC3B,MAAM,EAAE,kBAAkB,GAC3B,OAAO,CAAC,oBAAoB,CAAC,CAwF/B"}
|
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
* Prepare calls for signing via the relayer
|
|
3
3
|
*/
|
|
4
4
|
import { createJsonRpcTransport } from '../transport';
|
|
5
|
+
const getNonceAbi = [
|
|
6
|
+
{
|
|
7
|
+
type: 'function',
|
|
8
|
+
name: 'getNonce',
|
|
9
|
+
stateMutability: 'view',
|
|
10
|
+
inputs: [{ name: 'seqKey', type: 'uint192' }],
|
|
11
|
+
outputs: [{ name: '', type: 'uint256' }],
|
|
12
|
+
},
|
|
13
|
+
];
|
|
5
14
|
/**
|
|
6
15
|
* Prepare calls for signing
|
|
7
16
|
*
|
|
@@ -32,6 +41,26 @@ export async function prepareCalls(client, params) {
|
|
|
32
41
|
httpAuth: client.relayerConfig.httpAuth,
|
|
33
42
|
});
|
|
34
43
|
const chainId = params.chainId ?? client.relayerConfig.chainId ?? client.chain?.id ?? 1;
|
|
44
|
+
let resolvedNonce = params.nonce;
|
|
45
|
+
if (resolvedNonce === undefined && params.noncePolicy !== 'draft') {
|
|
46
|
+
const nonceSeqKey = params.seqKey ?? 0n;
|
|
47
|
+
const connectedChainId = await client.getChainId().catch(() => undefined);
|
|
48
|
+
const isTargetChainConnected = connectedChainId === undefined || connectedChainId === chainId;
|
|
49
|
+
if (isTargetChainConnected) {
|
|
50
|
+
try {
|
|
51
|
+
resolvedNonce = (await client.readContract({
|
|
52
|
+
address: params.from,
|
|
53
|
+
abi: getNonceAbi,
|
|
54
|
+
functionName: 'getNonce',
|
|
55
|
+
args: [nonceSeqKey],
|
|
56
|
+
}));
|
|
57
|
+
}
|
|
58
|
+
catch {
|
|
59
|
+
// Fallback to relayer-side nonce handling when on-chain read is unavailable.
|
|
60
|
+
resolvedNonce = undefined;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
35
64
|
// Convert to JSON-RPC format
|
|
36
65
|
const rpcParams = {
|
|
37
66
|
from: params.from,
|
|
@@ -41,9 +70,10 @@ export async function prepareCalls(client, params) {
|
|
|
41
70
|
data: call.data,
|
|
42
71
|
value: `0x${call.value.toString(16)}`,
|
|
43
72
|
})),
|
|
73
|
+
session_key: params.sessionKey,
|
|
44
74
|
capabilities: {
|
|
45
75
|
meta: {
|
|
46
|
-
nonce:
|
|
76
|
+
nonce: resolvedNonce?.toString(),
|
|
47
77
|
seq_key: params.seqKey?.toString(),
|
|
48
78
|
prepare_key: params.prepareKey,
|
|
49
79
|
expiry: params.expiry?.toString(),
|
|
@@ -86,7 +116,6 @@ export async function prepareCalls(client, params) {
|
|
|
86
116
|
primaryType: result.typedData.primaryType,
|
|
87
117
|
message,
|
|
88
118
|
},
|
|
89
|
-
key: result.key,
|
|
90
119
|
};
|
|
91
120
|
}
|
|
92
121
|
//# sourceMappingURL=prepareCalls.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prepareCalls.js","sourceRoot":"","sources":["../../src/actions/prepareCalls.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"prepareCalls.js","sourceRoot":"","sources":["../../src/actions/prepareCalls.ts"],"names":[],"mappings":"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"}
|
package/dist/chains.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,CAAA;AAiCjC;;;;;;GAMG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,KAAK,CA0B/D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C"}
|
package/dist/chains.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Provides proper chain configuration for any supported EVM chain,
|
|
5
5
|
* with fallback for unknown chains.
|
|
6
6
|
*/
|
|
7
|
-
import { anvil, baseSepolia, base, mainnet, sepolia, optimism, arbitrum } from 'viem/chains';
|
|
7
|
+
import { anvil, baseSepolia, base, mainnet, sepolia, optimism, arbitrum, polygon, } from 'viem/chains';
|
|
8
8
|
/**
|
|
9
9
|
* Supported chains with full configuration
|
|
10
10
|
*/
|
|
@@ -17,9 +17,10 @@ const SUPPORTED_CHAINS = {
|
|
|
17
17
|
// Base
|
|
18
18
|
8453: base,
|
|
19
19
|
84532: baseSepolia,
|
|
20
|
-
// Other L2s
|
|
20
|
+
// Other L2s
|
|
21
21
|
10: optimism,
|
|
22
22
|
42161: arbitrum,
|
|
23
|
+
137: polygon,
|
|
23
24
|
};
|
|
24
25
|
/**
|
|
25
26
|
* Get chain configuration for a specific chainId
|
package/dist/chains.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"chains.js","sourceRoot":"","sources":["../src/chains.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EACH,KAAK,EACL,WAAW,EACX,IAAI,EACJ,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,OAAO,GACV,MAAM,aAAa,CAAA;AAEpB;;GAEG;AACH,MAAM,gBAAgB,GAA0B;IAC5C,oBAAoB;IACpB,KAAK,EAAE,KAAK;IAEZ,WAAW;IACX,CAAC,EAAE,OAAO;IACV,QAAQ,EAAE,OAAO;IAEjB,OAAO;IACP,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,WAAW;IAElB,YAAY;IACZ,EAAE,EAAE,QAAQ;IACZ,KAAK,EAAE,QAAQ;IACf,GAAG,EAAE,OAAO;CACf,CAAA;AAED;;;;;;GAMG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,MAAc;IACpD,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAA;IAE3C,IAAI,SAAS,EAAE,CAAC;QACZ,8CAA8C;QAC9C,OAAO;YACH,GAAG,SAAS;YACZ,OAAO,EAAE;gBACL,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;aAC9B;SACJ,CAAA;IACL,CAAC;IAED,2DAA2D;IAC3D,OAAO;QACH,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS,OAAO,EAAE;QACxB,cAAc,EAAE;YACZ,IAAI,EAAE,OAAO;YACb,MAAM,EAAE,KAAK;YACb,QAAQ,EAAE,EAAE;SACf;QACD,OAAO,EAAE;YACL,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE;SAC9B;KACJ,CAAA;AACL,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,OAAe;IACxC,OAAO,OAAO,IAAI,gBAAgB,CAAA;AACtC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC5B,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;AACpD,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -39,14 +39,15 @@
|
|
|
39
39
|
*/
|
|
40
40
|
export { createConfig } from './client';
|
|
41
41
|
export { relayerActions, type RelayerActions } from './decorators';
|
|
42
|
-
export { checkHealth, getCapabilities, prepareCalls, sendPreparedCalls, getCallsStatus, upgradeAccount, getKeys, verifySignature, waitForBundle, type PrepareCallsParams, type PrepareCallsResponse, type PrepareCallsContext, type
|
|
42
|
+
export { checkHealth, getCapabilities, prepareCalls, sendPreparedCalls, getCallsStatus, upgradeAccount, getKeys, verifySignature, waitForBundle, type PrepareCallsParams, type PrepareCallsResponse, type PrepareCallsContext, type SendPreparedCallsParams, type SendPreparedCallsResponse, type GetCallsStatusParams, type WaitForBundleParams, type UpgradeAccountParams, type AuthorizeKey, type CallPermission, type SpendPermission, type Permission, type SpendPeriod, type KeyType, type GetKeysParams, type GetKeysResponse, type AuthorizedKeyInfo, type PermissionInfo, type SpendPermissionInfo, type CallPermissionInfo, type VerifySignatureParams, type VerifySignatureResponse, type SignatureProof, } from './actions';
|
|
43
43
|
export { createJsonRpcTransport, JsonRpcClientError, type JsonRpcTransport, type JsonRpcRequest, type JsonRpcResponse, type JsonRpcError, } from './transport';
|
|
44
44
|
export { wrapSignature } from './utils';
|
|
45
45
|
export { computeErc1271Digest, ERC1271_SIGN_TYPEHASH, DOMAIN_TYPEHASH_ONLY_VERIFYING_CONTRACT, } from './utils';
|
|
46
46
|
export { computeKeyHash, encodeSecp256k1Key, type KeyType as KeyTypeUtil } from './utils';
|
|
47
47
|
export { decodeIntentError, isKnownIntentError, INTENT_ERRORS, type IntentErrorName } from './utils';
|
|
48
48
|
export { ANY_TARGET, EMPTY_CALLDATA_SELECTOR, ERC20_SELECTORS } from './utils';
|
|
49
|
-
export { bigIntReplacer, serializeCall, serializeIntent, type SerializedCall, type SerializedIntent, } from './utils';
|
|
49
|
+
export { bigIntReplacer, serializeCall, serializeIntent, serializeContext, deserializeContext, getChainIdFromContext, type SerializedCall, type SerializedIntent, } from './utils';
|
|
50
|
+
export { isDelegatedAccount } from './utils';
|
|
50
51
|
export type { RelayerClientConfig, RelayerPublicClient, Keypair, AccountInfo, Call, Intent, SignedIntent, Transfer, SignedAuthorization, EIP712Domain, CreateAccountResponse, HealthResponse, CapabilitiesResponse, BundleStatusResponse, } from './types';
|
|
51
52
|
export { INTENT_TYPES, FUNDING_TYPES } from './types';
|
|
52
53
|
export { getChain, isKnownChain, getKnownChainIds } from './chains';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGvC,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAGlE,OAAO,EAEH,WAAW,EACX,eAAe,EAEf,YAAY,EACZ,iBAAiB,EACjB,cAAc,EAEd,cAAc,EAEd,OAAO,EAEP,eAAe,EAEf,aAAa,EAEb,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAGvC,OAAO,EAAE,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,cAAc,CAAA;AAGlE,OAAO,EAEH,WAAW,EACX,eAAe,EAEf,YAAY,EACZ,iBAAiB,EACjB,cAAc,EAEd,cAAc,EAEd,OAAO,EAEP,eAAe,EAEf,aAAa,EAEb,KAAK,kBAAkB,EACvB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EAExB,KAAK,oBAAoB,EACzB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,KAAK,OAAO,EAEZ,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,mBAAmB,EACxB,KAAK,kBAAkB,EAEvB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,cAAc,GACtB,MAAM,WAAW,CAAA;AAGlB,OAAO,EACH,sBAAsB,EACtB,kBAAkB,EAClB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,eAAe,EACpB,KAAK,YAAY,GACpB,MAAM,aAAa,CAAA;AAGpB,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGvC,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,uCAAuC,GAC1C,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,KAAK,OAAO,IAAI,WAAW,EAAE,MAAM,SAAS,CAAA;AAGzF,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAGpG,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAG9E,OAAO,EACH,cAAc,EACd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACxB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAG5C,YAAY,EACR,mBAAmB,EACnB,mBAAmB,EACnB,OAAO,EACP,WAAW,EACX,IAAI,EACJ,MAAM,EACN,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,YAAY,EAEZ,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,oBAAoB,GACvB,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAGrD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -68,7 +68,9 @@ export { decodeIntentError, isKnownIntentError, INTENT_ERRORS } from './utils';
|
|
|
68
68
|
// Utils - Constants
|
|
69
69
|
export { ANY_TARGET, EMPTY_CALLDATA_SELECTOR, ERC20_SELECTORS } from './utils';
|
|
70
70
|
// Utils - Serialization
|
|
71
|
-
export { bigIntReplacer, serializeCall, serializeIntent, } from './utils';
|
|
71
|
+
export { bigIntReplacer, serializeCall, serializeIntent, serializeContext, deserializeContext, getChainIdFromContext, } from './utils';
|
|
72
|
+
// Utils - Account
|
|
73
|
+
export { isDelegatedAccount } from './utils';
|
|
72
74
|
// EIP-712 type definitions (for advanced use cases)
|
|
73
75
|
export { INTENT_TYPES, FUNDING_TYPES } from './types';
|
|
74
76
|
// Chain helpers
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,aAAa;AACb,OAAO,EAAE,cAAc,EAAuB,MAAM,cAAc,CAAA;AAElE,iCAAiC;AACjC,OAAO;AACH,SAAS;AACT,WAAW,EACX,eAAe;AACf,kBAAkB;AAClB,YAAY,EACZ,iBAAiB,EACjB,cAAc;AACd,UAAU;AACV,cAAc;AACd,OAAO;AACP,OAAO;AACP,yBAAyB;AACzB,eAAe;AACf,sCAAsC;AACtC,aAAa,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH,gBAAgB;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEvC,aAAa;AACb,OAAO,EAAE,cAAc,EAAuB,MAAM,cAAc,CAAA;AAElE,iCAAiC;AACjC,OAAO;AACH,SAAS;AACT,WAAW,EACX,eAAe;AACf,kBAAkB;AAClB,YAAY,EACZ,iBAAiB,EACjB,cAAc;AACd,UAAU;AACV,cAAc;AACd,OAAO;AACP,OAAO;AACP,yBAAyB;AACzB,eAAe;AACf,sCAAsC;AACtC,aAAa,GA4BhB,MAAM,WAAW,CAAA;AAElB,qBAAqB;AACrB,OAAO,EACH,sBAAsB,EACtB,kBAAkB,GAKrB,MAAM,aAAa,CAAA;AAEpB,6BAA6B;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAEvC,oCAAoC;AACpC,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,uCAAuC,GAC1C,MAAM,SAAS,CAAA;AAEhB,0BAA0B;AAC1B,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAA+B,MAAM,SAAS,CAAA;AAEzF,yBAAyB;AACzB,OAAO,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,aAAa,EAAwB,MAAM,SAAS,CAAA;AAEpG,oBAAoB;AACpB,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9E,wBAAwB;AACxB,OAAO,EACH,cAAc,EACd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,GAGxB,MAAM,SAAS,CAAA;AAEhB,kBAAkB;AAClB,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAqB5C,oDAAoD;AACpD,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAErD,gBAAgB;AAChB,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Account utilities for EIP-7702 delegated accounts
|
|
3
|
+
*/
|
|
4
|
+
import type { Address, PublicClient } from 'viem';
|
|
5
|
+
/**
|
|
6
|
+
* Check if an address has an EIP-7702 delegation designator.
|
|
7
|
+
* Returns true only for accounts with the 0xef0100 prefix (not regular contracts).
|
|
8
|
+
*/
|
|
9
|
+
export declare function isDelegatedAccount(client: PublicClient, address: Address): Promise<boolean>;
|
|
10
|
+
//# sourceMappingURL=account.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/utils/account.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAIjD;;;GAGG;AACH,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAIjG"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Account utilities for EIP-7702 delegated accounts
|
|
3
|
+
*/
|
|
4
|
+
const EIP7702_PREFIX = '0xef0100';
|
|
5
|
+
/**
|
|
6
|
+
* Check if an address has an EIP-7702 delegation designator.
|
|
7
|
+
* Returns true only for accounts with the 0xef0100 prefix (not regular contracts).
|
|
8
|
+
*/
|
|
9
|
+
export async function isDelegatedAccount(client, address) {
|
|
10
|
+
const code = await client.getCode({ address });
|
|
11
|
+
if (!code || code === '0x')
|
|
12
|
+
return false;
|
|
13
|
+
return code.startsWith(EIP7702_PREFIX);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=account.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/utils/account.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,cAAc,GAAG,UAAU,CAAA;AAEjC;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAoB,EAAE,OAAgB;IAC3E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,CAAA;IAC9C,IAAI,CAAC,IAAI,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,KAAK,CAAA;IACxC,OAAO,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,CAAA;AAC1C,CAAC"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { bigIntReplacer, serializeCall, serializeIntent, type SerializedCall, type SerializedIntent, } from './serialize';
|
|
1
|
+
export { bigIntReplacer, serializeCall, serializeIntent, serializeContext, deserializeContext, getChainIdFromContext, type SerializedCall, type SerializedIntent, } from './serialize';
|
|
2
|
+
export { isDelegatedAccount } from './account';
|
|
2
3
|
export { computeKeyHash, encodeSecp256k1Key, type KeyType } from './keyHash';
|
|
3
4
|
export { decodeIntentError, isKnownIntentError, INTENT_ERRORS, type IntentErrorName, } from './errors';
|
|
4
5
|
export { ANY_TARGET, EMPTY_CALLDATA_SELECTOR, ERC20_SELECTORS } from './constants';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,aAAa,EACb,eAAe,EACf,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAA;AAE5E,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,KAAK,eAAe,GACvB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElF,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEvF,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,uCAAuC,GAC1C,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,gBAAgB,GACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,KAAK,OAAO,EAAE,MAAM,WAAW,CAAA;AAE5E,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,EACb,KAAK,eAAe,GACvB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElF,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEvF,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,uCAAuC,GAC1C,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
|
package/dist/utils/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export { bigIntReplacer, serializeCall, serializeIntent, } from './serialize';
|
|
1
|
+
export { bigIntReplacer, serializeCall, serializeIntent, serializeContext, deserializeContext, getChainIdFromContext, } from './serialize';
|
|
2
|
+
export { isDelegatedAccount } from './account';
|
|
2
3
|
export { computeKeyHash, encodeSecp256k1Key } from './keyHash';
|
|
3
4
|
export { decodeIntentError, isKnownIntentError, INTENT_ERRORS, } from './errors';
|
|
4
5
|
export { ANY_TARGET, EMPTY_CALLDATA_SELECTOR, ERC20_SELECTORS } from './constants';
|
package/dist/utils/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,aAAa,EACb,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,cAAc,EACd,aAAa,EACb,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,GAGxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAE9C,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAgB,MAAM,WAAW,CAAA;AAE5E,OAAO,EACH,iBAAiB,EACjB,kBAAkB,EAClB,aAAa,GAEhB,MAAM,UAAU,CAAA;AAEjB,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAElF,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEvF,OAAO,EACH,oBAAoB,EACpB,qBAAqB,EACrB,uCAAuC,GAC1C,MAAM,WAAW,CAAA;AAElB,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import type { Address, Hex } from 'viem';
|
|
5
5
|
import type { Intent, Call } from '../types';
|
|
6
|
+
import type { PrepareCallsContext } from '../actions/prepareCalls';
|
|
6
7
|
/**
|
|
7
8
|
* JSON replacer that converts BigInt to string for serialization
|
|
8
9
|
*/
|
|
@@ -44,6 +45,20 @@ export interface SerializedIntent {
|
|
|
44
45
|
* Serialize a call for API transmission
|
|
45
46
|
*/
|
|
46
47
|
export declare function serializeCall(call: Call): SerializedCall;
|
|
48
|
+
/**
|
|
49
|
+
* Serialize a PrepareCallsContext to a JSON string for transport over string-only channels.
|
|
50
|
+
*/
|
|
51
|
+
export declare function serializeContext(context: PrepareCallsContext): string;
|
|
52
|
+
/**
|
|
53
|
+
* Deserialize a JSON string back into a PrepareCallsContext.
|
|
54
|
+
* Validates structural shape at the trust boundary.
|
|
55
|
+
*/
|
|
56
|
+
export declare function deserializeContext(serialized: string): PrepareCallsContext;
|
|
57
|
+
/**
|
|
58
|
+
* Extract the chain ID (as a number) from a PrepareCallsContext.
|
|
59
|
+
* Reads context.quote.quotes[0].chainId (hex string from the relayer).
|
|
60
|
+
*/
|
|
61
|
+
export declare function getChainIdFromContext(context: PrepareCallsContext): number;
|
|
47
62
|
/**
|
|
48
63
|
* Serialize an intent for API transmission
|
|
49
64
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/utils/serialize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"serialize.d.ts","sourceRoot":"","sources":["../../src/utils/serialize.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;AAElE;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAEpE;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC3B,MAAM,EAAE,OAAO,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,GAAG,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,OAAO,CAAA;IACZ,KAAK,EAAE,cAAc,EAAE,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,EAAE,MAAM,CAAA;IACnB,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,GAAG,CAAA;IAEd,eAAe,CAAC,EAAE,GAAG,EAAE,CAAA;IAEvB,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB,oBAAoB,CAAC,EAAE,GAAG,EAAE,CAAA;IAC5B,eAAe,CAAC,EAAE,GAAG,CAAA;IAErB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,GAAG,CAAA;IACpB,YAAY,CAAC,EAAE,OAAO,CAAA;IAEtB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,gBAAgB,CAAC,EAAE,GAAG,CAAA;IAEtB,8BAA8B,CAAC,EAAE,OAAO,CAAA;CAC3C;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,CAMxD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAErE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,CAe1E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,mBAAmB,GAAG,MAAM,CAW1E;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CA4BhE"}
|
package/dist/utils/serialize.js
CHANGED
|
@@ -17,6 +17,46 @@ export function serializeCall(call) {
|
|
|
17
17
|
data: call.data,
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* Serialize a PrepareCallsContext to a JSON string for transport over string-only channels.
|
|
22
|
+
*/
|
|
23
|
+
export function serializeContext(context) {
|
|
24
|
+
return JSON.stringify(context, bigIntReplacer);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Deserialize a JSON string back into a PrepareCallsContext.
|
|
28
|
+
* Validates structural shape at the trust boundary.
|
|
29
|
+
*/
|
|
30
|
+
export function deserializeContext(serialized) {
|
|
31
|
+
const parsed = JSON.parse(serialized);
|
|
32
|
+
if (parsed == null || typeof parsed !== 'object' || !('quote' in parsed)) {
|
|
33
|
+
throw new Error('Invalid PrepareCallsContext: expected { quote: { quotes: [...] } }');
|
|
34
|
+
}
|
|
35
|
+
const obj = parsed;
|
|
36
|
+
if (obj.quote == null ||
|
|
37
|
+
typeof obj.quote !== 'object' ||
|
|
38
|
+
!('quotes' in obj.quote) ||
|
|
39
|
+
!Array.isArray(obj.quote.quotes)) {
|
|
40
|
+
throw new Error('Invalid PrepareCallsContext: expected { quote: { quotes: [...] } }');
|
|
41
|
+
}
|
|
42
|
+
return parsed;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Extract the chain ID (as a number) from a PrepareCallsContext.
|
|
46
|
+
* Reads context.quote.quotes[0].chainId (hex string from the relayer).
|
|
47
|
+
*/
|
|
48
|
+
export function getChainIdFromContext(context) {
|
|
49
|
+
const quote = context.quote?.quotes?.[0];
|
|
50
|
+
if (!quote?.chainId) {
|
|
51
|
+
throw new Error('Cannot extract chainId from context: no quotes found');
|
|
52
|
+
}
|
|
53
|
+
const raw = quote.chainId;
|
|
54
|
+
const parsed = raw.startsWith('0x') ? Number.parseInt(raw.slice(2), 16) : Number(raw);
|
|
55
|
+
if (!Number.isFinite(parsed)) {
|
|
56
|
+
throw new Error(`Cannot extract chainId from context: invalid chainId "${raw}"`);
|
|
57
|
+
}
|
|
58
|
+
return parsed;
|
|
59
|
+
}
|
|
20
60
|
/**
|
|
21
61
|
* Serialize an intent for API transmission
|
|
22
62
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/utils/serialize.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"serialize.js","sourceRoot":"","sources":["../../src/utils/serialize.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@towns-labs/relayer-client",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "3.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -22,8 +22,8 @@
|
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@slicekit/erc8128": "^0.1.0",
|
|
25
|
-
"@towns-labs/contracts": "^
|
|
26
|
-
"@towns-labs/relayer": "^
|
|
25
|
+
"@towns-labs/contracts": "^3.0.0",
|
|
26
|
+
"@towns-labs/relayer": "^3.0.0"
|
|
27
27
|
},
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"viem": "2.45.1"
|