@rhinestone/sdk 2.0.0-beta.42 → 2.0.0-beta.44
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 +2 -2
- package/dist/src/accounts/json-rpc/index.d.ts.map +1 -1
- package/dist/src/accounts/json-rpc/index.js +6 -12
- package/dist/src/accounts/json-rpc/providers.d.ts +1 -3
- package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -1
- package/dist/src/accounts/json-rpc/providers.js +1 -13
- package/dist/src/accounts/nexus.d.ts +2 -2
- package/dist/src/accounts/nexus.d.ts.map +1 -1
- package/dist/src/accounts/nexus.js +61 -10
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +9 -10
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +16 -19
- package/dist/src/index.d.ts +11 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +27 -1
- package/dist/src/modules/validators/cross-chain-permits.d.ts +3 -2
- package/dist/src/modules/validators/cross-chain-permits.d.ts.map +1 -1
- package/dist/src/modules/validators/cross-chain-permits.js +5 -9
- package/dist/src/modules/validators/policies/claim/arbiters.d.ts +8 -11
- package/dist/src/modules/validators/policies/claim/arbiters.d.ts.map +1 -1
- package/dist/src/modules/validators/policies/claim/arbiters.js +50 -27
- package/dist/src/modules/validators/smart-sessions.d.ts +1 -0
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +22 -14
- package/dist/src/orchestrator/caip2.d.ts +1 -3
- package/dist/src/orchestrator/caip2.d.ts.map +1 -1
- package/dist/src/orchestrator/caip2.js +30 -21
- package/dist/src/orchestrator/chain-catalog.d.ts +34 -0
- package/dist/src/orchestrator/chain-catalog.d.ts.map +1 -0
- package/dist/src/orchestrator/chain-catalog.js +46 -0
- package/dist/src/orchestrator/client.d.ts +14 -0
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +46 -0
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- package/dist/src/orchestrator/index.d.ts +1 -2
- package/dist/src/orchestrator/index.d.ts.map +1 -1
- package/dist/src/orchestrator/index.js +1 -2
- package/dist/src/orchestrator/registry.d.ts +2 -12
- package/dist/src/orchestrator/registry.d.ts.map +1 -1
- package/dist/src/orchestrator/registry.js +26 -83
- package/dist/src/orchestrator/types.d.ts +9 -12
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/orchestrator/wire.d.ts +1 -0
- package/dist/src/orchestrator/wire.d.ts.map +1 -1
- package/dist/src/orchestrator/wire.gen.d.ts +26 -6
- package/dist/src/orchestrator/wire.gen.d.ts.map +1 -1
- package/dist/src/types.d.ts +15 -19
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -2
package/README.md
CHANGED
|
@@ -143,7 +143,7 @@ const prepared = await account.prepareTransaction({
|
|
|
143
143
|
targetChain: arbitrumSepolia,
|
|
144
144
|
calls: [
|
|
145
145
|
{
|
|
146
|
-
to:
|
|
146
|
+
to: usdc,
|
|
147
147
|
value: 0n,
|
|
148
148
|
data: encodeFunctionData({
|
|
149
149
|
abi: erc20Abi,
|
|
@@ -152,7 +152,7 @@ const prepared = await account.prepareTransaction({
|
|
|
152
152
|
}),
|
|
153
153
|
},
|
|
154
154
|
],
|
|
155
|
-
tokenRequests: [{ address:
|
|
155
|
+
tokenRequests: [{ address: usdc, amount }],
|
|
156
156
|
})
|
|
157
157
|
|
|
158
158
|
const signed = await account.signTransaction(prepared)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../accounts/json-rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAQ,KAAK,SAAS,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../accounts/json-rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAQ,KAAK,SAAS,EAAE,MAAM,MAAM,CAAA;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGjD,iBAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAS3E;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -1,19 +1,13 @@
|
|
|
1
1
|
import { http } from 'viem';
|
|
2
|
-
import {
|
|
2
|
+
import { getCustomUrl } from './providers.js';
|
|
3
3
|
function createTransport(chain, provider) {
|
|
4
4
|
if (!provider) {
|
|
5
5
|
return http();
|
|
6
6
|
}
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
case 'custom': {
|
|
13
|
-
const customUrl = getCustomUrl(chain.id, provider.urls);
|
|
14
|
-
// Fall back to default provider if no custom URL configured for this chain
|
|
15
|
-
return http(customUrl);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
7
|
+
// Caller supplies the RPC URL per chain (v2: the SDK no longer bundles
|
|
8
|
+
// provider slugs or builds Alchemy URLs). Falls back to viem's default
|
|
9
|
+
// transport when no URL is configured for this chain.
|
|
10
|
+
const customUrl = getCustomUrl(chain.id, provider.urls);
|
|
11
|
+
return http(customUrl);
|
|
18
12
|
}
|
|
19
13
|
export { createTransport };
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import type { SupportedChain } from '../../orchestrator/index.js';
|
|
2
|
-
declare function getAlchemyUrl(chainId: SupportedChain, apiKey: string): string;
|
|
3
1
|
declare function getCustomUrl(chainId: number, urls: Record<number, string>): string | undefined;
|
|
4
|
-
export {
|
|
2
|
+
export { getCustomUrl };
|
|
5
3
|
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../accounts/json-rpc/providers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../accounts/json-rpc/providers.ts"],"names":[],"mappings":"AAAA,iBAAS,YAAY,CACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,GAAG,SAAS,CAEpB;AAED,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -1,16 +1,4 @@
|
|
|
1
|
-
import { providerRegistry as providers } from '@rhinestone/shared-configs';
|
|
2
|
-
function getAlchemyUrl(chainId, apiKey) {
|
|
3
|
-
const urlTemplate = providers.Alchemy.url_template;
|
|
4
|
-
const chainParam = providers.Alchemy.chain_mapping[chainId];
|
|
5
|
-
if (!chainParam) {
|
|
6
|
-
throw new Error(`Unsupported chain: ${chainId}`);
|
|
7
|
-
}
|
|
8
|
-
return (urlTemplate
|
|
9
|
-
.replace('{{chain_param}}', chainParam)
|
|
10
|
-
// biome-ignore lint/suspicious/noTemplateCurlyInString: literal placeholder token in the upstream shared-configs url_template
|
|
11
|
-
.replace('${ALCHEMY_API_KEY}', apiKey));
|
|
12
|
-
}
|
|
13
1
|
function getCustomUrl(chainId, urls) {
|
|
14
2
|
return urls[chainId];
|
|
15
3
|
}
|
|
16
|
-
export {
|
|
4
|
+
export { getCustomUrl };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Abi, Account, Address, Chain, Hex, PublicClient } from 'viem';
|
|
2
2
|
import { type SmartAccount, type SmartAccountImplementation } from 'viem/account-abstraction';
|
|
3
3
|
import type { Module } from '../modules/common.js';
|
|
4
|
-
import type { OwnerSet, RhinestoneAccountConfig } from '../types.js';
|
|
4
|
+
import type { NexusAccount, OwnerSet, RhinestoneAccountConfig } from '../types.js';
|
|
5
5
|
import { type ValidatorConfig } from './utils.js';
|
|
6
6
|
declare function getDeployArgs(config: RhinestoneAccountConfig): {
|
|
7
7
|
salt: `0x${string}`;
|
|
@@ -22,7 +22,7 @@ declare function getEip712Domain(config: RhinestoneAccountConfig, chain: Chain):
|
|
|
22
22
|
declare function getInstallData(module: Module): `0x${string}`;
|
|
23
23
|
declare function getDefaultValidatorInitData(module: Module): Hex;
|
|
24
24
|
declare function isDefaultValidatorConfigured(config: RhinestoneAccountConfig): boolean;
|
|
25
|
-
declare function getDefaultValidatorAddress(version: '
|
|
25
|
+
declare function getDefaultValidatorAddress(version: NexusAccount['version']): Address;
|
|
26
26
|
declare function packSignature(signature: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex, defaultValidatorAddress?: Address): Promise<`0x${string}`>;
|
|
27
27
|
declare function getSmartAccount(client: PublicClient, address: Address, owners: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>, defaultValidatorAddress?: Address): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
28
28
|
declare function signEip7702InitData(config: RhinestoneAccountConfig, eoa: Account): Promise<`0x${string}`>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nexus.d.ts","sourceRoot":"","sources":["../../../accounts/nexus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAe3E,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG/C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"nexus.d.ts","sourceRoot":"","sources":["../../../accounts/nexus.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAe3E,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG/C,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAM/E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AA+EhF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;;SAwHrD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAoClD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK;;;;;;EAarE;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAMD,iBAAS,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,GAAG,CAcxD;AAOD,iBAAS,4BAA4B,CACnC,MAAM,EAAE,uBAAuB,GAC9B,OAAO,CAST;AAED,iBAAS,0BAA0B,CAAC,OAAO,EAAE,YAAY,CAAC,SAAS,CAAC,GAAG,OAAO,CAiB7E;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,EACtE,uBAAuB,GAAE,OAAyC,0BAWnE;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,EACjC,uBAAuB,GAAE,OAAyC,iEAYnE;AAqFD,iBAAe,mBAAmB,CAChC,MAAM,EAAE,uBAAuB,EAC/B,GAAG,EAAE,OAAO,0BA8Bb;AAED,iBAAS,kBAAkB,CAAC,MAAM,EAAE,uBAAuB,EAAE,SAAS,EAAE,GAAG;;;EA0C1E;AA6FD,OAAO,EACL,eAAe,EACf,cAAc,EACd,2BAA2B,EAC3B,4BAA4B,EAC5B,UAAU,EACV,0BAA0B,EAC1B,aAAa,EACb,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,kBAAkB,GACnB,CAAA"}
|
|
@@ -7,13 +7,60 @@ import { AccountConfigurationNotSupportedError, Eip712DomainNotAvailableError, S
|
|
|
7
7
|
import { encode7579Calls, getAccountNonce } from './utils.js';
|
|
8
8
|
const NEXUS_DEFAULT_VALIDATOR_ADDRESS = OWNABLE_VALIDATOR_ADDRESS;
|
|
9
9
|
const NEXUS_VERSION = '1.2.0';
|
|
10
|
+
// Previous (1.2.0) implementation + factory. Callers opt back into these with
|
|
11
|
+
// `account.version = '1.2.0'`; the default deploys 1.2.1 (see getNexusDeployment).
|
|
10
12
|
const NEXUS_IMPLEMENTATION_ADDRESS = '0x000000000032ddc454c3bdcba80484ad5a798705';
|
|
11
13
|
const NEXUS_FACTORY_ADDRESS = '0x0000000000679a258c64d2f20f310e12b64b7375';
|
|
12
14
|
const NEXUS_BOOTSTRAP_ADDRESS = '0x00000000006efb61d8c9546ff1b500de3f244ea7';
|
|
15
|
+
// Current default (1.2.1): new implementation + factory, same bootstrap and
|
|
16
|
+
// proxy creation code as 1.2.0.
|
|
17
|
+
const NEXUS_IMPLEMENTATION_1_2_1 = '0x000000000d41c0bf0063dba53343389cdb2c9c78';
|
|
18
|
+
const NEXUS_FACTORY_1_2_1 = '0x0000000099d5576c73a3b190dabeeaa0f128ce6b';
|
|
13
19
|
const NEXUS_IMPLEMENTATION_1_0_0 = '0x000000039dfcad030719b07296710f045f0558f7';
|
|
14
20
|
const NEXUS_BOOTSTRAP_1_0_0 = '0x00000008c901d8871b6f6942de0b5d9ccf3873d3';
|
|
15
21
|
const NEXUS_K1_VALIDATOR = '0x00000004171351c442b202678c48d8ab5b321e8f';
|
|
16
22
|
const NEXUS_CREATION_CODE = '0x60806040526102aa803803806100148161018c565b92833981016040828203126101885781516001600160a01b03811692909190838303610188576020810151906001600160401b03821161018857019281601f8501121561018857835161006e610069826101c5565b61018c565b9481865260208601936020838301011161018857815f926020809301865e8601015260017f90b772c2cb8a51aa7a8a65fc23543c6d022d5b3f8e2b92eed79fba7eef8293005d823b15610176577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561015e575f8091610146945190845af43d15610156573d91610137610069846101c5565b9283523d5f602085013e6101e0565b505b604051606b908161023f8239f35b6060916101e0565b50505034156101485763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176101b157604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116101b157601f01601f191660200190565b9061020457508051156101f557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610235575b610215575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040523615605c575f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156058573d5ff35b3d5ffd5b00fea164736f6c634300081b000a';
|
|
23
|
+
// Resolves the implementation + factory a fresh account deploys against. Only
|
|
24
|
+
// the default (unset) and an explicit '1.2.1' deploy the current contracts;
|
|
25
|
+
// '1.2.0' and the legacy pins keep the previous implementation + factory so
|
|
26
|
+
// their counterfactual addresses don't change.
|
|
27
|
+
function getNexusDeployment(version) {
|
|
28
|
+
const current = {
|
|
29
|
+
implementation: NEXUS_IMPLEMENTATION_1_2_1,
|
|
30
|
+
factory: NEXUS_FACTORY_1_2_1,
|
|
31
|
+
};
|
|
32
|
+
const previous = {
|
|
33
|
+
implementation: NEXUS_IMPLEMENTATION_ADDRESS,
|
|
34
|
+
factory: NEXUS_FACTORY_ADDRESS,
|
|
35
|
+
};
|
|
36
|
+
if (!version) {
|
|
37
|
+
return current;
|
|
38
|
+
}
|
|
39
|
+
switch (version) {
|
|
40
|
+
case '1.2.1':
|
|
41
|
+
return current;
|
|
42
|
+
case '1.2.0':
|
|
43
|
+
case '1.0.2':
|
|
44
|
+
case 'rhinestone-1.0.0-beta':
|
|
45
|
+
case 'rhinestone-1.0.0':
|
|
46
|
+
return previous;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Whether the factory is one of the current Nexus factories (1.2.0 / 1.2.1),
|
|
50
|
+
// which share the same proxy creation code. Legacy (1.0.0) factories use a
|
|
51
|
+
// different proxy and account init encoding.
|
|
52
|
+
function isNexusV1Factory(factory) {
|
|
53
|
+
const normalized = factory.toLowerCase();
|
|
54
|
+
return (normalized === NEXUS_FACTORY_ADDRESS || normalized === NEXUS_FACTORY_1_2_1);
|
|
55
|
+
}
|
|
56
|
+
// Maps a current Nexus factory to the implementation it deploys, so a persisted
|
|
57
|
+
// `initData` payload recomputes against the right implementation (and the 7702
|
|
58
|
+
// init helpers sign/return it) instead of defaulting to one version.
|
|
59
|
+
function implementationForFactory(factory) {
|
|
60
|
+
return factory.toLowerCase() === NEXUS_FACTORY_1_2_1
|
|
61
|
+
? NEXUS_IMPLEMENTATION_1_2_1
|
|
62
|
+
: NEXUS_IMPLEMENTATION_ADDRESS;
|
|
63
|
+
}
|
|
17
64
|
function getDeployArgs(config) {
|
|
18
65
|
if (config.initData) {
|
|
19
66
|
if (!('factory' in config.initData)) {
|
|
@@ -33,6 +80,7 @@ function getDeployArgs(config) {
|
|
|
33
80
|
const account = config.account;
|
|
34
81
|
const defaultSalt = keccak256('0x');
|
|
35
82
|
const salt = account?.salt ?? defaultSalt;
|
|
83
|
+
const { implementation, factory } = getNexusDeployment(account?.version);
|
|
36
84
|
const moduleSetup = getModuleSetup(config);
|
|
37
85
|
// Filter out the default validator
|
|
38
86
|
const defaultValidator = moduleSetup.validators.find((v) => v.address === NEXUS_DEFAULT_VALIDATOR_ADDRESS);
|
|
@@ -108,10 +156,10 @@ function getDeployArgs(config) {
|
|
|
108
156
|
args: [initData],
|
|
109
157
|
});
|
|
110
158
|
return {
|
|
111
|
-
factory
|
|
159
|
+
factory,
|
|
112
160
|
factoryData,
|
|
113
161
|
salt,
|
|
114
|
-
implementation
|
|
162
|
+
implementation,
|
|
115
163
|
initializationCallData,
|
|
116
164
|
initData,
|
|
117
165
|
};
|
|
@@ -125,10 +173,10 @@ function getAddress(config) {
|
|
|
125
173
|
throw new Error('Cannot derive address: deploy args not available');
|
|
126
174
|
}
|
|
127
175
|
const { factory, salt, initializationCallData, implementation } = deployArgs;
|
|
128
|
-
const creationCode = factory
|
|
176
|
+
const creationCode = isNexusV1Factory(factory)
|
|
129
177
|
? NEXUS_CREATION_CODE
|
|
130
178
|
: '0x603d3d8160223d3973000000039dfcad030719b07296710f045f0558f760095155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3';
|
|
131
|
-
const accountInitData = factory
|
|
179
|
+
const accountInitData = isNexusV1Factory(factory)
|
|
132
180
|
? encodeAbiParameters([
|
|
133
181
|
{
|
|
134
182
|
name: 'address',
|
|
@@ -227,8 +275,11 @@ function getDefaultValidatorAddress(version) {
|
|
|
227
275
|
switch (version) {
|
|
228
276
|
case '1.0.2':
|
|
229
277
|
return '0x0000002d6db27c52e3c11c1cf24072004ac75cba';
|
|
278
|
+
// 1.2.0 and 1.2.1 both hardwire the Ownable validator; they differ only in
|
|
279
|
+
// implementation + factory.
|
|
230
280
|
case '1.2.0':
|
|
231
|
-
|
|
281
|
+
case '1.2.1':
|
|
282
|
+
return NEXUS_DEFAULT_VALIDATOR_ADDRESS;
|
|
232
283
|
case 'rhinestone-1.0.0-beta':
|
|
233
284
|
return '0x0000000000e9e6e96bcaa3c113187cdb7e38aed9';
|
|
234
285
|
case 'rhinestone-1.0.0':
|
|
@@ -325,7 +376,7 @@ async function signEip7702InitData(config, eoa) {
|
|
|
325
376
|
if (!deployArgs) {
|
|
326
377
|
throw new Error('Cannot sign EIP-7702 init data: deploy args not available');
|
|
327
378
|
}
|
|
328
|
-
const { initData } = deployArgs;
|
|
379
|
+
const { initData, implementation } = deployArgs;
|
|
329
380
|
if (!eoa.signTypedData) {
|
|
330
381
|
throw new SigningNotSupportedForAccountError();
|
|
331
382
|
}
|
|
@@ -343,7 +394,7 @@ async function signEip7702InitData(config, eoa) {
|
|
|
343
394
|
},
|
|
344
395
|
primaryType: 'Initialize',
|
|
345
396
|
message: {
|
|
346
|
-
nexus:
|
|
397
|
+
nexus: implementation,
|
|
347
398
|
chainIds: [0n],
|
|
348
399
|
initData,
|
|
349
400
|
},
|
|
@@ -362,7 +413,7 @@ function getEip7702InitCall(config, signature) {
|
|
|
362
413
|
if (!deployArgs) {
|
|
363
414
|
throw new Error('Cannot get EIP-7702 init call: deploy args not available');
|
|
364
415
|
}
|
|
365
|
-
const { initData } = deployArgs;
|
|
416
|
+
const { initData, implementation } = deployArgs;
|
|
366
417
|
const encodedData = getEncodedData(initData);
|
|
367
418
|
const accountFullData = concat([signature, encodedData]);
|
|
368
419
|
const accountInitCallData = encodeFunctionData({
|
|
@@ -385,7 +436,7 @@ function getEip7702InitCall(config, signature) {
|
|
|
385
436
|
});
|
|
386
437
|
return {
|
|
387
438
|
initData: accountInitCallData,
|
|
388
|
-
contract:
|
|
439
|
+
contract: implementation,
|
|
389
440
|
};
|
|
390
441
|
}
|
|
391
442
|
function tryDecodeV1FactoryData(factory, factoryData) {
|
|
@@ -405,7 +456,7 @@ function tryDecodeV1FactoryData(factory, factoryData) {
|
|
|
405
456
|
salt,
|
|
406
457
|
factory,
|
|
407
458
|
factoryData,
|
|
408
|
-
implementation:
|
|
459
|
+
implementation: implementationForFactory(factory),
|
|
409
460
|
initData,
|
|
410
461
|
initializationCallData,
|
|
411
462
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAsB,KAAK,GAAG,EAAE,MAAM,MAAM,CAAA;AAC7E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAGpE,OAAO,EAAE,KAAK,YAAY,EAAsB,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAIL,KAAK,cAAc,EAInB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { deploy, getAddress } from '../accounts/index.js';
|
|
|
3
3
|
import { createTransport, getBundlerClient } from '../accounts/utils.js';
|
|
4
4
|
import { createAuthProvider } from '../auth/provider.js';
|
|
5
5
|
import { getOrchestrator, INTENT_STATUS_COMPLETED, INTENT_STATUS_FAILED, isConnectionError, isRateLimited, isRetryable, } from '../orchestrator/index.js';
|
|
6
|
-
import { getChainById
|
|
6
|
+
import { getChainById } from '../orchestrator/registry.js';
|
|
7
7
|
import { Eip7702InitSignatureRequiredError, ExecutionError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, IntentFailedError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, isExecutionError, MismatchedOwnerSignaturesError, OrderPathRequiredForIntentsError, QuoteNotInPreparedTransactionError, UnknownOwnerError, } from './error.js';
|
|
8
8
|
import { getTargetExecutionSignature, getTokenRequests, getValidatorAccount, parseCalls, prepareTransactionAsIntent, resolveCallInputs, signAuthorizationsInternal, signIntent, submitIntentInternal, } from './utils.js';
|
|
9
9
|
const POLL_INITIAL_MS = 500;
|
|
@@ -153,15 +153,14 @@ async function waitForExecution(config, result) {
|
|
|
153
153
|
async function getPortfolio(config, onTestnets) {
|
|
154
154
|
const address = getAddress(config);
|
|
155
155
|
const orchestrator = getOrchestrator(config._authProvider ?? createAuthProvider(config), config.endpointUrl, config.headers);
|
|
156
|
-
const
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
});
|
|
156
|
+
const catalog = await orchestrator.getChainCatalog();
|
|
157
|
+
// Filter on the catalog's own `testnet` flag — authoritative for every chain
|
|
158
|
+
// the orchestrator supports (incl. non-EVM and chains newer than the SDK's
|
|
159
|
+
// viem). Filtering through viem would silently drop unknown chains, so their
|
|
160
|
+
// balances would disappear until an SDK/viem bump.
|
|
161
|
+
const filteredChainIds = catalog
|
|
162
|
+
.getSupportedChainIds()
|
|
163
|
+
.filter((id) => catalog.isTestnet(id) === onTestnets);
|
|
165
164
|
return orchestrator.getPortfolio(address, { chainIds: filteredChainIds });
|
|
166
165
|
}
|
|
167
166
|
async function getAppFeeBalances(authProvider, endpointUrl, headers) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EAMV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAOR,KAAK,YAAY,EAGjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAGrB,MAAM,MAAM,CAAA;AACb,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,eAAe,EACrB,MAAM,0BAA0B,CAAA;AAqDjC,OAAO,EACL,KAAK,wBAAwB,EAG9B,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EAIL,KAAK,KAAK,EACV,KAAK,QAAQ,EACd,MAAM,iBAAiB,CAAA;AAExB,OAAO,EACL,KAAK,gBAAgB,EAGrB,KAAK,aAAa,EACnB,MAAM,8BAA8B,CAAA;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ import { resolvePermit2ClaimPolicy, selectPermit2ClaimPolicyForMessage, } from '
|
|
|
13
13
|
import { getOrchestrator, } from '../orchestrator/index.js';
|
|
14
14
|
import { isNonEvmChainId, toCaip2 } from '../orchestrator/caip2.js';
|
|
15
15
|
import { getChainId, isNonEvmChain, } from '../orchestrator/destinations.js';
|
|
16
|
-
import { getChainById,
|
|
16
|
+
import { getChainById, resolveTokenAddress } from '../orchestrator/registry.js';
|
|
17
17
|
import { SIG_MODE_EMISSARY_EXECUTION_ERC1271, SIG_MODE_ERC1271, } from '../orchestrator/types.js';
|
|
18
18
|
import { convertBigIntFields } from '../orchestrator/utils.js';
|
|
19
19
|
import { Eip7702InitSignatureRequiredError, IndependentSigningNotSupportedError, InsufficientOwnerSignaturesError, InvalidOwnerSigningOptionsError, InvalidSourceCallsError, MismatchedOwnerSignaturesError, QuoteNotInPreparedTransactionError, UnknownOwnerError, } from './error.js';
|
|
@@ -764,7 +764,7 @@ function getTokenRequests(targetChain, initialTokenRequests) {
|
|
|
764
764
|
// Inside this branch targetChain is a viem `Chain`, which excludes the
|
|
765
765
|
// non-EVM transaction variant — token requests are EVM-typed here.
|
|
766
766
|
const evmRequests = initialTokenRequests;
|
|
767
|
-
|
|
767
|
+
validateTokenAddresses(evmRequests.map((tokenRequest) => tokenRequest.address));
|
|
768
768
|
}
|
|
769
769
|
return initialTokenRequests ?? [];
|
|
770
770
|
}
|
|
@@ -1102,7 +1102,8 @@ async function getDestinationSignature(config, signers, validator, isRoot, targe
|
|
|
1102
1102
|
: (lastOriginSignature ?? '0x');
|
|
1103
1103
|
}
|
|
1104
1104
|
async function signDestinationSeparately(config, signers, validator, isRoot, targetChain, destination, targetExecution) {
|
|
1105
|
-
|
|
1105
|
+
// `targetChain` is already the destination viem `Chain`; no lookup needed.
|
|
1106
|
+
const destinationChain = targetChain;
|
|
1106
1107
|
const destinationSignatures = await signIntentTypedData(config, signers, validator, isRoot, destination, destinationChain, targetExecution);
|
|
1107
1108
|
return typeof destinationSignatures === 'object'
|
|
1108
1109
|
? destinationSignatures.preClaimSig
|
|
@@ -1425,9 +1426,14 @@ function createAccountAccessList(sourceChains, sourceAssets) {
|
|
|
1425
1426
|
}
|
|
1426
1427
|
return out;
|
|
1427
1428
|
}
|
|
1428
|
-
|
|
1429
|
-
|
|
1430
|
-
|
|
1429
|
+
const tokens = sourceAssets;
|
|
1430
|
+
validateTokenAddresses(tokens);
|
|
1431
|
+
return chainIds ? { chainIds, tokens } : { tokens };
|
|
1432
|
+
}
|
|
1433
|
+
// ChainTokenMap: validate every per-chain list too, so symbols can't slip
|
|
1434
|
+
// through this input the way they can't through tokenRequests/ExactInputConfig.
|
|
1435
|
+
for (const tokens of Object.values(sourceAssets)) {
|
|
1436
|
+
validateTokenAddresses(tokens);
|
|
1431
1437
|
}
|
|
1432
1438
|
return { chainTokens: sourceAssets };
|
|
1433
1439
|
}
|
|
@@ -1488,19 +1494,10 @@ function getSetupOperationsAndDelegations(config, accountAddress, eip7702InitSig
|
|
|
1488
1494
|
};
|
|
1489
1495
|
}
|
|
1490
1496
|
}
|
|
1491
|
-
function
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
return true;
|
|
1496
|
-
}
|
|
1497
|
-
// Token symbol
|
|
1498
|
-
const address = getTokenAddress(addressOrSymbol, chain.id);
|
|
1499
|
-
return isAddress(address, { strict: false });
|
|
1500
|
-
}
|
|
1501
|
-
for (const addressOrSymbol of tokenAddressOrSymbols) {
|
|
1502
|
-
if (!validateTokenSymbol(chain, addressOrSymbol)) {
|
|
1503
|
-
throw new Error(`Invalid token symbol: ${addressOrSymbol}`);
|
|
1497
|
+
function validateTokenAddresses(tokenAddresses) {
|
|
1498
|
+
for (const address of tokenAddresses) {
|
|
1499
|
+
if (!isAddress(address, { strict: false })) {
|
|
1500
|
+
throw new Error(`Invalid token address: ${address}`);
|
|
1504
1501
|
}
|
|
1505
1502
|
}
|
|
1506
1503
|
}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Address, Chain, HashTypedDataParameters, Hex, SignableMessage, SignedAuthorizationList, TypedData, TypedDataDefinition } from 'viem';
|
|
1
|
+
import type { Abi, Address, Chain, HashTypedDataParameters, Hex, SignableMessage, SignedAuthorizationList, TypedData, TypedDataDefinition } from 'viem';
|
|
2
2
|
import type { UserOperationReceipt } from 'viem/account-abstraction';
|
|
3
3
|
import { type TransactionResult, type TransactionStatus, type UserOperationResult } from './execution/index.js';
|
|
4
4
|
import { type OwnerPasskeySignature, type OwnerSignature, type OwnerSignatureData, type PreparedQuotes, type PreparedTransactionData, type PreparedUserOperationData, type QuoteSelection, type SignAsOwnerOptions, type SignedTransactionData, type SignedUserOperationData } from './execution/utils.js';
|
|
@@ -288,6 +288,16 @@ declare class RhinestoneSDK {
|
|
|
288
288
|
* ```
|
|
289
289
|
*/
|
|
290
290
|
createAccount(config: RhinestoneAccountConfig): Promise<RhinestoneAccount>;
|
|
291
|
+
/**
|
|
292
|
+
* Create a smart session, resolving the chain's wrapped-native token from the
|
|
293
|
+
* orchestrator's chain catalog (`GET /chains`) so native-token wrapping is
|
|
294
|
+
* permitted automatically. Project-scoped — needs the API key but no account.
|
|
295
|
+
* For a fully offline build, use the standalone {@link toSession} and pass
|
|
296
|
+
* `wrappedNativeToken` yourself.
|
|
297
|
+
* @param definition The session definition
|
|
298
|
+
* @returns The resolved session
|
|
299
|
+
*/
|
|
300
|
+
createSession<const TAbis extends readonly Abi[]>(definition: SessionDefinition<TAbis>): Promise<Session>;
|
|
291
301
|
/**
|
|
292
302
|
* Get the current status of a submitted intent.
|
|
293
303
|
* @param intentId The intent ID returned when the transaction was submitted
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,uBAAuB,EACvB,GAAG,EACH,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EACpB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;AAcpE,OAAO,EAML,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EAEzB,MAAM,aAAa,CAAA;AACpB,OAAO,EAIL,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,cAAc,EACnB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAG9B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,uBAAuB,EAS7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAKL,8BAA8B,EAC9B,yBAAyB,EACzB,8BAA8B,EAE9B,0BAA0B,EAC3B,MAAM,WAAW,CAAA;AAClB,OAAO,EAEL,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -3,7 +3,8 @@ import { createAuthProvider } from './auth/provider.js';
|
|
|
3
3
|
import { getAppFeeBalances as getAppFeeBalancesInternal, getIntentStatus as getIntentStatusInternal, getPortfolio as getPortfolioInternal, sendUserOperation as sendUserOperationInternal, splitIntents as splitIntentsInternal, waitForExecution as waitForExecutionInternal, } from './execution/index.js';
|
|
4
4
|
import { assembleTransaction as assembleTransactionInternal, getTargetExecutionSignature as getTargetExecutionSignatureInternal, getTransactionMessages as getTransactionMessagesInternal, prepareTransaction as prepareTransactionInternal, prepareUserOperation as prepareUserOperationInternal, signAuthorizations as signAuthorizationsInternal, signIntent as signIntentInternal, signMessage as signMessageInternal, signTransaction as signTransactionInternal, signTypedData as signTypedDataInternal, signUserOperation as signUserOperationInternal, submitTransaction as submitTransactionInternal, submitUserOperation as submitUserOperationInternal, } from './execution/utils.js';
|
|
5
5
|
import { getExecutors as getExecutorsInternal, getOwners as getOwnersInternal, getSessionDetails as getSessionDetailsInternal, getValidators as getValidatorsInternal, MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, signEnableSession as signEnableSessionInternal, WEBAUTHN_VALIDATOR_ADDRESS, } from './modules/index.js';
|
|
6
|
-
import { isSessionEnabled as isSessionEnabledInternal, } from './modules/validators/smart-sessions.js';
|
|
6
|
+
import { isSessionEnabled as isSessionEnabledInternal, toSession, } from './modules/validators/smart-sessions.js';
|
|
7
|
+
import { getOrchestrator } from './orchestrator/index.js';
|
|
7
8
|
import { hyperCoreMainnet, solanaMainnet, tronMainnet } from './orchestrator/index.js';
|
|
8
9
|
/**
|
|
9
10
|
* Initialize a Rhinestone account from a fully-resolved config.
|
|
@@ -171,6 +172,19 @@ async function createAccountInternal(config) {
|
|
|
171
172
|
getInitData,
|
|
172
173
|
};
|
|
173
174
|
}
|
|
175
|
+
async function createSessionInternal(authProvider, endpointUrl, headers, useDevContracts, definition) {
|
|
176
|
+
const orchestrator = getOrchestrator(authProvider, endpointUrl, headers);
|
|
177
|
+
const catalog = await orchestrator.getChainCatalog();
|
|
178
|
+
const wrappedNativeToken = catalog.getWrappedNativeToken(definition.chain.id)
|
|
179
|
+
?.address;
|
|
180
|
+
// Fail fast: without the wrapped-native address we can't add the native-wrap
|
|
181
|
+
// `deposit()` permission, and a silently under-scoped session would
|
|
182
|
+
// sign/enable fine but break native-wrap intents later.
|
|
183
|
+
if (!wrappedNativeToken) {
|
|
184
|
+
throw new Error(`createSession: the orchestrator's /chains has no wrapped-native token for chain ${definition.chain.id}. The chain must be supported and advertise its wrappedNativeToken.`);
|
|
185
|
+
}
|
|
186
|
+
return toSession(definition, { wrappedNativeToken, useDevContracts });
|
|
187
|
+
}
|
|
174
188
|
/**
|
|
175
189
|
* Stateful entry point that holds shared configuration (auth, provider, bundler,
|
|
176
190
|
* paymaster) and creates accounts from it.
|
|
@@ -229,6 +243,18 @@ class RhinestoneSDK {
|
|
|
229
243
|
};
|
|
230
244
|
return createAccountInternal(rhinestoneConfig);
|
|
231
245
|
}
|
|
246
|
+
/**
|
|
247
|
+
* Create a smart session, resolving the chain's wrapped-native token from the
|
|
248
|
+
* orchestrator's chain catalog (`GET /chains`) so native-token wrapping is
|
|
249
|
+
* permitted automatically. Project-scoped — needs the API key but no account.
|
|
250
|
+
* For a fully offline build, use the standalone {@link toSession} and pass
|
|
251
|
+
* `wrappedNativeToken` yourself.
|
|
252
|
+
* @param definition The session definition
|
|
253
|
+
* @returns The resolved session
|
|
254
|
+
*/
|
|
255
|
+
createSession(definition) {
|
|
256
|
+
return createSessionInternal(this.authProvider, this.endpointUrl, this.headers, this.useDevContracts, definition);
|
|
257
|
+
}
|
|
232
258
|
/**
|
|
233
259
|
* Get the current status of a submitted intent.
|
|
234
260
|
* @param intentId The intent ID returned when the transaction was submitted
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { CrossChainPermissionInput, CrossChainPermit } from '../../types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Resolve a {@link CrossChainPermissionInput} into a {@link CrossChainPermit}:
|
|
4
|
-
* normalise single/array legs
|
|
5
|
-
*
|
|
4
|
+
* normalise single/array legs and convert `Date` validity bounds to
|
|
5
|
+
* unix-seconds. Token fields are per-chain ERC-20 addresses (v2 no longer
|
|
6
|
+
* accepts symbols).
|
|
6
7
|
*
|
|
7
8
|
* @internal Used by `expandCrossChainPermit`; not part of the public API.
|
|
8
9
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-chain-permits.d.ts","sourceRoot":"","sources":["../../../../modules/validators/cross-chain-permits.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"cross-chain-permits.d.ts","sourceRoot":"","sources":["../../../../modules/validators/cross-chain-permits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAkB9E;;;;;;;GAOG;AACH,iBAAS,2BAA2B,CAClC,KAAK,EAAE,yBAAyB,GAC/B,gBAAgB,CA0DlB;AAQD;;;;;;;;GAQG;AACH,iBAAS,2BAA2B,CAClC,MAAM,EAAE,gBAAgB,GACvB,yBAAyB,CAuB3B;AAED,OAAO,EAAE,2BAA2B,EAAE,2BAA2B,EAAE,CAAA"}
|
|
@@ -1,14 +1,9 @@
|
|
|
1
|
-
import { isAddress } from 'viem';
|
|
2
|
-
import { getTokenAddress } from '../../orchestrator/registry.js';
|
|
3
1
|
function dateToUnixSeconds(input) {
|
|
4
2
|
// Date.getTime() returns milliseconds since epoch; the on-chain policy
|
|
5
3
|
// expects unix-seconds. Integer division matches the Permit2 deadline
|
|
6
4
|
// convention.
|
|
7
5
|
return BigInt(Math.floor(input.getTime() / 1000));
|
|
8
6
|
}
|
|
9
|
-
function resolveTokenForChain(token, chainId) {
|
|
10
|
-
return isAddress(token) ? token : getTokenAddress(token, chainId);
|
|
11
|
-
}
|
|
12
7
|
// Normalise the single-object / array / omitted shapes into arrays. An
|
|
13
8
|
// omitted side stays `undefined` (no restriction), mirroring how the
|
|
14
9
|
// underlying Permit2 policy treats an absent token list.
|
|
@@ -20,8 +15,9 @@ function normalizeLegs(legs) {
|
|
|
20
15
|
}
|
|
21
16
|
/**
|
|
22
17
|
* Resolve a {@link CrossChainPermissionInput} into a {@link CrossChainPermit}:
|
|
23
|
-
* normalise single/array legs
|
|
24
|
-
*
|
|
18
|
+
* normalise single/array legs and convert `Date` validity bounds to
|
|
19
|
+
* unix-seconds. Token fields are per-chain ERC-20 addresses (v2 no longer
|
|
20
|
+
* accepts symbols).
|
|
25
21
|
*
|
|
26
22
|
* @internal Used by `expandCrossChainPermit`; not part of the public API.
|
|
27
23
|
*/
|
|
@@ -30,12 +26,12 @@ function resolveCrossChainPermission(input) {
|
|
|
30
26
|
const toLegs = normalizeLegs(input.to);
|
|
31
27
|
const from = fromLegs?.map((leg) => ({
|
|
32
28
|
chain: leg.chain,
|
|
33
|
-
token:
|
|
29
|
+
token: leg.token,
|
|
34
30
|
maxAmount: leg.maxAmount,
|
|
35
31
|
}));
|
|
36
32
|
const to = toLegs?.map((leg) => ({
|
|
37
33
|
chain: leg.chain,
|
|
38
|
-
token:
|
|
34
|
+
token: leg.token,
|
|
39
35
|
recipient: leg.recipient,
|
|
40
36
|
}));
|
|
41
37
|
const validUntil = input.validUntil !== undefined
|
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
import type { Address } from 'viem';
|
|
2
2
|
import type { CrossChainSettlementLayer } from '../../../../types.js';
|
|
3
3
|
/**
|
|
4
|
-
* Collects every distinct arbiter address
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
4
|
+
* Collects every distinct arbiter address for the given settlement layers. The
|
|
5
|
+
* resulting whitelist is what the Permit2 claim policy enforces on-chain — a
|
|
6
|
+
* session signed once with this whitelist is valid against any of those
|
|
7
|
+
* arbiters.
|
|
8
8
|
*
|
|
9
|
-
* **"Any" means any of the *supported* settlement layers**, not any
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* stays meaningful (the worst case is still a Rhinestone-blessed
|
|
14
|
-
* arbiter). To get a truly unrestricted whitelist a caller would have
|
|
15
|
-
* to bypass this helper entirely.
|
|
9
|
+
* **"Any" means any of the *supported* settlement layers**, not any address on
|
|
10
|
+
* earth. When `layers` is empty or undefined, this expands to the union of
|
|
11
|
+
* every layer in {@link SETTLEMENT_LAYER_CONTRACT_KEYS}, so the on-chain arbiter
|
|
12
|
+
* check stays meaningful (the worst case is still a Rhinestone-blessed arbiter).
|
|
16
13
|
*
|
|
17
14
|
* @param layers Settlement layers the session is permitted to use.
|
|
18
15
|
* Empty/undefined ⇒ all supported layers.
|