@charterlabs/rhinestone-sdk 0.3.7 → 0.3.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/accounts/json-rpc/index.d.ts.map +1 -1
- package/dist/src/accounts/json-rpc/index.js +1 -0
- package/dist/src/accounts/json-rpc/index.test.js +5 -3
- package/dist/src/accounts/json-rpc/providers.d.ts +1 -1
- package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -1
- package/dist/src/accounts/json-rpc/providers.js +1 -5
- package/dist/src/accounts/json-rpc/providers.test.js +2 -2
- package/dist/src/accounts/startale.d.ts +3 -2
- package/dist/src/accounts/startale.d.ts.map +1 -1
- package/dist/src/accounts/startale.js +108 -19
- package/dist/src/accounts/startale.test.js +115 -18
- package/dist/src/execution/index.d.ts +2 -2
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +8 -9
- package/dist/src/execution/utils.d.ts +15 -2
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +151 -15
- package/dist/src/execution/utils.test.js +101 -0
- package/dist/src/index.d.ts +3 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -7
- package/dist/src/modules/index.d.ts +2 -2
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +5 -1
- package/dist/src/modules/validators/index.d.ts +3 -3
- package/dist/src/modules/validators/index.d.ts.map +1 -1
- package/dist/src/modules/validators/index.js +6 -1
- package/dist/src/modules/validators/smart-sessions.d.ts +11 -2
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +70 -7
- package/dist/src/modules/validators/smart-sessions.test.d.ts +2 -0
- package/dist/src/modules/validators/smart-sessions.test.d.ts.map +1 -0
- package/dist/src/modules/validators/smart-sessions.test.js +61 -0
- package/dist/src/orchestrator/client.d.ts +2 -2
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +9 -9
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.d.ts.map +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- package/dist/src/orchestrator/index.d.ts +1 -1
- package/dist/src/orchestrator/index.d.ts.map +1 -1
- package/dist/src/orchestrator/index.js +2 -2
- package/dist/src/orchestrator/types.d.ts +26 -3
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/types.d.ts +18 -7
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -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;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGjD,iBAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,
|
|
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;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGjD,iBAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAmB3E;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -14,6 +14,7 @@ function createTransport(chain, provider) {
|
|
|
14
14
|
}
|
|
15
15
|
case 'custom': {
|
|
16
16
|
const customUrl = (0, providers_1.getCustomUrl)(chain.id, provider.urls);
|
|
17
|
+
// Fall back to default provider if no custom URL configured for this chain
|
|
17
18
|
return (0, viem_1.http)(customUrl);
|
|
18
19
|
}
|
|
19
20
|
}
|
|
@@ -21,13 +21,15 @@ const index_1 = require("./index");
|
|
|
21
21
|
});
|
|
22
22
|
(0, vitest_1.expect)(transport).toBeDefined();
|
|
23
23
|
});
|
|
24
|
-
(0, vitest_1.test)('Custom
|
|
25
|
-
|
|
24
|
+
(0, vitest_1.test)('Custom falls back to default when URL not configured for chain', () => {
|
|
25
|
+
const transport = (0, index_1.createTransport)(chains_1.mainnet, {
|
|
26
26
|
type: 'custom',
|
|
27
27
|
urls: {
|
|
28
28
|
[chains_1.base.id]: 'https://my-rpc.example.com',
|
|
29
29
|
},
|
|
30
|
-
})
|
|
30
|
+
});
|
|
31
|
+
// Should not throw and return a valid transport using default provider
|
|
32
|
+
(0, vitest_1.expect)(transport).toBeDefined();
|
|
31
33
|
});
|
|
32
34
|
});
|
|
33
35
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SupportedChain } from '../../orchestrator';
|
|
2
2
|
declare function getAlchemyUrl(chainId: SupportedChain, apiKey: string): string;
|
|
3
|
-
declare function getCustomUrl(chainId: number, urls: Record<number, string>): string;
|
|
3
|
+
declare function getCustomUrl(chainId: number, urls: Record<number, string>): string | undefined;
|
|
4
4
|
export { getAlchemyUrl, getCustomUrl };
|
|
5
5
|
//# sourceMappingURL=providers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../accounts/json-rpc/providers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,iBAAS,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAetE;AAED,iBAAS,YAAY,
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../accounts/json-rpc/providers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,iBAAS,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAetE;AAED,iBAAS,YAAY,CACnB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC3B,MAAM,GAAG,SAAS,CAEpB;AAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -52,9 +52,5 @@ function getAlchemyUrl(chainId, apiKey) {
|
|
|
52
52
|
.join(apiKey);
|
|
53
53
|
}
|
|
54
54
|
function getCustomUrl(chainId, urls) {
|
|
55
|
-
|
|
56
|
-
if (!url) {
|
|
57
|
-
throw new Error(`No custom provider URL configured for chain ${chainId}`);
|
|
58
|
-
}
|
|
59
|
-
return url;
|
|
55
|
+
return urls[chainId];
|
|
60
56
|
}
|
|
@@ -21,11 +21,11 @@ const providers_1 = require("./providers");
|
|
|
21
21
|
(0, vitest_1.expect)((0, providers_1.getCustomUrl)(chains_1.arbitrum.id, urls)).toBe('https://my-rpc.example.com/mainnet');
|
|
22
22
|
(0, vitest_1.expect)((0, providers_1.getCustomUrl)(chains_1.sepolia.id, urls)).toBe('https://my-rpc.example.com/sepolia');
|
|
23
23
|
});
|
|
24
|
-
(0, vitest_1.test)('
|
|
24
|
+
(0, vitest_1.test)('Returns undefined when chain not configured', () => {
|
|
25
25
|
const urls = {
|
|
26
26
|
[chains_1.arbitrum.id]: 'https://my-rpc.example.com/mainnet',
|
|
27
27
|
};
|
|
28
|
-
(0, vitest_1.expect)((
|
|
28
|
+
(0, vitest_1.expect)((0, providers_1.getCustomUrl)(chains_1.sepolia.id, urls)).toBeUndefined();
|
|
29
29
|
});
|
|
30
30
|
(0, vitest_1.test)('Accepts HTTP URLs', () => {
|
|
31
31
|
const urls = {
|
|
@@ -2,13 +2,14 @@ import type { Address, Chain, Hex, PublicClient } from 'viem';
|
|
|
2
2
|
import type { Module } from '../modules/common';
|
|
3
3
|
import type { OwnerSet, RhinestoneAccountConfig } from '../types';
|
|
4
4
|
import type { ValidatorConfig } from './utils';
|
|
5
|
+
declare const K1_DEFAULT_VALIDATOR_ADDRESS: Address;
|
|
5
6
|
declare function getDeployArgs(config: RhinestoneAccountConfig): {
|
|
6
7
|
factory: `0x${string}`;
|
|
7
8
|
factoryData: `0x${string}`;
|
|
8
9
|
salt: `0x${string}`;
|
|
9
10
|
implementation: `0x${string}`;
|
|
10
11
|
initializationCallData: `0x${string}`;
|
|
11
|
-
};
|
|
12
|
+
} | null;
|
|
12
13
|
declare function getAddress(config: RhinestoneAccountConfig): `0x${string}`;
|
|
13
14
|
declare function getEip712Domain(config: RhinestoneAccountConfig, chain: Chain): {
|
|
14
15
|
name: string;
|
|
@@ -21,5 +22,5 @@ declare function getInstallData(module: Module): `0x${string}`;
|
|
|
21
22
|
declare function packSignature(signature: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex): Promise<`0x${string}`>;
|
|
22
23
|
declare function getSmartAccount(client: PublicClient, address: Address, owners: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">>>;
|
|
23
24
|
declare function getGuardianSmartAccount(client: PublicClient, address: Address, guardians: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">>>;
|
|
24
|
-
export { getEip712Domain, getInstallData, getAddress, packSignature, getDeployArgs, getSmartAccount, getGuardianSmartAccount, };
|
|
25
|
+
export { K1_DEFAULT_VALIDATOR_ADDRESS, getEip712Domain, getInstallData, getAddress, packSignature, getDeployArgs, getSmartAccount, getGuardianSmartAccount, };
|
|
25
26
|
//# sourceMappingURL=startale.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startale.d.ts","sourceRoot":"","sources":["../../../accounts/startale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"startale.d.ts","sourceRoot":"","sources":["../../../accounts/startale.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAc7D,OAAO,KAAK,EAAe,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE5D,OAAO,KAAK,EAEV,QAAQ,EACR,uBAAuB,EAExB,MAAM,UAAU,CAAA;AAWjB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAE9C,QAAA,MAAM,4BAA4B,EAAE,OACU,CAAA;AAW9C,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;SAwErD;AAoFD,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAmClD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK;;;;;;EAarE;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBAErC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAQvE;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,oKAUlC;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,oKAUlC;AAED,OAAO,EACL,4BAA4B,EAC5B,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,uBAAuB,GACxB,CAAA"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.K1_DEFAULT_VALIDATOR_ADDRESS = void 0;
|
|
3
4
|
exports.getEip712Domain = getEip712Domain;
|
|
4
5
|
exports.getInstallData = getInstallData;
|
|
5
6
|
exports.getAddress = getAddress;
|
|
@@ -9,19 +10,117 @@ exports.getSmartAccount = getSmartAccount;
|
|
|
9
10
|
exports.getGuardianSmartAccount = getGuardianSmartAccount;
|
|
10
11
|
const viem_1 = require("viem");
|
|
11
12
|
const modules_1 = require("../modules");
|
|
13
|
+
const core_1 = require("../modules/validators/core");
|
|
12
14
|
const error_1 = require("./error");
|
|
13
15
|
const nexus_1 = require("./nexus");
|
|
14
16
|
const K1_DEFAULT_VALIDATOR_ADDRESS = '0x00000072f286204bb934ed49d8969e86f7dec7b1';
|
|
17
|
+
exports.K1_DEFAULT_VALIDATOR_ADDRESS = K1_DEFAULT_VALIDATOR_ADDRESS;
|
|
15
18
|
const STARTALE_VERSION = '1.0.0';
|
|
16
19
|
const IMPLEMENTATION_ADDRESS = '0x000000b8f5f723a680d3d7ee624fe0bc84a6e05a';
|
|
17
20
|
const FACTORY_ADDRESS = '0x0000003b3e7b530b4f981ae80d9350392defef90';
|
|
18
21
|
const BOOTSTRAP_ADDRESS = '0x000000552a5fae3db7a8f3917c435448f49ba6a9';
|
|
19
22
|
const CREATION_CODE = '0x608060405261029d803803806100148161018c565b92833981016040828203126101885781516001600160a01b03811692909190838303610188576020810151906001600160401b03821161018857019281601f8501121561018857835161006e610069826101c5565b61018c565b9481865260208601936020838301011161018857815f926020809301865e8601015260017f754fd8b321c4649cb777ae6fdce7e89e9cceaa31a4f639795c7807eb7f1a27005d823b15610176577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561015e575f8091610146945190845af43d15610156573d91610137610069846101c5565b9283523d5f602085013e6101e0565b505b604051605e908161023f8239f35b6060916101e0565b50505034156101485763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176101b157604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116101b157601f01601f191660200190565b9061020457508051156101f557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610235575b610215575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040523615605c575f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156058573d5ff35b3d5ffd5b00';
|
|
20
23
|
function getDeployArgs(config) {
|
|
24
|
+
if (config.initData) {
|
|
25
|
+
if (!('factory' in config.initData)) {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
const { factory, factoryData } = config.initData;
|
|
29
|
+
try {
|
|
30
|
+
const decoded = (0, viem_1.decodeFunctionData)({
|
|
31
|
+
abi: (0, viem_1.parseAbi)(['function createAccount(bytes,bytes32)']),
|
|
32
|
+
data: factoryData,
|
|
33
|
+
});
|
|
34
|
+
const initData = decoded.args[0];
|
|
35
|
+
const salt = decoded.args[1];
|
|
36
|
+
const initializationCallData = (0, viem_1.encodeFunctionData)({
|
|
37
|
+
abi: (0, viem_1.parseAbi)(['function initializeAccount(bytes)']),
|
|
38
|
+
functionName: 'initializeAccount',
|
|
39
|
+
args: [initData],
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
factory,
|
|
43
|
+
factoryData,
|
|
44
|
+
salt,
|
|
45
|
+
implementation: IMPLEMENTATION_ADDRESS,
|
|
46
|
+
initializationCallData,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
21
53
|
const account = config.account;
|
|
22
54
|
const salt = account?.salt ?? viem_1.zeroHash;
|
|
23
55
|
const moduleSetup = (0, modules_1.getSetup)(config);
|
|
24
|
-
const
|
|
56
|
+
const ownerValidator = (0, core_1.getOwnerValidator)(config);
|
|
57
|
+
const isK1 = ownerValidator.address.toLowerCase() ===
|
|
58
|
+
K1_DEFAULT_VALIDATOR_ADDRESS.toLowerCase();
|
|
59
|
+
if (isK1 &&
|
|
60
|
+
config.owners &&
|
|
61
|
+
'accounts' in config.owners &&
|
|
62
|
+
config.owners.accounts.length > 1) {
|
|
63
|
+
throw new error_1.AccountConfigurationNotSupportedError('K1 validator only supports a single owner', 'startale');
|
|
64
|
+
}
|
|
65
|
+
const initData = isK1
|
|
66
|
+
? getK1InitData(config, moduleSetup)
|
|
67
|
+
: getOwnableInitData(moduleSetup);
|
|
68
|
+
const factoryData = (0, viem_1.encodeFunctionData)({
|
|
69
|
+
abi: (0, viem_1.parseAbi)(['function createAccount(bytes,bytes32)']),
|
|
70
|
+
functionName: 'createAccount',
|
|
71
|
+
args: [initData, salt],
|
|
72
|
+
});
|
|
73
|
+
const initializationCallData = (0, viem_1.encodeFunctionData)({
|
|
74
|
+
abi: (0, viem_1.parseAbi)(['function initializeAccount(bytes)']),
|
|
75
|
+
functionName: 'initializeAccount',
|
|
76
|
+
args: [initData],
|
|
77
|
+
});
|
|
78
|
+
return {
|
|
79
|
+
factory: FACTORY_ADDRESS,
|
|
80
|
+
factoryData,
|
|
81
|
+
salt,
|
|
82
|
+
implementation: IMPLEMENTATION_ADDRESS,
|
|
83
|
+
initializationCallData,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
function getK1InitData(config, moduleSetup) {
|
|
87
|
+
const ownerAddress = config.owners.accounts[0]
|
|
88
|
+
.address;
|
|
89
|
+
const validators = moduleSetup.validators.filter((v) => v.address.toLowerCase() !== K1_DEFAULT_VALIDATOR_ADDRESS.toLowerCase());
|
|
90
|
+
return (0, viem_1.encodeAbiParameters)([{ type: 'address' }, { type: 'bytes' }], [
|
|
91
|
+
BOOTSTRAP_ADDRESS,
|
|
92
|
+
(0, viem_1.encodeFunctionData)({
|
|
93
|
+
abi: (0, viem_1.parseAbi)([
|
|
94
|
+
'struct BootstrapConfig {address module;bytes initData;}',
|
|
95
|
+
'struct BootstrapPreValidationHookConfig {uint256 hookType;address module;bytes data;}',
|
|
96
|
+
'function initWithDefaultValidatorAndOtherModules(bytes calldata defaultValidatorInitData,BootstrapConfig[] calldata validators,BootstrapConfig[] calldata executors,BootstrapConfig calldata hook,BootstrapConfig[] calldata fallbacks,BootstrapPreValidationHookConfig[] calldata preValidationHooks) external payable',
|
|
97
|
+
]),
|
|
98
|
+
functionName: 'initWithDefaultValidatorAndOtherModules',
|
|
99
|
+
args: [
|
|
100
|
+
ownerAddress,
|
|
101
|
+
validators.map((v) => ({
|
|
102
|
+
module: v.address,
|
|
103
|
+
initData: v.initData,
|
|
104
|
+
})),
|
|
105
|
+
moduleSetup.executors.map((e) => ({
|
|
106
|
+
module: e.address,
|
|
107
|
+
initData: e.initData,
|
|
108
|
+
})),
|
|
109
|
+
{
|
|
110
|
+
module: viem_1.zeroAddress,
|
|
111
|
+
initData: '0x',
|
|
112
|
+
},
|
|
113
|
+
moduleSetup.fallbacks.map((f) => ({
|
|
114
|
+
module: f.address,
|
|
115
|
+
initData: f.initData,
|
|
116
|
+
})),
|
|
117
|
+
[],
|
|
118
|
+
],
|
|
119
|
+
}),
|
|
120
|
+
]);
|
|
121
|
+
}
|
|
122
|
+
function getOwnableInitData(moduleSetup) {
|
|
123
|
+
return (0, viem_1.encodeAbiParameters)([{ type: 'address' }, { type: 'bytes' }], [
|
|
25
124
|
BOOTSTRAP_ADDRESS,
|
|
26
125
|
(0, viem_1.encodeFunctionData)({
|
|
27
126
|
abi: (0, viem_1.parseAbi)([
|
|
@@ -51,26 +150,16 @@ function getDeployArgs(config) {
|
|
|
51
150
|
],
|
|
52
151
|
}),
|
|
53
152
|
]);
|
|
54
|
-
const factoryData = (0, viem_1.encodeFunctionData)({
|
|
55
|
-
abi: (0, viem_1.parseAbi)(['function createAccount(bytes,bytes32)']),
|
|
56
|
-
functionName: 'createAccount',
|
|
57
|
-
args: [initData, salt],
|
|
58
|
-
});
|
|
59
|
-
const initializationCallData = (0, viem_1.encodeFunctionData)({
|
|
60
|
-
abi: (0, viem_1.parseAbi)(['function initializeAccount(bytes)']),
|
|
61
|
-
functionName: 'initializeAccount',
|
|
62
|
-
args: [initData],
|
|
63
|
-
});
|
|
64
|
-
return {
|
|
65
|
-
factory: FACTORY_ADDRESS,
|
|
66
|
-
factoryData,
|
|
67
|
-
salt,
|
|
68
|
-
implementation: IMPLEMENTATION_ADDRESS,
|
|
69
|
-
initializationCallData,
|
|
70
|
-
};
|
|
71
153
|
}
|
|
72
154
|
function getAddress(config) {
|
|
73
|
-
const
|
|
155
|
+
const deployArgs = getDeployArgs(config);
|
|
156
|
+
if (!deployArgs) {
|
|
157
|
+
if (config.initData?.address) {
|
|
158
|
+
return config.initData.address;
|
|
159
|
+
}
|
|
160
|
+
throw new Error('Cannot derive address: deploy args not available');
|
|
161
|
+
}
|
|
162
|
+
const { factory, salt, initializationCallData } = deployArgs;
|
|
74
163
|
const accountInitData = (0, viem_1.encodeAbiParameters)([
|
|
75
164
|
{
|
|
76
165
|
name: 'address',
|
|
@@ -3,67 +3,164 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const vitest_1 = require("vitest");
|
|
4
4
|
const consts_1 = require("../../test/consts");
|
|
5
5
|
const common_1 = require("../modules/common");
|
|
6
|
+
const error_1 = require("./error");
|
|
6
7
|
const startale_1 = require("./startale");
|
|
7
8
|
const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
|
|
8
9
|
(0, vitest_1.describe)('Accounts: Startale', () => {
|
|
9
10
|
(0, vitest_1.describe)('Deploy Args', () => {
|
|
10
|
-
(0, vitest_1.test)('ECDSA
|
|
11
|
-
const
|
|
11
|
+
(0, vitest_1.test)('ECDSA owner (default/ownable)', () => {
|
|
12
|
+
const result = (0, startale_1.getDeployArgs)({
|
|
12
13
|
account: {
|
|
13
14
|
type: 'startale',
|
|
14
15
|
},
|
|
15
16
|
owners: {
|
|
16
17
|
type: 'ecdsa',
|
|
17
|
-
accounts: [consts_1.accountA
|
|
18
|
+
accounts: [consts_1.accountA],
|
|
18
19
|
},
|
|
19
20
|
});
|
|
21
|
+
(0, vitest_1.expect)(result).not.toBeNull();
|
|
22
|
+
const { factory, factoryData, salt, implementation, initializationCallData, } = result;
|
|
20
23
|
(0, vitest_1.expect)(factory).toEqual('0x0000003b3e7b530b4f981ae80d9350392defef90');
|
|
21
|
-
(0, vitest_1.expect)(factoryData).toEqual('
|
|
24
|
+
(0, vitest_1.expect)(factoryData).toEqual('0xea6d13ac000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000552a5fae3db7a8f3917c435448f49ba6a9000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003040984b2f700000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000013fdb5234e4e3162a810f54d9f7e9800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f6c02c78ded62973b43bfa523b247da0994869360000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
|
|
22
25
|
(0, vitest_1.expect)(salt).toEqual('0x0000000000000000000000000000000000000000000000000000000000000000');
|
|
23
26
|
(0, vitest_1.expect)(implementation).toEqual('0x000000b8f5f723a680d3d7ee624fe0bc84a6e05a');
|
|
24
|
-
(0, vitest_1.expect)(initializationCallData).toEqual('
|
|
27
|
+
(0, vitest_1.expect)(initializationCallData).toEqual('0x4b6a141900000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000380000000000000000000000000000000552a5fae3db7a8f3917c435448f49ba6a9000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003040984b2f700000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000026000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000013fdb5234e4e3162a810f54d9f7e9800000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f6c02c78ded62973b43bfa523b247da0994869360000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
|
|
25
28
|
});
|
|
26
|
-
(0, vitest_1.test)('
|
|
27
|
-
const
|
|
29
|
+
(0, vitest_1.test)('ECDSA owner with K1 module override', () => {
|
|
30
|
+
const result = (0, startale_1.getDeployArgs)({
|
|
28
31
|
account: {
|
|
29
32
|
type: 'startale',
|
|
30
33
|
},
|
|
31
34
|
owners: {
|
|
32
|
-
type: '
|
|
33
|
-
accounts: [consts_1.
|
|
35
|
+
type: 'ecdsa',
|
|
36
|
+
accounts: [consts_1.accountA],
|
|
37
|
+
module: startale_1.K1_DEFAULT_VALIDATOR_ADDRESS,
|
|
34
38
|
},
|
|
35
39
|
});
|
|
40
|
+
(0, vitest_1.expect)(result).not.toBeNull();
|
|
41
|
+
const { factory, factoryData, salt, implementation, initializationCallData, } = result;
|
|
36
42
|
(0, vitest_1.expect)(factory).toEqual('0x0000003b3e7b530b4f981ae80d9350392defef90');
|
|
37
|
-
(0, vitest_1.expect)(factoryData).toEqual('
|
|
43
|
+
(0, vitest_1.expect)(factoryData).toEqual('0xea6d13ac0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000552a5fae3db7a8f3917c435448f49ba6a9000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002645888596b00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000014F6C02c78Ded62973b43bfa523B247dA09948693600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
|
|
38
44
|
(0, vitest_1.expect)(salt).toEqual('0x0000000000000000000000000000000000000000000000000000000000000000');
|
|
39
45
|
(0, vitest_1.expect)(implementation).toEqual('0x000000b8f5f723a680d3d7ee624fe0bc84a6e05a');
|
|
40
|
-
(0, vitest_1.expect)(initializationCallData).toEqual('
|
|
46
|
+
(0, vitest_1.expect)(initializationCallData).toEqual('0x4b6a1419000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000002e0000000000000000000000000000000552a5fae3db7a8f3917c435448f49ba6a9000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002645888596b00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000000000001c0000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000002400000000000000000000000000000000000000000000000000000000000000014F6C02c78Ded62973b43bfa523B247dA09948693600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
|
|
47
|
+
});
|
|
48
|
+
(0, vitest_1.test)('Default and K1 produce different addresses', () => {
|
|
49
|
+
const defaultResult = (0, startale_1.getAddress)({
|
|
50
|
+
account: { type: 'startale' },
|
|
51
|
+
owners: { type: 'ecdsa', accounts: [consts_1.accountA] },
|
|
52
|
+
});
|
|
53
|
+
const k1Result = (0, startale_1.getAddress)({
|
|
54
|
+
account: { type: 'startale' },
|
|
55
|
+
owners: {
|
|
56
|
+
type: 'ecdsa',
|
|
57
|
+
accounts: [consts_1.accountA],
|
|
58
|
+
module: startale_1.K1_DEFAULT_VALIDATOR_ADDRESS,
|
|
59
|
+
},
|
|
60
|
+
});
|
|
61
|
+
(0, vitest_1.expect)(defaultResult).not.toEqual(k1Result);
|
|
62
|
+
});
|
|
63
|
+
(0, vitest_1.test)('Passkey owner (default/ownable)', () => {
|
|
64
|
+
const result = (0, startale_1.getDeployArgs)({
|
|
65
|
+
account: {
|
|
66
|
+
type: 'startale',
|
|
67
|
+
},
|
|
68
|
+
owners: {
|
|
69
|
+
type: 'passkey',
|
|
70
|
+
accounts: [consts_1.passkeyAccount],
|
|
71
|
+
},
|
|
72
|
+
});
|
|
73
|
+
(0, vitest_1.expect)(result).not.toBeNull();
|
|
74
|
+
});
|
|
75
|
+
(0, vitest_1.test)('Multiple ECDSA owners (default/ownable)', () => {
|
|
76
|
+
const result = (0, startale_1.getDeployArgs)({
|
|
77
|
+
account: {
|
|
78
|
+
type: 'startale',
|
|
79
|
+
},
|
|
80
|
+
owners: {
|
|
81
|
+
type: 'ecdsa',
|
|
82
|
+
accounts: [consts_1.accountA, consts_1.accountB],
|
|
83
|
+
},
|
|
84
|
+
});
|
|
85
|
+
(0, vitest_1.expect)(result).not.toBeNull();
|
|
86
|
+
});
|
|
87
|
+
(0, vitest_1.test)('Multiple ECDSA owners with K1 throws', () => {
|
|
88
|
+
(0, vitest_1.expect)(() => (0, startale_1.getDeployArgs)({
|
|
89
|
+
account: {
|
|
90
|
+
type: 'startale',
|
|
91
|
+
},
|
|
92
|
+
owners: {
|
|
93
|
+
type: 'ecdsa',
|
|
94
|
+
accounts: [consts_1.accountA, consts_1.accountB],
|
|
95
|
+
module: startale_1.K1_DEFAULT_VALIDATOR_ADDRESS,
|
|
96
|
+
},
|
|
97
|
+
})).toThrow(error_1.AccountConfigurationNotSupportedError);
|
|
41
98
|
});
|
|
42
99
|
});
|
|
43
100
|
(0, vitest_1.describe)('Get Address', () => {
|
|
44
|
-
(0, vitest_1.test)('ECDSA
|
|
101
|
+
(0, vitest_1.test)('ECDSA owner (default/ownable)', () => {
|
|
45
102
|
const address = (0, startale_1.getAddress)({
|
|
46
103
|
account: {
|
|
47
104
|
type: 'startale',
|
|
48
105
|
},
|
|
49
106
|
owners: {
|
|
50
107
|
type: 'ecdsa',
|
|
51
|
-
accounts: [consts_1.accountA
|
|
108
|
+
accounts: [consts_1.accountA],
|
|
52
109
|
},
|
|
53
110
|
});
|
|
54
|
-
(0, vitest_1.expect)(address).toEqual('
|
|
111
|
+
(0, vitest_1.expect)(address).toEqual('0x8cdf27ccdec0ae54029a67b2edb5391e438aa023');
|
|
55
112
|
});
|
|
56
|
-
(0, vitest_1.test)('
|
|
113
|
+
(0, vitest_1.test)('ECDSA owner with K1 module override', () => {
|
|
57
114
|
const address = (0, startale_1.getAddress)({
|
|
58
115
|
account: {
|
|
59
116
|
type: 'startale',
|
|
60
117
|
},
|
|
61
118
|
owners: {
|
|
62
|
-
type: '
|
|
63
|
-
accounts: [consts_1.
|
|
119
|
+
type: 'ecdsa',
|
|
120
|
+
accounts: [consts_1.accountA],
|
|
121
|
+
module: startale_1.K1_DEFAULT_VALIDATOR_ADDRESS,
|
|
122
|
+
},
|
|
123
|
+
});
|
|
124
|
+
(0, vitest_1.expect)(address).toEqual('0x701aa66d3a6b9c095a2dee8e650a285615cae7eb');
|
|
125
|
+
});
|
|
126
|
+
(0, vitest_1.test)('initData with address fallback', () => {
|
|
127
|
+
const expectedAddress = '0x229ca553b9863b0c8f2f03d4287cb8c73e2bede7';
|
|
128
|
+
const address = (0, startale_1.getAddress)({
|
|
129
|
+
account: {
|
|
130
|
+
type: 'startale',
|
|
131
|
+
},
|
|
132
|
+
owners: {
|
|
133
|
+
type: 'ecdsa',
|
|
134
|
+
accounts: [consts_1.accountA],
|
|
135
|
+
},
|
|
136
|
+
initData: {
|
|
137
|
+
address: expectedAddress,
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
(0, vitest_1.expect)(address).toEqual(expectedAddress);
|
|
141
|
+
});
|
|
142
|
+
(0, vitest_1.test)('initData with factory decodes correctly', () => {
|
|
143
|
+
const deployArgs = (0, startale_1.getDeployArgs)({
|
|
144
|
+
account: { type: 'startale' },
|
|
145
|
+
owners: { type: 'ecdsa', accounts: [consts_1.accountA] },
|
|
146
|
+
});
|
|
147
|
+
(0, vitest_1.expect)(deployArgs).not.toBeNull();
|
|
148
|
+
const { factory, factoryData } = deployArgs;
|
|
149
|
+
const addressFromDeploy = (0, startale_1.getAddress)({
|
|
150
|
+
account: { type: 'startale' },
|
|
151
|
+
owners: { type: 'ecdsa', accounts: [consts_1.accountA] },
|
|
152
|
+
});
|
|
153
|
+
const address = (0, startale_1.getAddress)({
|
|
154
|
+
account: { type: 'startale' },
|
|
155
|
+
owners: { type: 'ecdsa', accounts: [consts_1.accountA] },
|
|
156
|
+
initData: {
|
|
157
|
+
address: addressFromDeploy,
|
|
158
|
+
factory,
|
|
159
|
+
factoryData,
|
|
160
|
+
intentExecutorInstalled: true,
|
|
64
161
|
},
|
|
65
162
|
});
|
|
66
|
-
(0, vitest_1.expect)(address).toEqual(
|
|
163
|
+
(0, vitest_1.expect)(address).toEqual(addressFromDeploy);
|
|
67
164
|
});
|
|
68
165
|
});
|
|
69
166
|
(0, vitest_1.describe)('Get Install Data', () => {
|
|
@@ -33,10 +33,10 @@ declare function sendTransactionInternal(config: RhinestoneConfig, sourceChains:
|
|
|
33
33
|
declare function sendUserOperationInternal(config: RhinestoneConfig, chain: Chain, callInputs: CalldataInput[], signers?: SignerSet): Promise<UserOperationResult>;
|
|
34
34
|
declare function waitForExecution(config: RhinestoneConfig, result: TransactionResult | UserOperationResult, acceptsPreconfirmations: boolean): Promise<TransactionStatus | UserOperationReceipt>;
|
|
35
35
|
declare function getPortfolio(config: RhinestoneConfig, onTestnets: boolean): Promise<import("../orchestrator").Portfolio>;
|
|
36
|
-
declare function getIntentStatus(apiKey: string | undefined, endpointUrl: string | undefined, intentId: bigint,
|
|
36
|
+
declare function getIntentStatus(apiKey: string | undefined, endpointUrl: string | undefined, intentId: bigint, headers?: Record<string, string>): Promise<TransactionStatus & {
|
|
37
37
|
status: IntentOpStatus['status'];
|
|
38
38
|
}>;
|
|
39
|
-
declare function splitIntents(apiKey: string | undefined, endpointUrl: string | undefined, input: SplitIntentsInput,
|
|
39
|
+
declare function splitIntents(apiKey: string | undefined, endpointUrl: string | undefined, input: SplitIntentsInput, headers?: Record<string, string>): Promise<import("../orchestrator").SplitIntentsResult>;
|
|
40
40
|
export { sendTransaction, sendTransactionInternal, sendUserOperation, sendUserOperationInternal, waitForExecution, getPortfolio, getIntentStatus, splitIntents, isExecutionError, ExecutionError, IntentFailedError, IntentStatusTimeoutError, OrderPathRequiredForIntentsError, SessionChainRequiredError, SignerNotSupportedError, };
|
|
41
41
|
export type { TransactionStatus, TransactionResult, UserOperationResult };
|
|
42
42
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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;AAG3E,OAAO,EAML,KAAK,cAAc,EAGnB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AAMxB,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;AAChB,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAA;AAoBrE,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,8BAkCzB;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,wBAAwB,gCAetC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,KAAK,EAAE,GAAG,SAAS,EACjC,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE;IACP,UAAU,CAAC,EAAE,SAAS,EAAE,CAAA;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,oBAAoB,CAAC,EAAE,YAAY,EAAE,CAAA;IACrC,SAAS,CAAC,EAAE,uBAAuB,GAAG,OAAO,CAAA;IAC7C,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,oBAAoB,CAAC,EAAE,GAAG,CAAA;IAC1B,gBAAgB,CAAC,EAAE,eAAe,EAAE,CAAA;IACpC,YAAY,CAAC,EAAE,gBAAgB,CAAA;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,QAAQ,CAAC,EAAE,OAAO,GAAG,WAAW,CAAA;CACjC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@ const utils_2 = require("./utils");
|
|
|
26
26
|
const POLL_INITIAL_MS = 500;
|
|
27
27
|
const POLL_SLOW_AFTER_MS = 15000;
|
|
28
28
|
const POLL_SLOW_MS = 2000;
|
|
29
|
-
const POLL_MAX_WAIT_MS =
|
|
29
|
+
const POLL_MAX_WAIT_MS = 210000;
|
|
30
30
|
const POLL_ERROR_BACKOFF_MS = 1000;
|
|
31
31
|
const POLL_ERROR_BACKOFF_MAX_MS = 10000;
|
|
32
32
|
async function sendTransaction(config, transaction) {
|
|
@@ -59,8 +59,7 @@ async function sendTransactionInternal(config, sourceChains, targetChain, option
|
|
|
59
59
|
const accountAddress = (0, accounts_1.getAddress)(config);
|
|
60
60
|
const resolvedCalls = await (0, utils_2.resolveCallInputs)(options.callInputs, config, targetChain, accountAddress);
|
|
61
61
|
const tokenRequests = (0, utils_2.getTokenRequests)(targetChain, options.initialTokenRequests);
|
|
62
|
-
const sendAsUserOp = options.signers?.type === 'guardians'
|
|
63
|
-
options.signers?.type === 'experimental_session';
|
|
62
|
+
const sendAsUserOp = options.signers?.type === 'guardians';
|
|
64
63
|
if (sendAsUserOp) {
|
|
65
64
|
throw new error_1.SignerNotSupportedError();
|
|
66
65
|
}
|
|
@@ -127,7 +126,7 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
|
|
|
127
126
|
},
|
|
128
127
|
});
|
|
129
128
|
}
|
|
130
|
-
const orchestrator = (0, orchestrator_1.getOrchestrator)(config.apiKey, config.endpointUrl, config.
|
|
129
|
+
const orchestrator = (0, orchestrator_1.getOrchestrator)(config.apiKey, config.endpointUrl, config.headers);
|
|
131
130
|
try {
|
|
132
131
|
intentStatus = await orchestrator.getIntentOpStatus(result.id);
|
|
133
132
|
// reset error backoff on success
|
|
@@ -206,7 +205,7 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
|
|
|
206
205
|
}
|
|
207
206
|
async function getPortfolio(config, onTestnets) {
|
|
208
207
|
const address = (0, accounts_1.getAddress)(config);
|
|
209
|
-
const orchestrator = (0, orchestrator_1.getOrchestrator)(config.apiKey, config.endpointUrl, config.
|
|
208
|
+
const orchestrator = (0, orchestrator_1.getOrchestrator)(config.apiKey, config.endpointUrl, config.headers);
|
|
210
209
|
const supportedChainIds = (0, registry_1.getSupportedChainIds)();
|
|
211
210
|
const filteredChainIds = supportedChainIds.filter((id) => {
|
|
212
211
|
try {
|
|
@@ -218,8 +217,8 @@ async function getPortfolio(config, onTestnets) {
|
|
|
218
217
|
});
|
|
219
218
|
return orchestrator.getPortfolio(address, { chainIds: filteredChainIds });
|
|
220
219
|
}
|
|
221
|
-
async function getIntentStatus(apiKey, endpointUrl, intentId,
|
|
222
|
-
const orchestrator = (0, orchestrator_1.getOrchestrator)(apiKey, endpointUrl,
|
|
220
|
+
async function getIntentStatus(apiKey, endpointUrl, intentId, headers) {
|
|
221
|
+
const orchestrator = (0, orchestrator_1.getOrchestrator)(apiKey, endpointUrl, headers);
|
|
223
222
|
const internalStatus = await orchestrator.getIntentOpStatus(intentId);
|
|
224
223
|
return {
|
|
225
224
|
status: internalStatus.status,
|
|
@@ -233,7 +232,7 @@ async function getIntentStatus(apiKey, endpointUrl, intentId, customFetch) {
|
|
|
233
232
|
})),
|
|
234
233
|
};
|
|
235
234
|
}
|
|
236
|
-
async function splitIntents(apiKey, endpointUrl, input,
|
|
237
|
-
const orchestrator = (0, orchestrator_1.getOrchestrator)(apiKey, endpointUrl,
|
|
235
|
+
async function splitIntents(apiKey, endpointUrl, input, headers) {
|
|
236
|
+
const orchestrator = (0, orchestrator_1.getOrchestrator)(apiKey, endpointUrl, headers);
|
|
238
237
|
return orchestrator.splitIntents(input);
|
|
239
238
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type SignableMessage, type SignedAuthorization, type SignedAuthorizationList, type TypedData, type TypedDataDefinition } from 'viem';
|
|
1
|
+
import { type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type SignableMessage, type SignedAuthorization, type SignedAuthorizationList, type TypedData, type TypedDataDefinition, type TypedDataDomain } from 'viem';
|
|
2
2
|
import { type UserOperation } from 'viem/account-abstraction';
|
|
3
3
|
import { type IntentOp, type IntentRoute } from '../orchestrator';
|
|
4
4
|
import { type AuxiliaryFunds, type OriginSignature, type SettlementLayer } from '../orchestrator/types';
|
|
@@ -81,6 +81,19 @@ declare function signIntent(config: RhinestoneConfig, intentOp: IntentOp, target
|
|
|
81
81
|
declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, originSignatures: OriginSignature[], destinationSignature: Hex, targetExecutionSignature: Hex | undefined, authorizations: SignedAuthorizationList, dryRun: boolean): Promise<TransactionResult>;
|
|
82
82
|
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>;
|
|
83
83
|
declare function parseCalls(calls: CalldataInput[], chainId: number): Call[];
|
|
84
|
-
|
|
84
|
+
declare function hashErc7739TypedDataForSolady({ domain, types, primaryType, message, verifierDomain, }: {
|
|
85
|
+
domain: TypedDataDomain;
|
|
86
|
+
types: TypedData;
|
|
87
|
+
primaryType: string;
|
|
88
|
+
message: Record<string, unknown>;
|
|
89
|
+
verifierDomain: {
|
|
90
|
+
name: string;
|
|
91
|
+
version: string;
|
|
92
|
+
chainId: number;
|
|
93
|
+
verifyingContract: Address;
|
|
94
|
+
salt: Hex;
|
|
95
|
+
};
|
|
96
|
+
}): Hex;
|
|
97
|
+
export { prepareTransaction, getTransactionMessages, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, getTargetExecutionSignature, hashErc7739TypedDataForSolady, };
|
|
85
98
|
export type { IntentRoute, TransactionResult, PreparedTransactionData, PreparedUserOperationData, SignedTransactionData, SignedUserOperationData, UserOperationResult, };
|
|
86
99
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAMV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAOR,KAAK,YAAY,EAEjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,mBAAmB,EACxB,KAAK,eAAe,EAErB,MAAM,MAAM,CAAA;AACb,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;AAsCjC,OAAO,EAGL,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAA;AAMxB,OAAO,EAEL,KAAK,cAAc,EAGnB,KAAK,eAAe,EACpB,KAAK,eAAe,EAIrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,KAAK,EAEV,IAAI,EACJ,aAAa,EACb,SAAS,EAET,uBAAuB,EACvB,gBAAgB,EAChB,SAAS,EAET,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,wBAAwB,EACzB,MAAM,UAAU,CAAA;AASjB,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,eAAe,EAAE,CAAA;IACnC,oBAAoB,EAAE,GAAG,CAAA;IACzB,wBAAwB,EAAE,GAAG,GAAG,SAAS,CAAA;CAC1C;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,CAkDlC;AAED,iBAAe,oBAAoB,CACjC,MAAM,EAAE,gBAAgB,EACxB,WAAW,EAAE,wBAAwB,GACpC,OAAO,CAAC,yBAAyB,CAAC,CAgBpC;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,SAAS,EAAE,GAAG,SAAS,EAC/B,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,KAAK,EACZ,cAAc,EAAE,OAAO,GACtB,OAAO,CAAC,aAAa,EAAE,CAAC,CAkB1B;AAED,iBAAS,sBAAsB,CAC7B,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,EAAE,uBAAuB,GAC3C;IACD,MAAM,EAAE,mBAAmB,EAAE,CAAA;IAC7B,WAAW,EAAE,mBAAmB,CAAA;CACjC,CAEA;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,EAAE,uBAAuB,GAC3C,OAAO,CAAC,qBAAqB,CAAC,CA4BhC;AAED,iBAAe,2BAA2B,CACxC,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,KAAK,EAClB,OAAO,EAAE,SAAS,GAAG,SAAS,sCAuB/B;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,qBAAqB,EAAE,yBAAyB,GAC/C,OAAO,CAAC,uBAAuB,CAAC,CAYlC;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,EAAE,uBAAuB,kCAM7C;AAED,iBAAe,WAAW,CACxB,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,SAAS,GAAG,SAAS,0BAqB/B;AAED,iBAAe,aAAa,CAC1B,SAAS,SAAS,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACjE,WAAW,SAAS,MAAM,SAAS,GAAG,cAAc,GAAG,MAAM,SAAS,EAEtE,MAAM,EAAE,gBAAgB,EACxB,UAAU,EAAE,uBAAuB,CAAC,SAAS,EAAE,WAAW,CAAC,EAC3D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,OAAO,CAAC,EAAE;IACR,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,0BAoCF;AA6DD,iBAAe,0BAA0B,CACvC,MAAM,EAAE,gBAAgB,EACxB,IAAI,EAAE,WAAW,GAAG,aAAa,kCAsClC;AAED,iBAAe,iBAAiB,CAC9B,MAAM,EAAE,gBAAgB,EACxB,iBAAiB,EAAE,qBAAqB,EACxC,cAAc,EAAE,uBAAuB,EACvC,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,iBAAiB,CAAC,CAqB5B;AAED,iBAAe,mBAAmB,CAChC,MAAM,EAAE,gBAAgB,EACxB,mBAAmB,EAAE,uBAAuB,gCAO7C;AAwCD,iBAAS,gBAAgB,CACvB,WAAW,EAAE,KAAK,EAClB,oBAAoB,EAAE,YAAY,EAAE,GAAG,SAAS,kBASjD;AAkDD,iBAAS,gBAAgB,CACvB,MAAM,EAAE,gBAAgB,EACxB,oBAAoB,EAAE,GAAG,GAAG,SAAS,EACrC,OAAO,EACH;IACE,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,OAAO,CAAA;QACX,IAAI,EAAE,GAAG,CAAA;KACV,EAAE,CAAA;CACJ,GACD,SAAS;;;;YAJD,OAAO;cACL,GAAG;;;;;;;EAmBlB;AAED,iBAAe,0BAA0B,CACvC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,KAAK,EAAE,GAAG,SAAS,EACjC,WAAW,EAAE,KAAK,EAClB,UAAU,EAAE,aAAa,EAAE,EAC3B,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,aAAa,EAAE,YAAY,EAAE,EAC7B,cAAc,EAAE,uBAAuB,GAAG,OAAO,GAAG,SAAS,EAC7D,SAAS,EAAE,WAAW,GAAG,SAAS,EAClC,oBAAoB,EAAE,GAAG,GAAG,SAAS,EACrC,gBAAgB,EAAE,eAAe,EAAE,GAAG,SAAS,EAC/C,YAAY,EAAE,gBAAgB,GAAG,SAAS,EAC1C,QAAQ,EAAE,OAAO,GAAG,WAAW,GAAG,SAAS,EAC3C,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,cAAc,EAAE,cAAc,GAAG,SAAS,EAC1C,OAAO,EACH;IACE,QAAQ,CAAC,EAAE;QACT,EAAE,EAAE,OAAO,CAAA;QACX,IAAI,EAAE,GAAG,CAAA;KACV,EAAE,CAAA;CACJ,GACD,SAAS,EACb,OAAO,EAAE,SAAS,GAAG,SAAS,wBA+E/B;AAED,iBAAe,UAAU,CACvB,MAAM,EAAE,gBAAgB,EACxB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,KAAK,EAClB,OAAO,CAAC,EAAE,SAAS,EACnB,eAAe,CAAC,EAAE,OAAO;;;GA2E1B;AAmWD,iBAAe,oBAAoB,CACjC,MAAM,EAAE,gBAAgB,EACxB,YAAY,EAAE,KAAK,EAAE,GAAG,SAAS,EACjC,WAAW,EAAE,KAAK,EAClB,QAAQ,EAAE,QAAQ,EAClB,gBAAgB,EAAE,eAAe,EAAE,EACnC,oBAAoB,EAAE,GAAG,EACzB,wBAAwB,EAAE,GAAG,GAAG,SAAS,EACzC,cAAc,EAAE,uBAAuB,EACvC,MAAM,EAAE,OAAO,8BAqBhB;AAED,iBAAe,mBAAmB,CAChC,MAAM,EAAE,gBAAgB,EACxB,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,YAAY,EAAE,YAAY,EAC1B,KAAK,EAAE,KAAK,yKAoBb;AAiDD,iBAAS,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,CAMnE;AAwKD,iBAAS,6BAA6B,CAAC,EACrC,MAAM,EACN,KAAK,EACL,WAAW,EACX,OAAO,EACP,cAAc,GACf,EAAE;IACD,MAAM,EAAE,eAAe,CAAA;IACvB,KAAK,EAAE,SAAS,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAChC,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,EAAE,MAAM,CAAA;QACf,OAAO,EAAE,MAAM,CAAA;QACf,iBAAiB,EAAE,OAAO,CAAA;QAC1B,IAAI,EAAE,GAAG,CAAA;KACV,CAAA;CACF,GAAG,GAAG,CAoFN;AAED,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,eAAe,EACf,kBAAkB,EAClB,0BAA0B,EAC1B,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,0BAA0B,EAC1B,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,2BAA2B,EAC3B,6BAA6B,GAC9B,CAAA;AACD,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,qBAAqB,EACrB,uBAAuB,EACvB,mBAAmB,GACpB,CAAA"}
|