@rhinestone/sdk 1.0.34 → 1.0.36-alpha.1
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/src/accounts/index.d.ts +7 -1
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +34 -0
- package/dist/src/accounts/safe.d.ts +8 -1
- package/dist/src/accounts/safe.d.ts.map +1 -1
- package/dist/src/accounts/safe.js +100 -21
- package/dist/src/accounts/utils.d.ts +1 -1
- package/dist/src/accounts/utils.d.ts.map +1 -1
- package/dist/src/execution/compact.js +2 -2
- package/dist/src/execution/index.d.ts +1 -1
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +5 -7
- package/dist/src/execution/permit2.js +2 -2
- package/dist/src/execution/utils.d.ts +13 -7
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +52 -13
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -2
- package/dist/src/modules/chain-abstraction.d.ts +5 -0
- package/dist/src/modules/chain-abstraction.d.ts.map +1 -0
- package/dist/src/modules/chain-abstraction.js +7 -0
- package/dist/src/modules/common.d.ts +7 -1
- package/dist/src/modules/common.d.ts.map +1 -1
- package/dist/src/modules/index.d.ts +2 -9
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +8 -8
- package/dist/src/modules/index.test.js +3 -9
- package/dist/src/modules/legacy.d.ts +10 -0
- package/dist/src/modules/legacy.d.ts.map +1 -0
- package/dist/src/modules/legacy.js +65 -0
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +6 -2
- package/dist/src/modules/validators/smart-sessions.test.js +6 -9
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +9 -1
- package/dist/src/orchestrator/types.d.ts +8 -0
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/types.d.ts +6 -1
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts +10 -1
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +18 -0
- package/package.json +1 -1
- package/dist/src/modules/omni-account.d.ts +0 -8
- package/dist/src/modules/omni-account.d.ts.map +0 -1
- package/dist/src/modules/omni-account.js +0 -13
|
@@ -10,6 +10,12 @@ declare function getInitCode(config: RhinestoneConfig): {
|
|
|
10
10
|
factory: `0x${string}`;
|
|
11
11
|
factoryData: `0x${string}`;
|
|
12
12
|
} | undefined;
|
|
13
|
+
declare function getV0InitCode(config: RhinestoneConfig): {
|
|
14
|
+
address: import("viem").Address;
|
|
15
|
+
} | {
|
|
16
|
+
factory: `0x${string}`;
|
|
17
|
+
factoryData: `0x${string}`;
|
|
18
|
+
} | undefined;
|
|
13
19
|
declare function signEip7702InitData(config: RhinestoneConfig): Promise<`0x${string}`>;
|
|
14
20
|
declare function getEip7702InitCall(config: RhinestoneConfig, signature: Hex): {
|
|
15
21
|
initData: `0x${string}`;
|
|
@@ -40,5 +46,5 @@ declare function getSmartSessionSmartAccount(config: RhinestoneConfig, client: P
|
|
|
40
46
|
declare function getGuardianSmartAccount(config: RhinestoneConfig, client: PublicClient, chain: Chain, guardians: OwnerSet): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | undefined>;
|
|
41
47
|
declare function is7702(config: RhinestoneConfig): boolean;
|
|
42
48
|
declare function getAccountProvider(config: RhinestoneConfig): AccountProviderConfig;
|
|
43
|
-
export { getEip712Domain, getModuleInstallationCalls, getModuleUninstallationCalls, getAddress, checkAddress, getAccountProvider, getInitCode, signEip7702InitData, getEip7702InitCall, is7702, isDeployed, deploy, setup, toErc6492Signature, getSmartAccount, getSmartSessionSmartAccount, getGuardianSmartAccount, getPackedSignature, getTypedDataPackedSignature, isAccountError, AccountError, AccountConfigurationNotSupportedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, SmartSessionsNotEnabledError, WalletClientNoConnectedAccountError, };
|
|
49
|
+
export { getEip712Domain, getModuleInstallationCalls, getModuleUninstallationCalls, getAddress, checkAddress, getAccountProvider, getInitCode, getV0InitCode, signEip7702InitData, getEip7702InitCall, is7702, isDeployed, deploy, setup, toErc6492Signature, getSmartAccount, getSmartSessionSmartAccount, getGuardianSmartAccount, getPackedSignature, getTypedDataPackedSignature, isAccountError, AccountError, AccountConfigurationNotSupportedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, SmartSessionsNotEnabledError, WalletClientNoConnectedAccountError, };
|
|
44
50
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAKV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAER,KAAK,YAAY,EAEjB,KAAK,SAAS,EAGf,MAAM,MAAM,CAAA;AAWb,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,IAAI,EACJ,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,SAAS,EACV,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,qCAAqC,EACrC,YAAY,EACZ,6BAA6B,EAC7B,8BAA8B,EAC9B,kCAAkC,EAClC,8BAA8B,EAC9B,kCAAkC,EAClC,2BAA2B,EAC3B,wCAAwC,EACxC,4BAA4B,EAC5B,cAAc,EACd,mCAAmC,EACnC,wBAAwB,EACxB,kCAAkC,EAClC,4BAA4B,EAC5B,mCAAmC,EACpC,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ exports.getAddress = getAddress;
|
|
|
8
8
|
exports.checkAddress = checkAddress;
|
|
9
9
|
exports.getAccountProvider = getAccountProvider;
|
|
10
10
|
exports.getInitCode = getInitCode;
|
|
11
|
+
exports.getV0InitCode = getV0InitCode;
|
|
11
12
|
exports.signEip7702InitData = signEip7702InitData;
|
|
12
13
|
exports.getEip7702InitCall = getEip7702InitCall;
|
|
13
14
|
exports.is7702 = is7702;
|
|
@@ -83,6 +84,17 @@ function getDeployArgs(config) {
|
|
|
83
84
|
}
|
|
84
85
|
}
|
|
85
86
|
}
|
|
87
|
+
function getV0DeployArgs(config) {
|
|
88
|
+
const account = getAccountProvider(config);
|
|
89
|
+
switch (account.type) {
|
|
90
|
+
case 'safe': {
|
|
91
|
+
return (0, safe_1.getV0DeployArgs)(config);
|
|
92
|
+
}
|
|
93
|
+
default: {
|
|
94
|
+
throw new Error(`Unsupported account type: ${account.type}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
86
98
|
function getInitCode(config) {
|
|
87
99
|
if (is7702(config)) {
|
|
88
100
|
return undefined;
|
|
@@ -105,6 +117,28 @@ function getInitCode(config) {
|
|
|
105
117
|
};
|
|
106
118
|
}
|
|
107
119
|
}
|
|
120
|
+
function getV0InitCode(config) {
|
|
121
|
+
if (is7702(config)) {
|
|
122
|
+
return undefined;
|
|
123
|
+
}
|
|
124
|
+
else if (config.account?.type === 'eoa') {
|
|
125
|
+
return undefined;
|
|
126
|
+
}
|
|
127
|
+
else if (config.initData) {
|
|
128
|
+
return config.initData;
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
const deployArgs = getV0DeployArgs(config);
|
|
132
|
+
if (!deployArgs) {
|
|
133
|
+
throw new error_1.FactoryArgsNotAvailableError();
|
|
134
|
+
}
|
|
135
|
+
const { factory, factoryData } = deployArgs;
|
|
136
|
+
return {
|
|
137
|
+
factory,
|
|
138
|
+
factoryData,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
}
|
|
108
142
|
async function signEip7702InitData(config) {
|
|
109
143
|
const eoa = config.eoa;
|
|
110
144
|
if (!eoa) {
|
|
@@ -11,6 +11,13 @@ declare function getDeployArgs(config: RhinestoneAccountConfig): {
|
|
|
11
11
|
implementation: `0x${string}`;
|
|
12
12
|
initializationCallData: null;
|
|
13
13
|
} | null;
|
|
14
|
+
declare function getV0DeployArgs(config: RhinestoneAccountConfig): {
|
|
15
|
+
factory: `0x${string}`;
|
|
16
|
+
factoryData: `0x${string}`;
|
|
17
|
+
salt: `0x${string}`;
|
|
18
|
+
implementation: `0x${string}`;
|
|
19
|
+
initializationCallData: null;
|
|
20
|
+
};
|
|
14
21
|
declare function getAddress(config: RhinestoneAccountConfig): `0x${string}`;
|
|
15
22
|
declare function getEip712Domain(config: RhinestoneAccountConfig, chain: Chain): {
|
|
16
23
|
name: string;
|
|
@@ -24,5 +31,5 @@ declare function packSignature(signature: Hex, validator: ValidatorConfig, trans
|
|
|
24
31
|
declare function getSmartAccount(client: PublicClient, address: Address, owners: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
25
32
|
declare function getSessionSmartAccount(client: PublicClient, address: Address, session: Session, validatorAddress: Address, enableData: EnableSessionData | null, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
26
33
|
declare function getGuardianSmartAccount(client: PublicClient, address: Address, guardians: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
27
|
-
export { getEip712Domain, getInstallData, getAddress, packSignature, getDeployArgs, getSmartAccount, getSessionSmartAccount, getGuardianSmartAccount, };
|
|
34
|
+
export { getEip712Domain, getInstallData, getAddress, packSignature, getDeployArgs, getV0DeployArgs, getSmartAccount, getSessionSmartAccount, getGuardianSmartAccount, };
|
|
28
35
|
//# sourceMappingURL=safe.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EAOV,KAAK,GAAG,EAER,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EAOV,KAAK,GAAG,EAER,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAY/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EACV,QAAQ,EACR,uBAAuB,EAEvB,OAAO,EACR,MAAM,UAAU,CAAA;AAMjB,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAoBhF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;SAmGrD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAgFvD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAiBlD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK;;;;;;EAarE;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAMvE;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,iEAWlC;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAyClC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAalC;AA0GD,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,uBAAuB,GACxB,CAAA"}
|
|
@@ -5,17 +5,21 @@ exports.getInstallData = getInstallData;
|
|
|
5
5
|
exports.getAddress = getAddress;
|
|
6
6
|
exports.packSignature = packSignature;
|
|
7
7
|
exports.getDeployArgs = getDeployArgs;
|
|
8
|
+
exports.getV0DeployArgs = getV0DeployArgs;
|
|
8
9
|
exports.getSmartAccount = getSmartAccount;
|
|
9
10
|
exports.getSessionSmartAccount = getSessionSmartAccount;
|
|
10
11
|
exports.getGuardianSmartAccount = getGuardianSmartAccount;
|
|
11
12
|
const viem_1 = require("viem");
|
|
12
13
|
const account_abstraction_1 = require("viem/account-abstraction");
|
|
13
14
|
const modules_1 = require("../modules");
|
|
15
|
+
const legacy_1 = require("../modules/legacy");
|
|
14
16
|
const validators_1 = require("../modules/validators");
|
|
15
17
|
const error_1 = require("./error");
|
|
16
18
|
const utils_1 = require("./utils");
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
+
const SAFE_7579_LAUNCHPAD_V2_ADDRESS = '0x75798463024Bda64D83c94A64Bc7D7eaB41300eF';
|
|
20
|
+
const SAFE_7579_ADAPTER_V2_ADDRESS = '0x7579f2AD53b01c3D8779Fe17928e0D48885B0003';
|
|
21
|
+
const SAFE_7579_LAUNCHPAD_V1_ADDRESS = '0x7579011aB74c46090561ea277Ba79D510c6C00ff';
|
|
22
|
+
const SAFE_7579_ADAPTER_V1_ADDRESS = '0x7579ee8307284f293b1927136486880611f20002';
|
|
19
23
|
const SAFE_SINGLETON_ADDRESS = '0x29fcb43b46531bca003ddc8fcb67ffe91900c762';
|
|
20
24
|
const SAFE_PROXY_FACTORY_ADDRESS = '0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec67';
|
|
21
25
|
const NO_SAFE_OWNER_ADDRESS = '0xbabe99e62d8bcbd3acf5ccbcfcd4f64fe75e5e72';
|
|
@@ -55,6 +59,25 @@ function getDeployArgs(config) {
|
|
|
55
59
|
...moduleSetup.fallbacks,
|
|
56
60
|
...moduleSetup.hooks,
|
|
57
61
|
];
|
|
62
|
+
const adapter = SAFE_7579_ADAPTER_V2_ADDRESS;
|
|
63
|
+
const launchpad = SAFE_7579_LAUNCHPAD_V2_ADDRESS;
|
|
64
|
+
const calldata = (0, viem_1.encodeFunctionData)({
|
|
65
|
+
abi: (0, viem_1.parseAbi)([
|
|
66
|
+
'struct ModuleInit {address module;bytes initData;uint256 moduleType}',
|
|
67
|
+
'function addSafe7579(address safe7579,ModuleInit[] calldata modules,address[] calldata attesters,uint8 threshold) external',
|
|
68
|
+
]),
|
|
69
|
+
functionName: 'addSafe7579',
|
|
70
|
+
args: [
|
|
71
|
+
adapter,
|
|
72
|
+
modules.map((m) => ({
|
|
73
|
+
module: m.address,
|
|
74
|
+
initData: m.initData,
|
|
75
|
+
moduleType: m.type,
|
|
76
|
+
})),
|
|
77
|
+
[],
|
|
78
|
+
0,
|
|
79
|
+
],
|
|
80
|
+
});
|
|
58
81
|
const initData = (0, viem_1.encodeFunctionData)({
|
|
59
82
|
abi: (0, viem_1.parseAbi)([
|
|
60
83
|
'function setup(address[] calldata _owners,uint256 _threshold,address to,bytes calldata data,address fallbackHandler,address paymentToken,uint256 payment, address paymentReceiver) external',
|
|
@@ -63,25 +86,81 @@ function getDeployArgs(config) {
|
|
|
63
86
|
args: [
|
|
64
87
|
owners,
|
|
65
88
|
threshold,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
89
|
+
launchpad,
|
|
90
|
+
calldata,
|
|
91
|
+
adapter,
|
|
92
|
+
viem_1.zeroAddress,
|
|
93
|
+
BigInt(0),
|
|
94
|
+
viem_1.zeroAddress,
|
|
95
|
+
],
|
|
96
|
+
});
|
|
97
|
+
const account = config.account;
|
|
98
|
+
const saltNonce = account?.nonce ?? 0n;
|
|
99
|
+
const factoryData = (0, viem_1.encodeFunctionData)({
|
|
100
|
+
abi: (0, viem_1.parseAbi)([
|
|
101
|
+
'function createProxyWithNonce(address singleton,bytes calldata initializer,uint256 saltNonce) external payable returns (address)',
|
|
102
|
+
]),
|
|
103
|
+
functionName: 'createProxyWithNonce',
|
|
104
|
+
args: [SAFE_SINGLETON_ADDRESS, initData, saltNonce],
|
|
105
|
+
});
|
|
106
|
+
const salt = (0, viem_1.keccak256)((0, viem_1.encodePacked)(['bytes32', 'uint256'], [(0, viem_1.keccak256)(initData), saltNonce]));
|
|
107
|
+
return {
|
|
108
|
+
factory: SAFE_PROXY_FACTORY_ADDRESS,
|
|
109
|
+
factoryData,
|
|
110
|
+
salt,
|
|
111
|
+
implementation: SAFE_SINGLETON_ADDRESS,
|
|
112
|
+
initializationCallData: null,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function getV0DeployArgs(config) {
|
|
116
|
+
if (config.initData) {
|
|
117
|
+
throw new error_1.AccountConfigurationNotSupportedError('Custom V0 accounts are not supported', 'safe');
|
|
118
|
+
}
|
|
119
|
+
const owners = getOwners(config);
|
|
120
|
+
const threshold = getThreshold(config);
|
|
121
|
+
const attesters = (0, legacy_1.getV0Attesters)();
|
|
122
|
+
const moduleSetup = (0, legacy_1.getV0Setup)(config);
|
|
123
|
+
const adapter = SAFE_7579_ADAPTER_V1_ADDRESS;
|
|
124
|
+
const launchpad = SAFE_7579_LAUNCHPAD_V1_ADDRESS;
|
|
125
|
+
const calldata = (0, viem_1.encodeFunctionData)({
|
|
126
|
+
abi: (0, viem_1.parseAbi)([
|
|
127
|
+
'struct ModuleInit {address module;bytes initData;}',
|
|
128
|
+
'function addSafe7579(address safe7579,ModuleInit[] calldata validators,ModuleInit[] calldata executors,ModuleInit[] calldata fallbacks, ModuleInit[] calldata hooks,address[] calldata attesters,uint8 threshold) external',
|
|
129
|
+
]),
|
|
130
|
+
functionName: 'addSafe7579',
|
|
131
|
+
args: [
|
|
132
|
+
adapter,
|
|
133
|
+
moduleSetup.validators.map((v) => ({
|
|
134
|
+
module: v.address,
|
|
135
|
+
initData: v.initData,
|
|
136
|
+
})),
|
|
137
|
+
moduleSetup.executors.map((e) => ({
|
|
138
|
+
module: e.address,
|
|
139
|
+
initData: e.initData,
|
|
140
|
+
})),
|
|
141
|
+
moduleSetup.fallbacks.map((f) => ({
|
|
142
|
+
module: f.address,
|
|
143
|
+
initData: f.initData,
|
|
144
|
+
})),
|
|
145
|
+
moduleSetup.hooks.map((h) => ({
|
|
146
|
+
module: h.address,
|
|
147
|
+
initData: h.initData,
|
|
148
|
+
})),
|
|
149
|
+
attesters.addresses,
|
|
150
|
+
attesters.threshold,
|
|
151
|
+
],
|
|
152
|
+
});
|
|
153
|
+
const initData = (0, viem_1.encodeFunctionData)({
|
|
154
|
+
abi: (0, viem_1.parseAbi)([
|
|
155
|
+
'function setup(address[] calldata _owners,uint256 _threshold,address to,bytes calldata data,address fallbackHandler,address paymentToken,uint256 payment, address paymentReceiver) external',
|
|
156
|
+
]),
|
|
157
|
+
functionName: 'setup',
|
|
158
|
+
args: [
|
|
159
|
+
owners,
|
|
160
|
+
threshold,
|
|
161
|
+
launchpad,
|
|
162
|
+
calldata,
|
|
163
|
+
adapter,
|
|
85
164
|
viem_1.zeroAddress,
|
|
86
165
|
BigInt(0),
|
|
87
166
|
viem_1.zeroAddress,
|
|
@@ -27,7 +27,7 @@ interface GetAccountNonceParams {
|
|
|
27
27
|
}
|
|
28
28
|
declare function encode7579Calls<callType extends CallType>({ mode, callData, }: EncodeCallDataParams<callType>): Hex;
|
|
29
29
|
declare function getAccountNonce(client: Client, args: GetAccountNonceParams): Promise<bigint>;
|
|
30
|
-
declare function getBundlerClient(config: RhinestoneConfig, client: Client): import("viem/account-abstraction").BundlerClient<import("viem").HttpTransport<undefined, false>, undefined, undefined, Client, undefined>;
|
|
30
|
+
declare function getBundlerClient(config: RhinestoneConfig, client: Client): import("viem/_types/account-abstraction").BundlerClient<import("viem").HttpTransport<undefined, false>, undefined, undefined, Client, undefined>;
|
|
31
31
|
export { encode7579Calls, getAccountNonce, getBundlerClient, createTransport };
|
|
32
32
|
export type { ValidatorConfig };
|
|
33
33
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../accounts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAgBhD,OAAO,KAAK,EAAkC,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,KAAK,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAA;AAErD,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,UAAU,aAAa,CAAC,QAAQ,SAAS,QAAQ;IAC/C,IAAI,EAAE,QAAQ,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,GAAG,CAAA;CACd;AAED,UAAU,oBAAoB,CAAC,QAAQ,SAAS,QAAQ;IACtD,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC7B,QAAQ,EAAE,SAAS;QACjB,EAAE,EAAE,OAAO,CAAA;QACX,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;KACvB,EAAE,CAAA;CACJ;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAkDD,iBAAS,eAAe,CAAC,QAAQ,SAAS,QAAQ,EAAE,EAClD,IAAI,EACJ,QAAQ,GACT,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,GAAG,CAuFtC;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../accounts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAgBhD,OAAO,KAAK,EAAkC,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,KAAK,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAA;AAErD,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,UAAU,aAAa,CAAC,QAAQ,SAAS,QAAQ;IAC/C,IAAI,EAAE,QAAQ,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,GAAG,CAAA;CACd;AAED,UAAU,oBAAoB,CAAC,QAAQ,SAAS,QAAQ;IACtD,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC7B,QAAQ,EAAE,SAAS;QACjB,EAAE,EAAE,OAAO,CAAA;QACX,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;KACvB,EAAE,CAAA;CACJ;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AAkDD,iBAAS,eAAe,CAAC,QAAQ,SAAS,QAAQ,EAAE,EAClD,IAAI,EACJ,QAAQ,GACT,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,GAAG,CAuFtC;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,oJA2CjE;AAyBD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAA;AAC9E,YAAY,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -83,8 +83,8 @@ function getCompactTypedData(intentOp) {
|
|
|
83
83
|
targetChain: BigInt(element.mandate.destinationChainId),
|
|
84
84
|
fillExpiry: BigInt(element.mandate.fillDeadline),
|
|
85
85
|
},
|
|
86
|
-
v: element.mandate.v
|
|
87
|
-
minGas: BigInt(element.mandate.minGas
|
|
86
|
+
v: element.mandate.v,
|
|
87
|
+
minGas: BigInt(element.mandate.minGas),
|
|
88
88
|
originOps: element.mandate.preClaimOps.map((op) => ({
|
|
89
89
|
to: op.to,
|
|
90
90
|
value: BigInt(op.value),
|
|
@@ -17,7 +17,7 @@ interface TransactionStatus {
|
|
|
17
17
|
}
|
|
18
18
|
declare function sendTransaction(config: RhinestoneAccountConfig, transaction: Transaction): Promise<TransactionResult>;
|
|
19
19
|
declare function sendUserOperation(config: RhinestoneAccountConfig, transaction: UserOperationTransaction): Promise<UserOperationResult>;
|
|
20
|
-
declare function sendTransactionInternal(config: RhinestoneConfig, sourceChains: Chain[], targetChain: Chain, options: {
|
|
20
|
+
declare function sendTransactionInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, options: {
|
|
21
21
|
callInputs?: CallInput[];
|
|
22
22
|
gasLimit?: bigint;
|
|
23
23
|
initialTokenRequests?: TokenRequest[];
|
|
@@ -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,iCAAiC,CAAA;AAI3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAUrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EACV,aAAa,EACb,SAAS,EACT,uBAAuB,EACvB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,wBAAwB,EACzB,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,cAAc,EACd,iBAAiB,EACjB,wBAAwB,EACxB,gBAAgB,EAChB,gCAAgC,EAChC,yBAAyB,EACzB,uBAAuB,EACxB,MAAM,SAAS,CAAA;AAEhB,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAqBrE,UAAU,iBAAiB;IACzB,IAAI,EAAE;QACJ,IAAI,EAAE,GAAG,GAAG,SAAS,CAAA;QACrB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,MAAM,EAAE;QACN,IAAI,EAAE,GAAG,GAAG,SAAS,CAAA;QACrB,OAAO,EAAE,MAAM,CAAA;KAChB,EAAE,CAAA;CACJ;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,9 +32,7 @@ const POLL_MAX_WAIT_MS = 180000;
|
|
|
32
32
|
const POLL_ERROR_BACKOFF_MS = 1000;
|
|
33
33
|
const POLL_ERROR_BACKOFF_MAX_MS = 10000;
|
|
34
34
|
async function sendTransaction(config, transaction) {
|
|
35
|
-
const sourceChains = 'chain' in transaction
|
|
36
|
-
? [transaction.chain]
|
|
37
|
-
: transaction.sourceChains || [];
|
|
35
|
+
const sourceChains = 'chain' in transaction ? [transaction.chain] : transaction.sourceChains;
|
|
38
36
|
const targetChain = 'chain' in transaction ? transaction.chain : transaction.targetChain;
|
|
39
37
|
const { calls, gasLimit, tokenRequests, recipient, signers, sponsored, settlementLayers, sourceAssets, feeAsset, } = transaction;
|
|
40
38
|
const isUserOpSigner = signers?.type === 'guardians' || signers?.type === 'session';
|
|
@@ -103,15 +101,15 @@ async function sendUserOperationInternal(config, chain, callInputs, signers) {
|
|
|
103
101
|
};
|
|
104
102
|
}
|
|
105
103
|
async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, signers, sponsored, settlementLayers, sourceAssets, feeAsset, lockFunds) {
|
|
106
|
-
const intentRoute = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, sponsored ?? false, undefined, settlementLayers, sourceAssets, feeAsset, lockFunds, undefined);
|
|
104
|
+
const intentRoute = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, sponsored ?? false, undefined, undefined, settlementLayers, sourceAssets, feeAsset, lockFunds, undefined);
|
|
107
105
|
if (!intentRoute) {
|
|
108
106
|
throw new error_1.OrderPathRequiredForIntentsError();
|
|
109
107
|
}
|
|
110
108
|
const { originSignatures, destinationSignature } = await (0, utils_2.signIntent)(config, intentRoute.intentOp, signers);
|
|
111
|
-
const authorizations = config.eoa
|
|
109
|
+
const { authorizations, recipientAuthorizations } = config.eoa
|
|
112
110
|
? await (0, utils_2.signAuthorizationsInternal)(config, intentRoute)
|
|
113
|
-
: [];
|
|
114
|
-
return await (0, utils_2.submitIntentInternal)(config, sourceChains, targetChain, intentRoute.intentOp, originSignatures, destinationSignature, authorizations, false);
|
|
111
|
+
: { authorizations: [], recipientAuthorizations: [] };
|
|
112
|
+
return await (0, utils_2.submitIntentInternal)(config, sourceChains, targetChain, intentRoute.intentOp, originSignatures, destinationSignature, authorizations, recipientAuthorizations, false);
|
|
115
113
|
}
|
|
116
114
|
async function waitForExecution(config, result, acceptsPreconfirmations) {
|
|
117
115
|
const validStatuses = new Set([
|
|
@@ -84,8 +84,8 @@ function getTypedData(element, nonce, expires) {
|
|
|
84
84
|
targetChain: BigInt(mandate.destinationChainId),
|
|
85
85
|
fillExpiry: BigInt(mandate.fillDeadline),
|
|
86
86
|
},
|
|
87
|
-
v: mandate.v
|
|
88
|
-
minGas: BigInt(mandate.minGas
|
|
87
|
+
v: mandate.v,
|
|
88
|
+
minGas: BigInt(mandate.minGas),
|
|
89
89
|
originOps: mandate.preClaimOps.map((op) => ({
|
|
90
90
|
to: op.to,
|
|
91
91
|
value: BigInt(op.value),
|
|
@@ -35,13 +35,19 @@ declare function prepareUserOperation(config: RhinestoneConfig, transaction: Use
|
|
|
35
35
|
declare function resolveCallInputs(inputs: CallInput[] | undefined, config: RhinestoneConfig, chain: Chain, accountAddress: Address): Promise<CalldataInput[]>;
|
|
36
36
|
declare function signTransaction(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<SignedTransactionData>;
|
|
37
37
|
declare function signUserOperation(config: RhinestoneConfig, preparedUserOperation: PreparedUserOperationData): Promise<SignedUserOperationData>;
|
|
38
|
-
declare function signAuthorizations(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<
|
|
38
|
+
declare function signAuthorizations(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<{
|
|
39
|
+
authorizations: SignedAuthorization[];
|
|
40
|
+
recipientAuthorizations: SignedAuthorization[];
|
|
41
|
+
}>;
|
|
39
42
|
declare function signMessage(config: RhinestoneConfig, message: SignableMessage, chain: Chain, signers: SignerSet | undefined): Promise<`0x${string}`>;
|
|
40
43
|
declare function signTypedData<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(config: RhinestoneConfig, parameters: HashTypedDataParameters<typedData, primaryType>, chain: Chain, signers: SignerSet | undefined): Promise<`0x${string}`>;
|
|
41
|
-
declare function signAuthorizationsInternal(config: RhinestoneConfig, data: IntentRoute | UserOperation): Promise<
|
|
42
|
-
|
|
44
|
+
declare function signAuthorizationsInternal(config: RhinestoneConfig, data: IntentRoute | UserOperation): Promise<{
|
|
45
|
+
authorizations: SignedAuthorization[];
|
|
46
|
+
recipientAuthorizations: SignedAuthorization[];
|
|
47
|
+
}>;
|
|
48
|
+
declare function submitTransaction(config: RhinestoneConfig, signedTransaction: SignedTransactionData, authorizations: SignedAuthorizationList, recipientAuthorizations: SignedAuthorizationList, dryRun?: boolean): Promise<TransactionResult>;
|
|
43
49
|
declare function submitUserOperation(config: RhinestoneConfig, signedUserOperation: SignedUserOperationData): Promise<UserOperationResult>;
|
|
44
|
-
declare function getTokenRequests(sourceChains: Chain[], targetChain: Chain, initialTokenRequests: TokenRequest[] | undefined, settlementLayers: SettlementLayer[] | undefined): TokenRequest[];
|
|
50
|
+
declare function getTokenRequests(sourceChains: Chain[] | undefined, targetChain: Chain, initialTokenRequests: TokenRequest[] | undefined, settlementLayers: SettlementLayer[] | undefined): TokenRequest[];
|
|
45
51
|
declare function getIntentAccount(config: RhinestoneConfig, eip7702InitSignature: Hex | undefined, account: {
|
|
46
52
|
setupOps?: {
|
|
47
53
|
to: Address;
|
|
@@ -60,7 +66,7 @@ declare function getIntentAccount(config: RhinestoneConfig, eip7702InitSignature
|
|
|
60
66
|
};
|
|
61
67
|
} | undefined;
|
|
62
68
|
};
|
|
63
|
-
declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, callInputs: CalldataInput[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], recipientInput: RhinestoneAccountConfig | Address | undefined, sponsored: Sponsorship | undefined, eip7702InitSignature: Hex | undefined, settlementLayers: SettlementLayer[] | undefined, sourceAssets: SourceAssetInput | undefined, feeAsset: Address | TokenSymbol | undefined, lockFunds: boolean | undefined, account: {
|
|
69
|
+
declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, callInputs: CalldataInput[], gasLimit: bigint | undefined, tokenRequests: TokenRequest[], recipientInput: RhinestoneAccountConfig | Address | undefined, sponsored: Sponsorship | undefined, eip7702InitSignature: Hex | undefined, recipientEip7702InitSignature: Hex | undefined, settlementLayers: SettlementLayer[] | undefined, sourceAssets: SourceAssetInput | undefined, feeAsset: Address | TokenSymbol | undefined, lockFunds: boolean | undefined, account: {
|
|
64
70
|
setupOps?: {
|
|
65
71
|
to: Address;
|
|
66
72
|
data: Hex;
|
|
@@ -71,8 +77,8 @@ declare function signIntent(config: RhinestoneConfig, intentOp: IntentOp, signer
|
|
|
71
77
|
destinationSignature: `0x${string}`;
|
|
72
78
|
}>;
|
|
73
79
|
declare function getOrchestratorByChain(chainId: number, apiKey: string | undefined, orchestratorUrl?: string): import("../orchestrator").Orchestrator;
|
|
74
|
-
declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, originSignatures: Hex[], destinationSignature: Hex, authorizations: SignedAuthorizationList, dryRun: boolean): Promise<TransactionResult>;
|
|
75
|
-
declare function getValidatorAccount(config: RhinestoneConfig, signers: SignerSet | undefined, publicClient: PublicClient, chain: Chain): Promise<import("viem/account-abstraction").SmartAccount<import("viem/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | null | undefined>;
|
|
80
|
+
declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, originSignatures: Hex[], destinationSignature: Hex, authorizations: SignedAuthorizationList, recipientAuthorizations: SignedAuthorizationList, dryRun: boolean): Promise<TransactionResult>;
|
|
81
|
+
declare function getValidatorAccount(config: RhinestoneConfig, signers: SignerSet | undefined, publicClient: PublicClient, chain: Chain): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | null | undefined>;
|
|
76
82
|
declare function parseCalls(calls: CalldataInput[], chainId: number): Call[];
|
|
77
83
|
export { prepareTransaction, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, };
|
|
78
84
|
export type { IntentRoute, TransactionResult, PreparedTransactionData, PreparedUserOperationData, SignedTransactionData, SignedUserOperationData, UserOperationResult, };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAKV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAIR,KAAK,YAAY,EAEjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EAIf,MAAM,MAAM,CAAA;AACb,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;AAoCjC,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAA;AAWxB,OAAO,KAAK,EAGV,eAAe,EAGhB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAEV,IAAI,EACJ,aAAa,EACb,SAAS,EACT,uBAAuB,EACvB,gBAAgB,EAChB,SAAS,EACT,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,wBAAwB,EACzB,MAAM,UAAU,CAAA;AAMjB,UAAU,mBAAmB;IAC3B,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;IACT,KAAK,EAAE,MAAM,CAAA;CACd;AAED,UAAU,iBAAiB;IACzB,IAAI,EAAE,QAAQ,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,YAAY,CAAC,EAAE,MAAM,EAAE,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,uBAAuB;IAC/B,WAAW,EAAE,WAAW,CAAA;IACxB,WAAW,EAAE,WAAW,CAAA;CACzB;AAED,UAAU,yBAAyB;IACjC,aAAa,EAAE,aAAa,CAAA;IAC5B,IAAI,EAAE,GAAG,CAAA;IACT,WAAW,EAAE,wBAAwB,CAAA;CACtC;AAED,UAAU,qBAAsB,SAAQ,uBAAuB;IAC7D,gBAAgB,EAAE,GAAG,EAAE,CAAA;IACvB,oBAAoB,EAAE,GAAG,CAAA;CAC1B;AAED,UAAU,uBAAwB,SAAQ,yBAAyB;IACjE,SAAS,EAAE,GAAG,CAAA;CACf;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,uBAAuB,CAAC,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,13 +35,13 @@ const error_1 = require("./error");
|
|
|
35
35
|
const permit2_1 = require("./permit2");
|
|
36
36
|
const singleChainOps_1 = require("./singleChainOps");
|
|
37
37
|
async function prepareTransaction(config, transaction) {
|
|
38
|
-
const { sourceChains, targetChain, tokenRequests, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, account, recipient, } = getTransactionParams(transaction);
|
|
38
|
+
const { sourceChains, targetChain, tokenRequests, signers, sponsored, eip7702InitSignature, recipientEip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, account, recipient, } = getTransactionParams(transaction);
|
|
39
39
|
const accountAddress = (0, accounts_1.getAddress)(config);
|
|
40
40
|
const isUserOpSigner = signers?.type === 'guardians' || signers?.type === 'session';
|
|
41
41
|
if (isUserOpSigner) {
|
|
42
42
|
throw new error_1.SignerNotSupportedError();
|
|
43
43
|
}
|
|
44
|
-
const intentRoute = await prepareTransactionAsIntent(config, sourceChains, targetChain, await resolveCallInputs(transaction.calls, config, targetChain, accountAddress), transaction.gasLimit, tokenRequests, recipient, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, account);
|
|
44
|
+
const intentRoute = await prepareTransactionAsIntent(config, sourceChains, targetChain, await resolveCallInputs(transaction.calls, config, targetChain, accountAddress), transaction.gasLimit, tokenRequests, recipient, sponsored, eip7702InitSignature, recipientEip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, account);
|
|
45
45
|
return {
|
|
46
46
|
intentRoute,
|
|
47
47
|
transaction,
|
|
@@ -206,13 +206,38 @@ async function signAuthorizationsInternal(config, data) {
|
|
|
206
206
|
});
|
|
207
207
|
authorizations.push(authorization);
|
|
208
208
|
}
|
|
209
|
-
|
|
209
|
+
const requiredRecipientDelegations = 'intentOp' in data
|
|
210
|
+
? data.intentOp.signedMetadata.recipient?.requiredDelegations || {}
|
|
211
|
+
: {};
|
|
212
|
+
const recipientAuthorizations = [];
|
|
213
|
+
for (const chainId in requiredRecipientDelegations) {
|
|
214
|
+
const delegation = requiredRecipientDelegations[chainId];
|
|
215
|
+
const chain = (0, registry_1.getChainById)(Number(chainId));
|
|
216
|
+
const walletClient = (0, viem_1.createWalletClient)({
|
|
217
|
+
chain,
|
|
218
|
+
account: eoa,
|
|
219
|
+
transport: (0, utils_1.createTransport)(chain, config.provider),
|
|
220
|
+
}).extend(viem_1.publicActions);
|
|
221
|
+
const code = await walletClient.getCode({
|
|
222
|
+
address: accountAddress,
|
|
223
|
+
});
|
|
224
|
+
const isDelegated = code === (0, viem_1.concat)(['0xef0100', delegation.contract.toLowerCase()]);
|
|
225
|
+
if (isDelegated) {
|
|
226
|
+
continue;
|
|
227
|
+
}
|
|
228
|
+
const authorization = await walletClient.signAuthorization({
|
|
229
|
+
contractAddress: delegation.contract,
|
|
230
|
+
chainId: Number(chainId),
|
|
231
|
+
});
|
|
232
|
+
recipientAuthorizations.push(authorization);
|
|
233
|
+
}
|
|
234
|
+
return { authorizations, recipientAuthorizations };
|
|
210
235
|
}
|
|
211
|
-
async function submitTransaction(config, signedTransaction, authorizations, dryRun = false) {
|
|
236
|
+
async function submitTransaction(config, signedTransaction, authorizations, recipientAuthorizations, dryRun = false) {
|
|
212
237
|
const { intentRoute, transaction, originSignatures, destinationSignature } = signedTransaction;
|
|
213
238
|
const { sourceChains, targetChain } = getTransactionParams(transaction);
|
|
214
239
|
const intentOp = intentRoute.intentOp;
|
|
215
|
-
return await submitIntent(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, authorizations, dryRun);
|
|
240
|
+
return await submitIntent(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, authorizations, recipientAuthorizations, dryRun);
|
|
216
241
|
}
|
|
217
242
|
async function submitUserOperation(config, signedUserOperation) {
|
|
218
243
|
const chain = signedUserOperation.transaction.chain;
|
|
@@ -227,6 +252,7 @@ function getTransactionParams(transaction) {
|
|
|
227
252
|
const initialTokenRequests = transaction.tokenRequests;
|
|
228
253
|
const signers = transaction.signers;
|
|
229
254
|
const eip7702InitSignature = transaction.eip7702InitSignature;
|
|
255
|
+
const recipientEip7702InitSignature = transaction.recipientEip7702InitSignature;
|
|
230
256
|
const sponsored = transaction.sponsored;
|
|
231
257
|
const gasLimit = transaction.gasLimit;
|
|
232
258
|
const settlementLayers = transaction.settlementLayers;
|
|
@@ -243,6 +269,7 @@ function getTransactionParams(transaction) {
|
|
|
243
269
|
signers,
|
|
244
270
|
sponsored,
|
|
245
271
|
eip7702InitSignature,
|
|
272
|
+
recipientEip7702InitSignature,
|
|
246
273
|
gasLimit,
|
|
247
274
|
settlementLayers,
|
|
248
275
|
sourceAssets,
|
|
@@ -262,7 +289,9 @@ function getTokenRequests(sourceChains, targetChain, initialTokenRequests, settl
|
|
|
262
289
|
amount: 1n,
|
|
263
290
|
};
|
|
264
291
|
const isSameChain = (settlementLayers?.length === 1 && settlementLayers[0] === 'SAME_CHAIN') ||
|
|
265
|
-
(sourceChains
|
|
292
|
+
(sourceChains &&
|
|
293
|
+
sourceChains.length === 1 &&
|
|
294
|
+
sourceChains[0].id === targetChain.id);
|
|
266
295
|
const tokenRequests = !initialTokenRequests || initialTokenRequests.length === 0
|
|
267
296
|
? isSameChain
|
|
268
297
|
? []
|
|
@@ -315,7 +344,7 @@ function getIntentAccount(config, eip7702InitSignature, account) {
|
|
|
315
344
|
delegations,
|
|
316
345
|
};
|
|
317
346
|
}
|
|
318
|
-
async function prepareTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipientInput, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, account) {
|
|
347
|
+
async function prepareTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipientInput, sponsored, eip7702InitSignature, recipientEip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, account) {
|
|
319
348
|
if (config.account?.type === 'eoa') {
|
|
320
349
|
if (callInputs.length > 0) {
|
|
321
350
|
throw new error_1.CallsNotSupportedError();
|
|
@@ -336,7 +365,7 @@ async function prepareTransactionAsIntent(config, sourceChains, targetChain, cal
|
|
|
336
365
|
if (!recipient) {
|
|
337
366
|
return undefined;
|
|
338
367
|
}
|
|
339
|
-
return getIntentAccount(recipient,
|
|
368
|
+
return getIntentAccount(recipient, recipientEip7702InitSignature, account);
|
|
340
369
|
}
|
|
341
370
|
const intentAccount = getIntentAccount(config, eip7702InitSignature, account);
|
|
342
371
|
const recipient = getRecipient(recipientInput);
|
|
@@ -531,8 +560,8 @@ async function submitUserOp(config, chain, userOp, signature) {
|
|
|
531
560
|
chain: chain.id,
|
|
532
561
|
};
|
|
533
562
|
}
|
|
534
|
-
async function submitIntent(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, authorizations, dryRun) {
|
|
535
|
-
return submitIntentInternal(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, authorizations, dryRun);
|
|
563
|
+
async function submitIntent(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, authorizations, recipientAuthorizations, dryRun) {
|
|
564
|
+
return submitIntentInternal(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, authorizations, recipientAuthorizations, dryRun);
|
|
536
565
|
}
|
|
537
566
|
function getOrchestratorByChain(chainId, apiKey, orchestratorUrl) {
|
|
538
567
|
if (orchestratorUrl) {
|
|
@@ -543,7 +572,7 @@ function getOrchestratorByChain(chainId, apiKey, orchestratorUrl) {
|
|
|
543
572
|
: consts_1.PROD_ORCHESTRATOR_URL;
|
|
544
573
|
return (0, orchestrator_1.getOrchestrator)(apiKey, defaultOrchestratorUrl);
|
|
545
574
|
}
|
|
546
|
-
function createSignedIntentOp(intentOp, originSignatures, destinationSignature, authorizations) {
|
|
575
|
+
function createSignedIntentOp(intentOp, originSignatures, destinationSignature, authorizations, recipientAuthorizations) {
|
|
547
576
|
return {
|
|
548
577
|
...intentOp,
|
|
549
578
|
originSignatures,
|
|
@@ -558,10 +587,20 @@ function createSignedIntentOp(intentOp, originSignatures, destinationSignature,
|
|
|
558
587
|
s: authorization.s,
|
|
559
588
|
}))
|
|
560
589
|
: undefined,
|
|
590
|
+
recipientSignedAuthorizations: recipientAuthorizations.length > 0
|
|
591
|
+
? recipientAuthorizations.map((authorization) => ({
|
|
592
|
+
chainId: authorization.chainId,
|
|
593
|
+
address: authorization.address,
|
|
594
|
+
nonce: authorization.nonce,
|
|
595
|
+
yParity: authorization.yParity ?? 0,
|
|
596
|
+
r: authorization.r,
|
|
597
|
+
s: authorization.s,
|
|
598
|
+
}))
|
|
599
|
+
: undefined,
|
|
561
600
|
};
|
|
562
601
|
}
|
|
563
|
-
async function submitIntentInternal(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, authorizations, dryRun) {
|
|
564
|
-
const signedIntentOp = createSignedIntentOp(intentOp, originSignatures, destinationSignature, authorizations);
|
|
602
|
+
async function submitIntentInternal(config, sourceChains, targetChain, intentOp, originSignatures, destinationSignature, authorizations, recipientAuthorizations, dryRun) {
|
|
603
|
+
const signedIntentOp = createSignedIntentOp(intentOp, originSignatures, destinationSignature, authorizations, recipientAuthorizations);
|
|
565
604
|
const orchestrator = getOrchestratorByChain(targetChain.id, config.apiKey, config.endpointUrl);
|
|
566
605
|
const intentResults = await orchestrator.submitIntent(signedIntentOp, dryRun);
|
|
567
606
|
return {
|
package/dist/src/index.d.ts
CHANGED
|
@@ -23,10 +23,13 @@ interface RhinestoneAccount {
|
|
|
23
23
|
signEip7702InitData: () => Promise<Hex>;
|
|
24
24
|
prepareTransaction: (transaction: Transaction) => Promise<PreparedTransactionData>;
|
|
25
25
|
signTransaction: (preparedTransaction: PreparedTransactionData) => Promise<SignedTransactionData>;
|
|
26
|
-
signAuthorizations: (preparedTransaction: PreparedTransactionData) => Promise<
|
|
26
|
+
signAuthorizations: (preparedTransaction: PreparedTransactionData) => Promise<{
|
|
27
|
+
authorizations: SignedAuthorizationList;
|
|
28
|
+
recipientAuthorizations: SignedAuthorizationList;
|
|
29
|
+
}>;
|
|
27
30
|
signMessage: (message: SignableMessage, chain: Chain, signers: SignerSet | undefined) => Promise<Hex>;
|
|
28
31
|
signTypedData: <typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(parameters: HashTypedDataParameters<typedData, primaryType>, chain: Chain, signers: SignerSet | undefined) => Promise<Hex>;
|
|
29
|
-
submitTransaction: (signedTransaction: SignedTransactionData, authorizations?: SignedAuthorizationList, dryRun?: boolean) => Promise<TransactionResult>;
|
|
32
|
+
submitTransaction: (signedTransaction: SignedTransactionData, authorizations?: SignedAuthorizationList, recipientAuthorizations?: SignedAuthorizationList, dryRun?: boolean) => Promise<TransactionResult>;
|
|
30
33
|
sendTransaction: (transaction: Transaction) => Promise<TransactionResult>;
|
|
31
34
|
prepareUserOperation: (transaction: UserOperationTransaction) => Promise<PreparedUserOperationData>;
|
|
32
35
|
signUserOperation: (preparedUserOperation: PreparedUserOperationData) => Promise<SignedUserOperationData>;
|