@charterlabs/rhinestone-sdk 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +31 -200
- package/dist/src/accounts/error.d.ts +8 -1
- package/dist/src/accounts/error.d.ts.map +1 -1
- package/dist/src/accounts/error.js +10 -1
- package/dist/src/accounts/index.d.ts +11 -10
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +79 -50
- package/dist/src/accounts/kernel.d.ts +3 -5
- package/dist/src/accounts/kernel.d.ts.map +1 -1
- package/dist/src/accounts/kernel.js +8 -17
- package/dist/src/accounts/kernel.test.js +10 -3
- package/dist/src/accounts/nexus.d.ts +3 -5
- package/dist/src/accounts/nexus.d.ts.map +1 -1
- package/dist/src/accounts/nexus.js +108 -57
- package/dist/src/accounts/nexus.test.js +10 -3
- package/dist/src/accounts/passport.d.ts +4 -7
- package/dist/src/accounts/passport.d.ts.map +1 -1
- package/dist/src/accounts/passport.js +0 -91
- package/dist/src/accounts/safe.d.ts +9 -4
- package/dist/src/accounts/safe.d.ts.map +1 -1
- package/dist/src/accounts/safe.js +108 -38
- package/dist/src/accounts/safe.test.js +10 -3
- package/dist/src/accounts/signing/common.d.ts +3 -3
- package/dist/src/accounts/signing/common.d.ts.map +1 -1
- package/dist/src/accounts/signing/common.js +29 -5
- package/dist/src/accounts/signing/message.js +2 -2
- package/dist/src/accounts/signing/typedData.d.ts.map +1 -1
- package/dist/src/accounts/signing/typedData.js +3 -3
- package/dist/src/accounts/startale.d.ts +2 -4
- package/dist/src/accounts/startale.d.ts.map +1 -1
- package/dist/src/accounts/startale.js +0 -4
- package/dist/src/accounts/utils.d.ts.map +1 -1
- package/dist/src/accounts/utils.js +10 -3
- package/dist/src/accounts/walletClient.d.ts.map +1 -1
- package/dist/src/accounts/walletClient.js +6 -0
- package/dist/src/actions/compact.d.ts +4 -2
- package/dist/src/actions/compact.d.ts.map +1 -1
- package/dist/src/actions/compact.js +4 -1
- package/dist/src/actions/deployment.d.ts +19 -0
- package/dist/src/actions/deployment.d.ts.map +1 -0
- package/dist/src/actions/deployment.js +78 -0
- package/dist/src/actions/index.d.ts +3 -1
- package/dist/src/actions/index.d.ts.map +1 -1
- package/dist/src/actions/index.js +12 -0
- package/dist/src/actions/smart-sessions.d.ts +17 -8
- package/dist/src/actions/smart-sessions.d.ts.map +1 -1
- package/dist/src/actions/smart-sessions.js +40 -4
- package/dist/src/errors/index.d.ts +3 -3
- package/dist/src/errors/index.d.ts.map +1 -1
- package/dist/src/errors/index.js +3 -1
- package/dist/src/execution/compact.d.ts +15 -18
- package/dist/src/execution/compact.d.ts.map +1 -1
- package/dist/src/execution/compact.js +15 -17
- package/dist/src/execution/error.d.ts +2 -8
- package/dist/src/execution/error.d.ts.map +1 -1
- package/dist/src/execution/error.js +1 -10
- package/dist/src/execution/index.d.ts +6 -6
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +22 -28
- package/dist/src/execution/permit2.d.ts +12 -17
- package/dist/src/execution/permit2.d.ts.map +1 -1
- package/dist/src/execution/permit2.js +10 -16
- package/dist/src/execution/singleChainOps.d.ts +15 -3
- package/dist/src/execution/singleChainOps.d.ts.map +1 -1
- package/dist/src/execution/singleChainOps.js +17 -3
- package/dist/src/execution/utils.d.ts +36 -12
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +180 -133
- package/dist/src/index.d.ts +26 -8
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +49 -16
- package/dist/src/modules/abi/smart-session-emissary.d.ts +696 -0
- package/dist/src/modules/abi/smart-session-emissary.d.ts.map +1 -0
- package/dist/src/modules/abi/smart-session-emissary.js +565 -0
- 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 +3 -9
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +11 -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/core.d.ts +2 -1
- package/dist/src/modules/validators/core.d.ts.map +1 -1
- package/dist/src/modules/validators/core.js +4 -1
- package/dist/src/modules/validators/index.d.ts +2 -2
- package/dist/src/modules/validators/index.d.ts.map +1 -1
- package/dist/src/modules/validators/index.js +1 -6
- package/dist/src/modules/validators/smart-sessions.d.ts +112 -23
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +426 -301
- package/dist/src/orchestrator/client.d.ts +3 -4
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +49 -53
- package/dist/src/orchestrator/error.d.ts +11 -1
- package/dist/src/orchestrator/error.d.ts.map +1 -1
- package/dist/src/orchestrator/error.js +16 -1
- package/dist/src/orchestrator/index.d.ts +5 -5
- package/dist/src/orchestrator/index.d.ts.map +1 -1
- package/dist/src/orchestrator/index.js +3 -1
- package/dist/src/orchestrator/registry.d.ts +3 -2
- package/dist/src/orchestrator/registry.d.ts.map +1 -1
- package/dist/src/orchestrator/registry.js +15 -14
- package/dist/src/orchestrator/registry.test.js +18 -1
- package/dist/src/orchestrator/types.d.ts +33 -8
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/orchestrator/types.js +15 -1
- package/dist/src/types.d.ts +57 -28
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts +14 -2
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +46 -4
- package/dist/test/utils/utils.d.ts +5 -0
- package/dist/test/utils/utils.d.ts.map +1 -0
- package/dist/test/utils/utils.js +20 -0
- package/package.json +33 -3
- package/dist/src/execution/smart-session.d.ts +0 -13
- package/dist/src/execution/smart-session.d.ts.map +0 -1
- package/dist/src/execution/smart-session.js +0 -178
- 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
- package/dist/src/modules/validators/smart-sessions.test.d.ts +0 -2
- package/dist/src/modules/validators/smart-sessions.test.d.ts.map +0 -1
- package/dist/src/modules/validators/smart-sessions.test.js +0 -222
|
@@ -6,9 +6,9 @@ exports.sendTransactionInternal = sendTransactionInternal;
|
|
|
6
6
|
exports.sendUserOperation = sendUserOperation;
|
|
7
7
|
exports.sendUserOperationInternal = sendUserOperationInternal;
|
|
8
8
|
exports.waitForExecution = waitForExecution;
|
|
9
|
-
exports.getMaxSpendableAmount = getMaxSpendableAmount;
|
|
10
9
|
exports.getPortfolio = getPortfolio;
|
|
11
10
|
exports.getIntentStatus = getIntentStatus;
|
|
11
|
+
exports.splitIntents = splitIntents;
|
|
12
12
|
const viem_1 = require("viem");
|
|
13
13
|
const chains_1 = require("viem/chains");
|
|
14
14
|
const accounts_1 = require("../accounts");
|
|
@@ -23,7 +23,6 @@ Object.defineProperty(exports, "isExecutionError", { enumerable: true, get: func
|
|
|
23
23
|
Object.defineProperty(exports, "OrderPathRequiredForIntentsError", { enumerable: true, get: function () { return error_1.OrderPathRequiredForIntentsError; } });
|
|
24
24
|
Object.defineProperty(exports, "SessionChainRequiredError", { enumerable: true, get: function () { return error_1.SessionChainRequiredError; } });
|
|
25
25
|
Object.defineProperty(exports, "SignerNotSupportedError", { enumerable: true, get: function () { return error_1.SignerNotSupportedError; } });
|
|
26
|
-
const smart_session_1 = require("./smart-session");
|
|
27
26
|
const utils_2 = require("./utils");
|
|
28
27
|
const POLL_INITIAL_MS = 500;
|
|
29
28
|
const POLL_SLOW_AFTER_MS = 15000;
|
|
@@ -32,12 +31,10 @@ const POLL_MAX_WAIT_MS = 180000;
|
|
|
32
31
|
const POLL_ERROR_BACKOFF_MS = 1000;
|
|
33
32
|
const POLL_ERROR_BACKOFF_MAX_MS = 10000;
|
|
34
33
|
async function sendTransaction(config, transaction) {
|
|
35
|
-
const sourceChains = 'chain' in transaction
|
|
36
|
-
? [transaction.chain]
|
|
37
|
-
: transaction.sourceChains || [];
|
|
34
|
+
const sourceChains = 'chain' in transaction ? [transaction.chain] : transaction.sourceChains;
|
|
38
35
|
const targetChain = 'chain' in transaction ? transaction.chain : transaction.targetChain;
|
|
39
36
|
const { calls, gasLimit, tokenRequests, recipient, signers, sponsored, settlementLayers, sourceAssets, feeAsset, } = transaction;
|
|
40
|
-
const isUserOpSigner = signers?.type === 'guardians'
|
|
37
|
+
const isUserOpSigner = signers?.type === 'guardians';
|
|
41
38
|
if (isUserOpSigner) {
|
|
42
39
|
throw new error_1.SignerNotSupportedError();
|
|
43
40
|
}
|
|
@@ -56,29 +53,24 @@ async function sendTransaction(config, transaction) {
|
|
|
56
53
|
async function sendUserOperation(config, transaction) {
|
|
57
54
|
const accountAddress = (0, accounts_1.getAddress)(config);
|
|
58
55
|
const resolvedCalls = await (0, utils_2.resolveCallInputs)(transaction.calls, config, transaction.chain, accountAddress);
|
|
59
|
-
const userOpSigner = transaction.signers?.type === 'session' ? transaction.signers.session : null;
|
|
60
|
-
if (userOpSigner) {
|
|
61
|
-
await (0, smart_session_1.enableSmartSession)(transaction.chain, config, userOpSigner);
|
|
62
|
-
}
|
|
63
|
-
// Smart sessions require a UserOp flow
|
|
64
56
|
return await sendUserOperationInternal(config, transaction.chain, resolvedCalls, transaction.signers);
|
|
65
57
|
}
|
|
66
58
|
async function sendTransactionInternal(config, sourceChains, targetChain, options) {
|
|
67
59
|
const accountAddress = (0, accounts_1.getAddress)(config);
|
|
68
60
|
const resolvedCalls = await (0, utils_2.resolveCallInputs)(options.callInputs, config, targetChain, accountAddress);
|
|
69
61
|
const tokenRequests = (0, utils_2.getTokenRequests)(sourceChains, targetChain, options.initialTokenRequests, options.settlementLayers);
|
|
70
|
-
const sendAsUserOp = options.signers?.type === 'guardians' ||
|
|
62
|
+
const sendAsUserOp = options.signers?.type === 'guardians' ||
|
|
63
|
+
options.signers?.type === 'experimental_session';
|
|
71
64
|
if (sendAsUserOp) {
|
|
72
65
|
throw new error_1.SignerNotSupportedError();
|
|
73
66
|
}
|
|
74
67
|
else {
|
|
75
|
-
return await sendTransactionAsIntent(config, sourceChains, targetChain, resolvedCalls, options.gasLimit, tokenRequests, options.recipient,
|
|
68
|
+
return await sendTransactionAsIntent(config, sourceChains, targetChain, resolvedCalls, options.gasLimit, tokenRequests, options.recipient, options.signers, options.sponsored, options.settlementLayers, options.sourceAssets, options.feeAsset, options.lockFunds);
|
|
76
69
|
}
|
|
77
70
|
}
|
|
78
71
|
async function sendUserOperationInternal(config, chain, callInputs, signers) {
|
|
79
72
|
// Make sure the account is deployed
|
|
80
73
|
await (0, accounts_1.deploy)(config, chain);
|
|
81
|
-
const withSession = signers?.type === 'session' ? signers.session : null;
|
|
82
74
|
const publicClient = (0, viem_1.createPublicClient)({
|
|
83
75
|
chain,
|
|
84
76
|
transport: (0, utils_1.createTransport)(chain, config.provider),
|
|
@@ -88,9 +80,6 @@ async function sendUserOperationInternal(config, chain, callInputs, signers) {
|
|
|
88
80
|
throw new Error('No validator account found');
|
|
89
81
|
}
|
|
90
82
|
const bundlerClient = (0, utils_1.getBundlerClient)(config, publicClient);
|
|
91
|
-
if (withSession) {
|
|
92
|
-
await (0, smart_session_1.enableSmartSession)(chain, config, withSession);
|
|
93
|
-
}
|
|
94
83
|
const calls = (0, utils_2.parseCalls)(callInputs, chain.id);
|
|
95
84
|
const hash = await bundlerClient.sendUserOperation({
|
|
96
85
|
account: validatorAccount,
|
|
@@ -102,12 +91,12 @@ async function sendUserOperationInternal(config, chain, callInputs, signers) {
|
|
|
102
91
|
chain: chain.id,
|
|
103
92
|
};
|
|
104
93
|
}
|
|
105
|
-
async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient,
|
|
106
|
-
const intentRoute = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient,
|
|
94
|
+
async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, signers, sponsored, settlementLayers, sourceAssets, feeAsset, lockFunds) {
|
|
95
|
+
const intentRoute = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, sponsored ?? false, undefined, settlementLayers, sourceAssets, feeAsset, lockFunds, undefined, signers);
|
|
107
96
|
if (!intentRoute) {
|
|
108
97
|
throw new error_1.OrderPathRequiredForIntentsError();
|
|
109
98
|
}
|
|
110
|
-
const { originSignatures, destinationSignature } = await (0, utils_2.signIntent)(config,
|
|
99
|
+
const { originSignatures, destinationSignature } = await (0, utils_2.signIntent)(config, intentRoute.intentOp, targetChain, signers);
|
|
111
100
|
const authorizations = config.eoa
|
|
112
101
|
? await (0, utils_2.signAuthorizationsInternal)(config, intentRoute)
|
|
113
102
|
: [];
|
|
@@ -132,7 +121,9 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
|
|
|
132
121
|
const now = Date.now();
|
|
133
122
|
if (now - startTs >= POLL_MAX_WAIT_MS) {
|
|
134
123
|
throw new error_1.IntentStatusTimeoutError({
|
|
135
|
-
context: {
|
|
124
|
+
context: {
|
|
125
|
+
intentId: result.id.toString(),
|
|
126
|
+
},
|
|
136
127
|
});
|
|
137
128
|
}
|
|
138
129
|
const orchestrator = (0, utils_2.getOrchestratorByChain)(result.targetChain, config.apiKey, config.endpointUrl);
|
|
@@ -177,7 +168,12 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
|
|
|
177
168
|
}
|
|
178
169
|
}
|
|
179
170
|
if (intentStatus.status === orchestrator_1.INTENT_STATUS_FAILED) {
|
|
180
|
-
|
|
171
|
+
const intentId = result.id.toString();
|
|
172
|
+
throw new error_1.IntentFailedError({
|
|
173
|
+
context: {
|
|
174
|
+
intentId,
|
|
175
|
+
},
|
|
176
|
+
});
|
|
181
177
|
}
|
|
182
178
|
return {
|
|
183
179
|
fill: {
|
|
@@ -207,12 +203,6 @@ async function waitForExecution(config, result, acceptsPreconfirmations) {
|
|
|
207
203
|
}
|
|
208
204
|
}
|
|
209
205
|
}
|
|
210
|
-
async function getMaxSpendableAmount(config, chain, token, gasUnits, sponsored = false) {
|
|
211
|
-
const address = (0, accounts_1.getAddress)(config);
|
|
212
|
-
const orchestrator = (0, utils_2.getOrchestratorByChain)(chain.id, config.apiKey, config.endpointUrl);
|
|
213
|
-
const tokenAddress = (0, registry_1.resolveTokenAddress)(token, chain.id);
|
|
214
|
-
return orchestrator.getMaxTokenAmount(address, chain.id, tokenAddress, gasUnits, sponsored);
|
|
215
|
-
}
|
|
216
206
|
async function getPortfolio(config, onTestnets) {
|
|
217
207
|
const address = (0, accounts_1.getAddress)(config);
|
|
218
208
|
const chainId = onTestnets ? chains_1.baseSepolia.id : chains_1.base.id;
|
|
@@ -236,3 +226,7 @@ async function getIntentStatus(apiKey, endpointUrl, intentId) {
|
|
|
236
226
|
})),
|
|
237
227
|
};
|
|
238
228
|
}
|
|
229
|
+
async function splitIntents(apiKey, endpointUrl, input) {
|
|
230
|
+
const orchestrator = (0, utils_2.getOrchestratorByChain)(input.chain.id, apiKey, endpointUrl);
|
|
231
|
+
return orchestrator.splitIntents(input);
|
|
232
|
+
}
|
|
@@ -36,7 +36,7 @@ declare function getTypedData(element: IntentOpElement, nonce: bigint, expires:
|
|
|
36
36
|
readonly name: "fillExpiry";
|
|
37
37
|
readonly type: "uint256";
|
|
38
38
|
}];
|
|
39
|
-
readonly
|
|
39
|
+
readonly Ops: readonly [{
|
|
40
40
|
readonly name: "to";
|
|
41
41
|
readonly type: "address";
|
|
42
42
|
}, {
|
|
@@ -46,21 +46,25 @@ declare function getTypedData(element: IntentOpElement, nonce: bigint, expires:
|
|
|
46
46
|
readonly name: "data";
|
|
47
47
|
readonly type: "bytes";
|
|
48
48
|
}];
|
|
49
|
+
readonly Op: readonly [{
|
|
50
|
+
readonly name: "vt";
|
|
51
|
+
readonly type: "bytes32";
|
|
52
|
+
}, {
|
|
53
|
+
readonly name: "ops";
|
|
54
|
+
readonly type: "Ops[]";
|
|
55
|
+
}];
|
|
49
56
|
readonly Mandate: readonly [{
|
|
50
57
|
readonly name: "target";
|
|
51
58
|
readonly type: "Target";
|
|
52
|
-
}, {
|
|
53
|
-
readonly name: "v";
|
|
54
|
-
readonly type: "uint8";
|
|
55
59
|
}, {
|
|
56
60
|
readonly name: "minGas";
|
|
57
61
|
readonly type: "uint128";
|
|
58
62
|
}, {
|
|
59
63
|
readonly name: "originOps";
|
|
60
|
-
readonly type: "Op
|
|
64
|
+
readonly type: "Op";
|
|
61
65
|
}, {
|
|
62
66
|
readonly name: "destOps";
|
|
63
|
-
readonly type: "Op
|
|
67
|
+
readonly type: "Op";
|
|
64
68
|
}, {
|
|
65
69
|
readonly name: "q";
|
|
66
70
|
readonly type: "bytes32";
|
|
@@ -98,18 +102,9 @@ declare function getTypedData(element: IntentOpElement, nonce: bigint, expires:
|
|
|
98
102
|
readonly targetChain: bigint;
|
|
99
103
|
readonly fillExpiry: bigint;
|
|
100
104
|
};
|
|
101
|
-
readonly v: number;
|
|
102
105
|
readonly minGas: bigint;
|
|
103
|
-
readonly originOps:
|
|
104
|
-
|
|
105
|
-
value: bigint;
|
|
106
|
-
data: `0x${string}`;
|
|
107
|
-
}[];
|
|
108
|
-
readonly destOps: {
|
|
109
|
-
to: `0x${string}`;
|
|
110
|
-
value: bigint;
|
|
111
|
-
data: `0x${string}`;
|
|
112
|
-
}[];
|
|
106
|
+
readonly originOps: import("../orchestrator/types").Op;
|
|
107
|
+
readonly destOps: import("../orchestrator/types").Op;
|
|
113
108
|
readonly q: `0x${string}`;
|
|
114
109
|
};
|
|
115
110
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permit2.d.ts","sourceRoot":"","sources":["../../../execution/permit2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAIX,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAQhB,iBAAS,YAAY,CACnB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM
|
|
1
|
+
{"version":3,"file":"permit2.d.ts","sourceRoot":"","sources":["../../../execution/permit2.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAIX,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,EACV,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,SAAS,CAAA;AAQhB,iBAAS,YAAY,CACnB,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwFhB;AAED,iBAAe,yBAAyB,CACtC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,OAAO,EACrB,YAAY,EAAE,GAAG,GAChB,OAAO,CAAC,MAAM,CAAC,CAyBjB;AAED,iBAAe,mBAAmB,CAChC,YAAY,EAAE,OAAO,EACrB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,MAAM,CAAC,CAuBjB;AAED;;;GAGG;AACH,iBAAS,iBAAiB,IAAI,OAAO,CAEpC;AAED;;;;;;;;;GASG;AACH,iBAAe,gBAAgB,CAC7B,OAAO,EAAE,uBAAuB,EAAE,GACjC,OAAO,CAAC,kBAAkB,CAAC,CAyE7B;AAED;;;;;;;;;;GAUG;AACH,iBAAe,qBAAqB,CAClC,OAAO,EAAE,uBAAuB,EAAE,EAClC,UAAU,CAAC,EAAE,CACX,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,uBAAuB,KAC7B,IAAI,GACR,OAAO,CAAC,kBAAkB,CAAC,CA8D7B;AAED,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EAEjB,gBAAgB,EAChB,qBAAqB,EAErB,KAAK,uBAAuB,EAC5B,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,CAAA"}
|
|
@@ -47,17 +47,20 @@ function getTypedData(element, nonce, expires) {
|
|
|
47
47
|
{ name: 'targetChain', type: 'uint256' },
|
|
48
48
|
{ name: 'fillExpiry', type: 'uint256' },
|
|
49
49
|
],
|
|
50
|
-
|
|
50
|
+
Ops: [
|
|
51
51
|
{ name: 'to', type: 'address' },
|
|
52
52
|
{ name: 'value', type: 'uint256' },
|
|
53
53
|
{ name: 'data', type: 'bytes' },
|
|
54
54
|
],
|
|
55
|
+
Op: [
|
|
56
|
+
{ name: 'vt', type: 'bytes32' },
|
|
57
|
+
{ name: 'ops', type: 'Ops[]' },
|
|
58
|
+
],
|
|
55
59
|
Mandate: [
|
|
56
60
|
{ name: 'target', type: 'Target' },
|
|
57
|
-
{ name: 'v', type: 'uint8' },
|
|
58
61
|
{ name: 'minGas', type: 'uint128' },
|
|
59
|
-
{ name: 'originOps', type: 'Op
|
|
60
|
-
{ name: 'destOps', type: 'Op
|
|
62
|
+
{ name: 'originOps', type: 'Op' },
|
|
63
|
+
{ name: 'destOps', type: 'Op' },
|
|
61
64
|
{ name: 'q', type: 'bytes32' },
|
|
62
65
|
],
|
|
63
66
|
PermitBatchWitnessTransferFrom: [
|
|
@@ -84,18 +87,9 @@ function getTypedData(element, nonce, expires) {
|
|
|
84
87
|
targetChain: BigInt(mandate.destinationChainId),
|
|
85
88
|
fillExpiry: BigInt(mandate.fillDeadline),
|
|
86
89
|
},
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
to: op.to,
|
|
91
|
-
value: BigInt(op.value),
|
|
92
|
-
data: op.data,
|
|
93
|
-
})),
|
|
94
|
-
destOps: mandate.destinationOps.map((op) => ({
|
|
95
|
-
to: op.to,
|
|
96
|
-
value: BigInt(op.value),
|
|
97
|
-
data: op.data,
|
|
98
|
-
})),
|
|
90
|
+
minGas: BigInt(mandate.minGas),
|
|
91
|
+
originOps: mandate.preClaimOps,
|
|
92
|
+
destOps: mandate.destinationOps,
|
|
99
93
|
q: (0, viem_1.keccak256)(mandate.qualifier.encodedVal),
|
|
100
94
|
},
|
|
101
95
|
},
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type {
|
|
1
|
+
import { type Address } from 'viem';
|
|
2
|
+
import type { IntentOpElement } from '../orchestrator/types';
|
|
3
3
|
declare function getTypedData(account: Address, intentExecutorAddress: Address, element: IntentOpElement, nonce: bigint): {
|
|
4
4
|
domain: {
|
|
5
5
|
name: string;
|
|
@@ -16,12 +16,24 @@ declare function getTypedData(account: Address, intentExecutorAddress: Address,
|
|
|
16
16
|
name: string;
|
|
17
17
|
type: string;
|
|
18
18
|
}[];
|
|
19
|
+
GasRefund: {
|
|
20
|
+
name: string;
|
|
21
|
+
type: string;
|
|
22
|
+
}[];
|
|
23
|
+
Ops: {
|
|
24
|
+
name: string;
|
|
25
|
+
type: string;
|
|
26
|
+
}[];
|
|
19
27
|
};
|
|
20
28
|
primaryType: "SingleChainOps";
|
|
21
29
|
message: {
|
|
22
30
|
account: `0x${string}`;
|
|
23
31
|
nonce: bigint;
|
|
24
|
-
|
|
32
|
+
op: import("../orchestrator/types").Op;
|
|
33
|
+
gasRefund: {
|
|
34
|
+
token: "0x0000000000000000000000000000000000000000";
|
|
35
|
+
exchangeRate: bigint;
|
|
36
|
+
};
|
|
25
37
|
};
|
|
26
38
|
};
|
|
27
39
|
export { getTypedData };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleChainOps.d.ts","sourceRoot":"","sources":["../../../execution/singleChainOps.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"singleChainOps.d.ts","sourceRoot":"","sources":["../../../execution/singleChainOps.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAe,MAAM,MAAM,CAAA;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5D,iBAAS,YAAY,CACnB,OAAO,EAAE,OAAO,EAChB,qBAAqB,EAAE,OAAO,EAC9B,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0Cd;AACD,OAAO,EAAE,YAAY,EAAE,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getTypedData = getTypedData;
|
|
4
|
+
const viem_1 = require("viem");
|
|
4
5
|
function getTypedData(account, intentExecutorAddress, element, nonce) {
|
|
5
|
-
const ops = element.mandate.destinationOps;
|
|
6
6
|
return {
|
|
7
7
|
domain: {
|
|
8
8
|
name: 'IntentExecutor',
|
|
@@ -14,9 +14,18 @@ function getTypedData(account, intentExecutorAddress, element, nonce) {
|
|
|
14
14
|
SingleChainOps: [
|
|
15
15
|
{ name: 'account', type: 'address' },
|
|
16
16
|
{ name: 'nonce', type: 'uint256' },
|
|
17
|
-
{ name: '
|
|
17
|
+
{ name: 'op', type: 'Op' },
|
|
18
|
+
{ name: 'gasRefund', type: 'GasRefund' },
|
|
18
19
|
],
|
|
19
20
|
Op: [
|
|
21
|
+
{ name: 'vt', type: 'bytes32' },
|
|
22
|
+
{ name: 'ops', type: 'Ops[]' },
|
|
23
|
+
],
|
|
24
|
+
GasRefund: [
|
|
25
|
+
{ name: 'token', type: 'address' },
|
|
26
|
+
{ name: 'exchangeRate', type: 'uint256' },
|
|
27
|
+
],
|
|
28
|
+
Ops: [
|
|
20
29
|
{ name: 'to', type: 'address' },
|
|
21
30
|
{ name: 'value', type: 'uint256' },
|
|
22
31
|
{ name: 'data', type: 'bytes' },
|
|
@@ -26,7 +35,12 @@ function getTypedData(account, intentExecutorAddress, element, nonce) {
|
|
|
26
35
|
message: {
|
|
27
36
|
account,
|
|
28
37
|
nonce,
|
|
29
|
-
|
|
38
|
+
op: element.mandate.destinationOps,
|
|
39
|
+
// todo
|
|
40
|
+
gasRefund: {
|
|
41
|
+
token: viem_1.zeroAddress,
|
|
42
|
+
exchangeRate: 0n,
|
|
43
|
+
},
|
|
30
44
|
},
|
|
31
45
|
};
|
|
32
46
|
}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type SignableMessage, type SignedAuthorization, type SignedAuthorizationList, type TypedData } from 'viem';
|
|
1
|
+
import { type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type SignableMessage, type SignedAuthorization, type SignedAuthorizationList, type TypedData, type TypedDataDefinition } from 'viem';
|
|
2
2
|
import { type UserOperation } from 'viem/account-abstraction';
|
|
3
3
|
import { type IntentOp, type IntentRoute } from '../orchestrator';
|
|
4
|
-
import type
|
|
5
|
-
import type { Call, CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
|
|
4
|
+
import { type OriginSignature, type SettlementLayer } from '../orchestrator/types';
|
|
5
|
+
import type { Call, CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
|
|
6
6
|
interface UserOperationResult {
|
|
7
7
|
type: 'userop';
|
|
8
8
|
hash: Hex;
|
|
@@ -24,7 +24,7 @@ interface PreparedUserOperationData {
|
|
|
24
24
|
transaction: UserOperationTransaction;
|
|
25
25
|
}
|
|
26
26
|
interface SignedTransactionData extends PreparedTransactionData {
|
|
27
|
-
originSignatures:
|
|
27
|
+
originSignatures: OriginSignature[];
|
|
28
28
|
destinationSignature: Hex;
|
|
29
29
|
}
|
|
30
30
|
interface SignedUserOperationData extends PreparedUserOperationData {
|
|
@@ -33,29 +33,53 @@ interface SignedUserOperationData extends PreparedUserOperationData {
|
|
|
33
33
|
declare function prepareTransaction(config: RhinestoneConfig, transaction: Transaction): Promise<PreparedTransactionData>;
|
|
34
34
|
declare function prepareUserOperation(config: RhinestoneConfig, transaction: UserOperationTransaction): Promise<PreparedUserOperationData>;
|
|
35
35
|
declare function resolveCallInputs(inputs: CallInput[] | undefined, config: RhinestoneConfig, chain: Chain, accountAddress: Address): Promise<CalldataInput[]>;
|
|
36
|
+
declare function getTransactionMessages(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): {
|
|
37
|
+
origin: TypedDataDefinition[];
|
|
38
|
+
destination: TypedDataDefinition;
|
|
39
|
+
};
|
|
36
40
|
declare function signTransaction(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<SignedTransactionData>;
|
|
37
41
|
declare function signUserOperation(config: RhinestoneConfig, preparedUserOperation: PreparedUserOperationData): Promise<SignedUserOperationData>;
|
|
38
42
|
declare function signAuthorizations(config: RhinestoneConfig, preparedTransaction: PreparedTransactionData): Promise<SignedAuthorization[]>;
|
|
39
43
|
declare function signMessage(config: RhinestoneConfig, message: SignableMessage, chain: Chain, signers: SignerSet | undefined): Promise<`0x${string}`>;
|
|
40
|
-
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
|
|
44
|
+
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, options?: {
|
|
45
|
+
skipErc6492?: boolean;
|
|
46
|
+
}): Promise<`0x${string}`>;
|
|
41
47
|
declare function signAuthorizationsInternal(config: RhinestoneConfig, data: IntentRoute | UserOperation): Promise<SignedAuthorization[]>;
|
|
42
48
|
declare function submitTransaction(config: RhinestoneConfig, signedTransaction: SignedTransactionData, authorizations: 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[];
|
|
45
|
-
declare function
|
|
50
|
+
declare function getTokenRequests(sourceChains: Chain[] | undefined, targetChain: Chain, initialTokenRequests: TokenRequest[] | undefined, settlementLayers: SettlementLayer[] | undefined): TokenRequest[];
|
|
51
|
+
declare function getIntentAccount(config: RhinestoneConfig, eip7702InitSignature: Hex | undefined, account: {
|
|
46
52
|
setupOps?: {
|
|
47
53
|
to: Address;
|
|
48
54
|
data: Hex;
|
|
49
55
|
}[];
|
|
50
|
-
} | undefined):
|
|
51
|
-
|
|
52
|
-
|
|
56
|
+
} | undefined): {
|
|
57
|
+
address: `0x${string}`;
|
|
58
|
+
accountType: "ERC7579" | "EOA";
|
|
59
|
+
setupOps: {
|
|
60
|
+
to: Address;
|
|
61
|
+
data: Hex;
|
|
62
|
+
}[];
|
|
63
|
+
delegations: {
|
|
64
|
+
0: {
|
|
65
|
+
contract: `0x${string}`;
|
|
66
|
+
};
|
|
67
|
+
} | undefined;
|
|
68
|
+
};
|
|
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, settlementLayers: SettlementLayer[] | undefined, sourceAssets: SourceAssetInput | undefined, feeAsset: Address | TokenSymbol | undefined, lockFunds: boolean | undefined, account: {
|
|
70
|
+
setupOps?: {
|
|
71
|
+
to: Address;
|
|
72
|
+
data: Hex;
|
|
73
|
+
}[];
|
|
74
|
+
} | undefined, signers: SignerSet | undefined): Promise<IntentRoute>;
|
|
75
|
+
declare function signIntent(config: RhinestoneConfig, intentOp: IntentOp, targetChain: Chain, signers?: SignerSet): Promise<{
|
|
76
|
+
originSignatures: OriginSignature[];
|
|
53
77
|
destinationSignature: `0x${string}`;
|
|
54
78
|
}>;
|
|
55
79
|
declare function getOrchestratorByChain(chainId: number, apiKey: string | undefined, orchestratorUrl?: string): import("../orchestrator").Orchestrator;
|
|
56
|
-
declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, originSignatures:
|
|
80
|
+
declare function submitIntentInternal(config: RhinestoneConfig, sourceChains: Chain[] | undefined, targetChain: Chain, intentOp: IntentOp, originSignatures: OriginSignature[], destinationSignature: Hex, authorizations: SignedAuthorizationList, dryRun: boolean): Promise<TransactionResult>;
|
|
57
81
|
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>;
|
|
58
82
|
declare function parseCalls(calls: CalldataInput[], chainId: number): Call[];
|
|
59
|
-
export { prepareTransaction, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, };
|
|
83
|
+
export { prepareTransaction, getTransactionMessages, signTransaction, signAuthorizations, signAuthorizationsInternal, signMessage, signTypedData, submitTransaction, prepareUserOperation, signUserOperation, submitUserOperation, getOrchestratorByChain, signIntent, prepareTransactionAsIntent, submitIntentInternal, getValidatorAccount, parseCalls, getTokenRequests, resolveCallInputs, getIntentAccount, };
|
|
60
84
|
export type { IntentRoute, TransactionResult, PreparedTransactionData, PreparedUserOperationData, SignedTransactionData, SignedUserOperationData, UserOperationResult, };
|
|
61
85
|
//# 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,EAKV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAIR,KAAK,YAAY,EAEjB,KAAK,eAAe,EACpB,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"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"}
|