@rhinestone/sdk 1.13.3 → 1.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/accounts/index.d.ts +1 -1
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +7 -7
- package/dist/src/accounts/signing/common.d.ts +5 -3
- package/dist/src/accounts/signing/common.d.ts.map +1 -1
- package/dist/src/accounts/signing/common.js +47 -23
- package/dist/src/accounts/signing/message.d.ts +2 -2
- package/dist/src/accounts/signing/message.d.ts.map +1 -1
- package/dist/src/accounts/signing/message.js +2 -2
- package/dist/src/accounts/signing/passkeys.d.ts +6 -1
- package/dist/src/accounts/signing/passkeys.d.ts.map +1 -1
- package/dist/src/accounts/signing/passkeys.js +34 -0
- package/dist/src/accounts/signing/typedData.d.ts +2 -2
- package/dist/src/accounts/signing/typedData.d.ts.map +1 -1
- package/dist/src/accounts/signing/typedData.js +2 -2
- package/dist/src/actions/mfa.d.ts +5 -4
- package/dist/src/actions/mfa.d.ts.map +1 -1
- package/dist/src/actions/mfa.js +5 -1
- package/dist/src/actions/smart-sessions.d.ts +2 -1
- package/dist/src/actions/smart-sessions.d.ts.map +1 -1
- package/dist/src/actions/smart-sessions.js +6 -0
- package/dist/src/execution/index.d.ts +2 -1
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +5 -4
- package/dist/src/execution/quoters.d.ts +7 -0
- package/dist/src/execution/quoters.d.ts.map +1 -0
- package/dist/src/execution/quoters.js +55 -0
- package/dist/src/execution/utils.d.ts +2 -2
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +25 -6
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- 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 +94 -8
- package/dist/src/modules/validators/smart-sessions/swap/abi.d.ts +3 -0
- package/dist/src/modules/validators/smart-sessions/swap/abi.d.ts.map +1 -0
- package/dist/src/modules/validators/smart-sessions/swap/abi.js +67 -0
- package/dist/src/modules/validators/smart-sessions/swap/fynd.d.ts +92 -0
- package/dist/src/modules/validators/smart-sessions/swap/fynd.d.ts.map +1 -0
- package/dist/src/modules/validators/smart-sessions/swap/fynd.js +106 -0
- package/dist/src/modules/validators/smart-sessions/swap/rhinestone.d.ts +147 -0
- package/dist/src/modules/validators/smart-sessions/swap/rhinestone.d.ts.map +1 -0
- package/dist/src/modules/validators/smart-sessions/swap/rhinestone.js +311 -0
- package/dist/src/modules/validators/smart-sessions/swap/rules.d.ts +73 -0
- package/dist/src/modules/validators/smart-sessions/swap/rules.d.ts.map +1 -0
- package/dist/src/modules/validators/smart-sessions/swap/rules.js +112 -0
- package/dist/src/modules/validators/smart-sessions/swap/scope.d.ts +18 -0
- package/dist/src/modules/validators/smart-sessions/swap/scope.d.ts.map +1 -0
- package/dist/src/modules/validators/smart-sessions/swap/scope.js +124 -0
- package/dist/src/modules/validators/smart-sessions/swap/zero-ex.d.ts +143 -0
- package/dist/src/modules/validators/smart-sessions/swap/zero-ex.d.ts.map +1 -0
- package/dist/src/modules/validators/smart-sessions/swap/zero-ex.js +170 -0
- package/dist/src/modules/validators/smart-sessions.d.ts +9 -3
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +229 -89
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- package/dist/src/orchestrator/index.d.ts +2 -2
- package/dist/src/orchestrator/index.d.ts.map +1 -1
- package/dist/src/orchestrator/types.d.ts +12 -1
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/types.d.ts +62 -3
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.narrowQuoterPin = narrowQuoterPin;
|
|
4
|
+
exports.quoterPinFromSession = quoterPinFromSession;
|
|
5
|
+
exports.venuesForSession = venuesForSession;
|
|
6
|
+
function venuesForSession(session) {
|
|
7
|
+
const via = session?.swap?.via;
|
|
8
|
+
if (!via?.length)
|
|
9
|
+
return null;
|
|
10
|
+
const quoters = new Set();
|
|
11
|
+
for (const venue of via) {
|
|
12
|
+
if (venue.id === '0x')
|
|
13
|
+
quoters.add('0x');
|
|
14
|
+
else if (venue.id === 'fynd')
|
|
15
|
+
quoters.add('fynd');
|
|
16
|
+
else if (venue.id === 'rhinestone')
|
|
17
|
+
return null;
|
|
18
|
+
else
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
return quoters;
|
|
22
|
+
}
|
|
23
|
+
function quoterPinFromSession(signers, chainIds) {
|
|
24
|
+
if (signers?.type !== 'experimental_session')
|
|
25
|
+
return undefined;
|
|
26
|
+
const relevant = new Set(chainIds);
|
|
27
|
+
const sessions = 'session' in signers
|
|
28
|
+
? [signers.session]
|
|
29
|
+
: Object.entries(signers.sessions)
|
|
30
|
+
.filter(([chainId]) => relevant.has(Number(chainId)))
|
|
31
|
+
.map(([, config]) => config.session);
|
|
32
|
+
let pinned = null;
|
|
33
|
+
for (const session of sessions) {
|
|
34
|
+
const venues = venuesForSession(session);
|
|
35
|
+
if (!venues)
|
|
36
|
+
continue;
|
|
37
|
+
if (!pinned) {
|
|
38
|
+
pinned = venues;
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
pinned = new Set([...pinned].filter((quoter) => venues.has(quoter)));
|
|
42
|
+
}
|
|
43
|
+
return pinned ? { include: [...pinned] } : undefined;
|
|
44
|
+
}
|
|
45
|
+
function narrowQuoterPin(derived, explicit) {
|
|
46
|
+
if (!explicit)
|
|
47
|
+
return derived;
|
|
48
|
+
if (!derived || !('include' in derived))
|
|
49
|
+
return explicit;
|
|
50
|
+
const allowed = new Set(derived.include);
|
|
51
|
+
const include = 'include' in explicit
|
|
52
|
+
? explicit.include.filter((quoter) => allowed.has(quoter))
|
|
53
|
+
: derived.include.filter((quoter) => !explicit.exclude.includes(quoter));
|
|
54
|
+
return { include };
|
|
55
|
+
}
|
|
@@ -2,7 +2,7 @@ import { type Address, type Chain, type HashTypedDataParameters, type Hex, type
|
|
|
2
2
|
import { type UserOperation } from 'viem/account-abstraction';
|
|
3
3
|
import type { ResolvedSessionSignerSet } from '../modules/validators/smart-sessions';
|
|
4
4
|
import { type IntentOp, type IntentRoute } from '../orchestrator';
|
|
5
|
-
import { type AppFeeRate, type AuxiliaryFunds, type OriginSignature, type ProtocolFeeRate, type SettlementLayer, type SignatureMode } from '../orchestrator/types';
|
|
5
|
+
import { type AppFeeRate, type AuxiliaryFunds, type OriginSignature, type ProtocolFeeRate, type SettlementLayer, type SignatureMode, type SwapQuoterFilter } from '../orchestrator/types';
|
|
6
6
|
import type { Call, CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, Session, SessionEnableData, SessionSignerSet, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
|
|
7
7
|
type InternalSignerSet = Exclude<SignerSet, SessionSignerSet> | ResolvedSessionSignerSet;
|
|
8
8
|
declare function resolveSignatureMode(config: RhinestoneConfig, signers: SignerSet | undefined, sourceChains: Chain[] | undefined, targetChain: Chain): Promise<SignatureMode>;
|
|
@@ -82,7 +82,7 @@ declare function prepareTransactionAsIntent(config: RhinestoneConfig, sourceChai
|
|
|
82
82
|
to: Address;
|
|
83
83
|
data: Hex;
|
|
84
84
|
}[];
|
|
85
|
-
} | undefined, signers: SignerSet | undefined, sourceCalls: Record<number, CallInput[]> | undefined, appFees?: AppFeeRate, customDeadline?: number, protocolFees?: ProtocolFeeRate): Promise<{
|
|
85
|
+
} | undefined, signers: SignerSet | undefined, sourceCalls: Record<number, CallInput[]> | undefined, appFees?: AppFeeRate, customDeadline?: number, protocolFees?: ProtocolFeeRate, quoters?: SwapQuoterFilter): Promise<{
|
|
86
86
|
intentRoute: IntentRoute;
|
|
87
87
|
intentInput: any;
|
|
88
88
|
}>;
|
|
@@ -1 +1 @@
|
|
|
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;AA8CjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,sCAAsC,CAAA;AACpF,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,WAAW,EAEjB,MAAM,iBAAiB,CAAA;AAMxB,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,cAAc,EAGnB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,eAAe,EAGpB,KAAK,aAAa,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -42,6 +42,7 @@ const utils_2 = require("../orchestrator/utils");
|
|
|
42
42
|
const compact_1 = require("./compact");
|
|
43
43
|
const error_1 = require("./error");
|
|
44
44
|
const permit2_2 = require("./permit2");
|
|
45
|
+
const quoters_1 = require("./quoters");
|
|
45
46
|
const singleChainOps_1 = require("./singleChainOps");
|
|
46
47
|
function isResolvedSessionSignerSet(signers) {
|
|
47
48
|
return (signers?.type === 'experimental_session' && 'verifyExecutions' in signers);
|
|
@@ -53,13 +54,20 @@ async function resolveSignersForChain(config, signers, chainId) {
|
|
|
53
54
|
const resolved = resolveSessionForChain(signers, chainId);
|
|
54
55
|
const enabled = await (0, validators_1.isSessionEnabled)((0, accounts_1.getAddress)(config), config.provider, resolved.session, config.useDevContracts);
|
|
55
56
|
const enableData = enabled ? undefined : resolved.enableData;
|
|
56
|
-
const
|
|
57
|
-
|
|
57
|
+
const restricted = resolved.session.restrictToActions === true ||
|
|
58
|
+
resolved.session.swap !== undefined;
|
|
59
|
+
const hasExplicitActions = !!resolved.session.actions?.length || resolved.session.swap !== undefined;
|
|
60
|
+
const verifyExecutions = restricted
|
|
61
|
+
? true
|
|
62
|
+
: (resolved.verifyExecutions ??
|
|
63
|
+
signers.verifyExecutions ??
|
|
64
|
+
hasExplicitActions);
|
|
58
65
|
return {
|
|
59
66
|
type: 'experimental_session',
|
|
60
67
|
session: resolved.session,
|
|
61
68
|
enableData,
|
|
62
69
|
verifyExecutions,
|
|
70
|
+
useDevContracts: config.useDevContracts,
|
|
63
71
|
};
|
|
64
72
|
}
|
|
65
73
|
// Picks the single signature mode that matches the bytes shape the SDK will
|
|
@@ -104,13 +112,13 @@ function resolveSessionForChain(signers, chainId) {
|
|
|
104
112
|
return { session: signers.session, enableData: signers.enableData };
|
|
105
113
|
}
|
|
106
114
|
async function prepareTransaction(config, transaction) {
|
|
107
|
-
const { sourceChains, targetChain, tokenRequests, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, appFees, customDeadline, protocolFees, lockFunds, auxiliaryFunds, account, recipient, sourceCalls, } = getTransactionParams(transaction);
|
|
115
|
+
const { sourceChains, targetChain, tokenRequests, signers, sponsored, eip7702InitSignature, settlementLayers, quoters, sourceAssets, feeAsset, appFees, customDeadline, protocolFees, lockFunds, auxiliaryFunds, account, recipient, sourceCalls, } = getTransactionParams(transaction);
|
|
108
116
|
const accountAddress = (0, accounts_1.getAddress)(config);
|
|
109
117
|
const isUserOpSigner = signers?.type === 'guardians';
|
|
110
118
|
if (isUserOpSigner) {
|
|
111
119
|
throw new error_1.SignerNotSupportedError();
|
|
112
120
|
}
|
|
113
|
-
const prepared = await prepareTransactionAsIntent(config, sourceChains, targetChain, await resolveCallInputs(transaction.calls, config, targetChain, accountAddress), transaction.gasLimit, tokenRequests, recipient, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, signers, sourceCalls, appFees, customDeadline, protocolFees);
|
|
121
|
+
const prepared = await prepareTransactionAsIntent(config, sourceChains, targetChain, await resolveCallInputs(transaction.calls, config, targetChain, accountAddress), transaction.gasLimit, tokenRequests, recipient, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, signers, sourceCalls, appFees, customDeadline, protocolFees, quoters);
|
|
114
122
|
return {
|
|
115
123
|
intentRoute: prepared.intentRoute,
|
|
116
124
|
intentInput: prepared.intentInput,
|
|
@@ -283,7 +291,7 @@ async function signTypedDataWithSession(config, chain, validator, session, param
|
|
|
283
291
|
verifyingContract,
|
|
284
292
|
salt,
|
|
285
293
|
},
|
|
286
|
-
}, (signature) => {
|
|
294
|
+
}, session.owners, (signature) => {
|
|
287
295
|
const erc7739Signature = (0, erc7739_1.wrapTypedDataSignature)({
|
|
288
296
|
domain: parameters.domain,
|
|
289
297
|
primaryType: parameters.primaryType,
|
|
@@ -350,6 +358,7 @@ function getTransactionParams(transaction) {
|
|
|
350
358
|
const sponsored = transaction.sponsored;
|
|
351
359
|
const gasLimit = transaction.gasLimit;
|
|
352
360
|
const settlementLayers = transaction.settlementLayers;
|
|
361
|
+
const quoters = transaction.quoters;
|
|
353
362
|
const sourceAssets = transaction.sourceAssets;
|
|
354
363
|
const feeAsset = transaction.feeAsset;
|
|
355
364
|
const appFees = transaction.appFees;
|
|
@@ -370,6 +379,7 @@ function getTransactionParams(transaction) {
|
|
|
370
379
|
eip7702InitSignature,
|
|
371
380
|
gasLimit,
|
|
372
381
|
settlementLayers,
|
|
382
|
+
quoters,
|
|
373
383
|
sourceAssets,
|
|
374
384
|
feeAsset,
|
|
375
385
|
appFees,
|
|
@@ -433,7 +443,7 @@ function getIntentAccount(config, eip7702InitSignature, account) {
|
|
|
433
443
|
delegations,
|
|
434
444
|
};
|
|
435
445
|
}
|
|
436
|
-
async function prepareTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipientInput, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, signers, sourceCalls, appFees, customDeadline, protocolFees) {
|
|
446
|
+
async function prepareTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipientInput, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, auxiliaryFunds, account, signers, sourceCalls, appFees, customDeadline, protocolFees, quoters) {
|
|
437
447
|
const calls = parseCalls(callInputs, targetChain.id);
|
|
438
448
|
const accountAccessList = createAccountAccessList(sourceChains, sourceAssets);
|
|
439
449
|
function getRecipient(recipient) {
|
|
@@ -522,6 +532,11 @@ async function prepareTransactionAsIntent(config, sourceChains, targetChain, cal
|
|
|
522
532
|
];
|
|
523
533
|
}
|
|
524
534
|
}
|
|
535
|
+
const sessionQuoters = (0, quoters_1.quoterPinFromSession)(signers, [
|
|
536
|
+
...(sourceChains ?? []).map((chain) => chain.id),
|
|
537
|
+
targetChain.id,
|
|
538
|
+
]);
|
|
539
|
+
const resolvedQuoters = (0, quoters_1.narrowQuoterPin)(sessionQuoters, quoters);
|
|
525
540
|
const metaIntent = {
|
|
526
541
|
destinationChainId: targetChain.id,
|
|
527
542
|
tokenRequests: tokenRequests.map((tokenRequest) => ({
|
|
@@ -555,6 +570,7 @@ async function prepareTransactionAsIntent(config, sourceChains, targetChain, cal
|
|
|
555
570
|
}
|
|
556
571
|
: undefined,
|
|
557
572
|
settlementLayers,
|
|
573
|
+
...(resolvedQuoters ? { quoters: resolvedQuoters } : {}),
|
|
558
574
|
signatureMode,
|
|
559
575
|
auxiliaryFunds,
|
|
560
576
|
},
|
|
@@ -709,6 +725,7 @@ async function signIntentTypedData(config, signers, validator, isRoot, parameter
|
|
|
709
725
|
session: signers.session,
|
|
710
726
|
verifyExecutions: true,
|
|
711
727
|
enableData: signers.enableData,
|
|
728
|
+
useDevContracts: signers.useDevContracts,
|
|
712
729
|
};
|
|
713
730
|
// signWithSession (called inside getEmissarySignature) already calls packSignature
|
|
714
731
|
// internally, so no transform is needed here
|
|
@@ -721,6 +738,7 @@ async function signIntentTypedData(config, signers, validator, isRoot, parameter
|
|
|
721
738
|
verifyExecutions: false,
|
|
722
739
|
enableData: signers.enableData,
|
|
723
740
|
claimPolicyData,
|
|
741
|
+
useDevContracts: signers.useDevContracts,
|
|
724
742
|
};
|
|
725
743
|
const eip1271Signature = await (0, accounts_1.getEip1271Signature)(config, sessionSignersForEip1271, chain, {
|
|
726
744
|
address: validator.address,
|
|
@@ -731,6 +749,7 @@ async function signIntentTypedData(config, signers, validator, isRoot, parameter
|
|
|
731
749
|
session: signers.session,
|
|
732
750
|
verifyExecutions: true,
|
|
733
751
|
enableData: signers.enableData,
|
|
752
|
+
useDevContracts: signers.useDevContracts,
|
|
734
753
|
}, chain, hash);
|
|
735
754
|
return {
|
|
736
755
|
preClaimSig: emissarySignature,
|
package/dist/src/index.d.ts
CHANGED
|
@@ -7,8 +7,8 @@ import { type BatchPermit2Result, checkERC20AllowanceDirect, getPermit2Address,
|
|
|
7
7
|
import { type IntentRoute, type PreparedTransactionData, type PreparedUserOperationData, type SignedTransactionData, type SignedUserOperationData } from './execution/utils';
|
|
8
8
|
import { MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS } from './modules';
|
|
9
9
|
import { type SessionDetails } from './modules/validators/smart-sessions';
|
|
10
|
-
import { type AppFee, type AppFeeBalances, type AppFeeRate, type ApprovalRequired, type AuxiliaryFunds, getAllSupportedChainsAndTokens, getSupportedTokens, getTokenAddress, getTokenDecimals, type IntentInput, type IntentOp, type IntentOpStatus, type Portfolio, type SettlementLayer, type SignedIntentOp, type SplitIntentsInput, type SplitIntentsResult, type TokenRequirements, type WrapRequired } from './orchestrator';
|
|
11
|
-
import type { AccountProviderConfig, AccountType, BundlerConfig, Call, CallInput, ChainSessionConfig, MultiFactorValidatorConfig, OwnableValidatorConfig, OwnerSet, PaymasterConfig, Permit2ClaimPolicy, Policy, ProviderConfig, Recovery, RhinestoneAccountConfig, RhinestoneConfig, RhinestoneSDKConfig, Session, SignerSet, TokenRequest, TokenSymbol, Transaction, UniversalActionPolicyParamCondition, UserOperationTransaction, WebauthnValidatorConfig } from './types';
|
|
10
|
+
import { type AppFee, type AppFeeBalances, type AppFeeRate, type ApprovalRequired, type AuxiliaryFunds, getAllSupportedChainsAndTokens, getSupportedTokens, getTokenAddress, getTokenDecimals, type IntentInput, type IntentOp, type IntentOpStatus, type Portfolio, type SettlementLayer, type SignedIntentOp, type SplitIntentsInput, type SplitIntentsResult, type SwapQuoter, type SwapQuoterFilter, type TokenRequirements, type WrapRequired } from './orchestrator';
|
|
11
|
+
import type { AccountProviderConfig, AccountType, BundlerConfig, Call, CallInput, ChainSessionConfig, MultiFactorValidatorConfig, OwnableValidatorConfig, OwnerSet, PaymasterConfig, Permit2ClaimPolicy, Policy, ProviderConfig, Recovery, RhinestoneAccountConfig, RhinestoneConfig, RhinestoneSDKConfig, Session, SignerSet, SwapScope, TokenRequest, TokenSymbol, Transaction, UniversalActionPolicyParamCondition, UserOperationTransaction, WebauthnValidatorConfig } from './types';
|
|
12
12
|
interface RhinestoneAccount {
|
|
13
13
|
config: RhinestoneAccountConfig;
|
|
14
14
|
deploy: (chain: Chain, params?: {
|
|
@@ -84,6 +84,6 @@ declare class RhinestoneSDK {
|
|
|
84
84
|
*/
|
|
85
85
|
getAppFeeBalances(): Promise<AppFeeBalances>;
|
|
86
86
|
}
|
|
87
|
-
export type { AccountProviderConfig, AccountType, AppFee, AppFeeBalances, AppFeeRate, ApprovalRequired, AuxiliaryFunds, BatchPermit2Result, BundlerConfig, Call, CallInput, ChainSessionConfig, IntentInput, IntentOp, IntentOpStatus, IntentRoute, MultiChainPermit2Config, MultiChainPermit2Result, MultiFactorValidatorConfig, OwnableValidatorConfig, OwnerSet, PaymasterConfig, Permit2ClaimPolicy, Policy, Portfolio, PreparedTransactionData, PreparedUserOperationData, ProviderConfig, Recovery, RhinestoneAccount, RhinestoneAccountConfig, Session, SettlementLayer, SignedIntentOp, SignedTransactionData, SignedUserOperationData, SignerSet, SplitIntentsInput, SplitIntentsResult, TokenRequest, TokenRequirements, TokenSymbol, Transaction, TransactionResult, UniversalActionPolicyParamCondition, UserOperationResult, WebauthnValidatorConfig, WrapRequired, };
|
|
87
|
+
export type { AccountProviderConfig, AccountType, AppFee, AppFeeBalances, AppFeeRate, ApprovalRequired, AuxiliaryFunds, BatchPermit2Result, BundlerConfig, Call, CallInput, ChainSessionConfig, IntentInput, IntentOp, IntentOpStatus, IntentRoute, MultiChainPermit2Config, MultiChainPermit2Result, MultiFactorValidatorConfig, OwnableValidatorConfig, OwnerSet, PaymasterConfig, Permit2ClaimPolicy, Policy, Portfolio, PreparedTransactionData, PreparedUserOperationData, ProviderConfig, Recovery, RhinestoneAccount, RhinestoneAccountConfig, Session, SettlementLayer, SignedIntentOp, SignedTransactionData, SignedUserOperationData, SignerSet, SplitIntentsInput, SplitIntentsResult, SwapQuoter, SwapQuoterFilter, SwapScope, TokenRequest, TokenRequirements, TokenSymbol, Transaction, TransactionResult, UniversalActionPolicyParamCondition, UserOperationResult, WebauthnValidatorConfig, WrapRequired, };
|
|
88
88
|
export { checkERC20AllowanceDirect, createRhinestoneAccount, deployAccountsForOwners, getAllSupportedChainsAndTokens, getPermit2Address, getSupportedTokens, getTokenAddress, getTokenDecimals, MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, RhinestoneSDK, SMART_SESSION_EMISSARY_ADDRESS, signPermit2Batch, signPermit2Sequential, WEBAUTHN_VALIDATOR_ADDRESS, walletClientToAccount, wrapParaAccount, };
|
|
89
89
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,9 +24,10 @@ declare function getValidator(owners: OwnerSet): Module;
|
|
|
24
24
|
declare function getOwnableValidator(threshold: number, owners: Address[], address?: Address): Module;
|
|
25
25
|
declare function getENSValidator(threshold: number, owners: Address[], ownerExpirations: number[]): Module;
|
|
26
26
|
declare function getWebAuthnValidator(threshold: number, webAuthnCredentials: WebauthnCredential[], address?: Address): Module;
|
|
27
|
+
declare function getStatelessValidatorData(validator: OwnableValidatorConfig | ENSValidatorConfig | WebauthnValidatorConfig): Hex;
|
|
27
28
|
declare function getMultiFactorValidator(threshold: number, validators: (OwnableValidatorConfig | ENSValidatorConfig | WebauthnValidatorConfig | null)[], address?: Address): Module;
|
|
28
29
|
declare function getSocialRecoveryValidator(guardians: Account[], threshold?: number): Module;
|
|
29
30
|
declare function supportsEip712(validator: Module): boolean;
|
|
30
|
-
export { OWNABLE_VALIDATOR_ADDRESS, ENS_HCA_MODULE, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, WEBAUTHN_V0_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, getOwnerValidator, getOwnableValidator, getENSValidator, getWebAuthnValidator, getMultiFactorValidator, getSocialRecoveryValidator, getValidator, getMockSignature, supportsEip712, ownerSetUsesEns, };
|
|
31
|
+
export { OWNABLE_VALIDATOR_ADDRESS, ENS_HCA_MODULE, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, WEBAUTHN_V0_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, getOwnerValidator, getOwnableValidator, getENSValidator, getWebAuthnValidator, getMultiFactorValidator, getStatelessValidatorData, getSocialRecoveryValidator, getValidator, getMockSignature, supportsEip712, ownerSetUsesEns, };
|
|
31
32
|
export type { WebauthnCredential };
|
|
32
33
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EAMZ,KAAK,GAAG,EAOT,MAAM,MAAM,CAAA;AAMb,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACR,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AAGjE,QAAA,MAAM,kCAAkC,EAAE,OACI,CAAA;AAC9C,QAAA,MAAM,8BAA8B,EAAE,OACQ,CAAA;AAE9C,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAG,UAAU,CAAA;IACpC,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAC9C,QAAA,MAAM,cAAc,EAAE,OAAsD,CAAA;AAC5E,QAAA,MAAM,0BAA0B,EAAE,OACY,CAAA;AAG9C,QAAA,MAAM,8BAA8B,EAAE,OACQ,CAAA;AAO9C,QAAA,MAAM,6BAA6B,EAAE,OACS,CAAA;AAS9C,iBAAS,eAAe,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAMlD;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAazD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAsDjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UAiCrC;AA2BD,iBAAS,mBAAmB,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAiBR;AAED,iBAAS,eAAe,CACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,gBAAgB,EAAE,MAAM,EAAE,GACzB,MAAM,CAsCR;AAED,iBAAS,oBAAoB,CAC3B,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CA4DR;AAED,iBAAS,yBAAyB,CAChC,SAAS,EACL,sBAAsB,GACtB,kBAAkB,GAClB,uBAAuB,GAC1B,GAAG,CAgFL;AAED,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CACR,sBAAsB,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,IAAI,CACP,EAAE,EACH,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAgDR;AAED,iBAAS,0BAA0B,CACjC,SAAS,EAAE,OAAO,EAAE,EACpB,SAAS,SAAI,GACZ,MAAM,CAyBR;AAeD,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,WAUxC;AAED,OAAO,EACL,yBAAyB,EACzB,cAAc,EACd,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,8BAA8B,EAC9B,kCAAkC,EAClC,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,CAAA;AACD,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -6,6 +6,7 @@ exports.getOwnableValidator = getOwnableValidator;
|
|
|
6
6
|
exports.getENSValidator = getENSValidator;
|
|
7
7
|
exports.getWebAuthnValidator = getWebAuthnValidator;
|
|
8
8
|
exports.getMultiFactorValidator = getMultiFactorValidator;
|
|
9
|
+
exports.getStatelessValidatorData = getStatelessValidatorData;
|
|
9
10
|
exports.getSocialRecoveryValidator = getSocialRecoveryValidator;
|
|
10
11
|
exports.getValidator = getValidator;
|
|
11
12
|
exports.getMockSignature = getMockSignature;
|
|
@@ -35,9 +36,8 @@ const WEBAUTHN_V0_VALIDATOR_ADDRESS = '0x0000000000578c4cb0e472a5462da43c495c3f3
|
|
|
35
36
|
exports.WEBAUTHN_V0_VALIDATOR_ADDRESS = WEBAUTHN_V0_VALIDATOR_ADDRESS;
|
|
36
37
|
const ECDSA_MOCK_SIGNATURE = '0x81d4b4981670cb18f99f0b4a66446df1bf5b204d24cfcb659bf38ba27a4359b5711649ec2423c5e1247245eba2964679b6a1dbb85c992ae40b9b00c6935b02ff1b';
|
|
37
38
|
const WEBAUTHN_MOCK_SIGNATURE = '0x0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001b9b86eb98fda3ed4d797d9e690588dfadf17b329a76a47cec935bebf92d7ddc80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000019b2e9410bb6850f9f660a03d609d5a844fb96bcdc87a15139b03ee22c70f469100d2b865a215c3bf786387064effa8fcedcb1d625b5148f8a1236d5e3ff11acf000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d9763050000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000867b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22396a4546696a75684557724d34534f572d7443684a625545484550343456636a634a2d42716f3166544d38222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a38303830222c2263726f73734f726967696e223a66616c73657d0000000000000000000000000000000000000000000000000000';
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
// nested in a multi-factor config.
|
|
39
|
+
// True for a direct ENS owner set or an ENS sub-validator nested in a
|
|
40
|
+
// multi-factor config. Smart Sessions use this to reject both shapes.
|
|
41
41
|
function ownerSetUsesEns(owners) {
|
|
42
42
|
return (owners.type === 'ens' ||
|
|
43
43
|
(owners.type === 'multi-factor' &&
|
|
@@ -47,9 +47,9 @@ function getOwnerValidator(config) {
|
|
|
47
47
|
if (!config.owners) {
|
|
48
48
|
throw new error_1.OwnersFieldRequiredError();
|
|
49
49
|
}
|
|
50
|
-
// ENS owners resolve to the HCA module, which is only valid for HCA
|
|
51
|
-
//
|
|
52
|
-
if (
|
|
50
|
+
// Direct ENS owners resolve to the HCA module, which is only valid for HCA
|
|
51
|
+
// accounts. Nested ENS factors use the module's stateless validation path.
|
|
52
|
+
if (config.owners.type === 'ens' && config.account?.type !== 'hca') {
|
|
53
53
|
throw new error_1.AccountConfigurationNotSupportedError('ENS owners are only supported on HCA accounts', config.account?.type ?? 'nexus');
|
|
54
54
|
}
|
|
55
55
|
return getValidator(config.owners);
|
|
@@ -68,7 +68,9 @@ function getMockSignature(ownerSet) {
|
|
|
68
68
|
case 'multi-factor': {
|
|
69
69
|
const mockValidators = ownerSet.validators.map((validator, index) => {
|
|
70
70
|
const validatorModule = getValidator(validator);
|
|
71
|
-
const signature =
|
|
71
|
+
const signature = validator.type === 'passkey'
|
|
72
|
+
? getStatelessWebAuthnMockSignature()
|
|
73
|
+
: getMockSignature(validator);
|
|
72
74
|
return {
|
|
73
75
|
packedValidatorAndId: (0, viem_1.encodePacked)(['bytes12', 'address'], [
|
|
74
76
|
(0, viem_1.pad)((0, viem_1.toHex)(index), {
|
|
@@ -114,6 +116,26 @@ function getValidator(owners) {
|
|
|
114
116
|
}
|
|
115
117
|
}
|
|
116
118
|
}
|
|
119
|
+
const WEBAUTHN_AUTH_ABI = {
|
|
120
|
+
type: 'tuple[]',
|
|
121
|
+
name: 'webAuthns',
|
|
122
|
+
components: [
|
|
123
|
+
{ type: 'bytes', name: 'authenticatorData' },
|
|
124
|
+
{ type: 'string', name: 'clientDataJSON' },
|
|
125
|
+
{ type: 'uint256', name: 'challengeIndex' },
|
|
126
|
+
{ type: 'uint256', name: 'typeIndex' },
|
|
127
|
+
{ type: 'uint256', name: 'r' },
|
|
128
|
+
{ type: 'uint256', name: 's' },
|
|
129
|
+
],
|
|
130
|
+
};
|
|
131
|
+
function getStatelessWebAuthnMockSignature() {
|
|
132
|
+
const [, , webAuthns] = (0, viem_1.decodeAbiParameters)([
|
|
133
|
+
{ type: 'bytes32[]', name: 'credIds' },
|
|
134
|
+
{ type: 'bool', name: 'usePrecompile' },
|
|
135
|
+
WEBAUTHN_AUTH_ABI,
|
|
136
|
+
], WEBAUTHN_MOCK_SIGNATURE);
|
|
137
|
+
return (0, viem_1.encodeAbiParameters)([WEBAUTHN_AUTH_ABI], [webAuthns]);
|
|
138
|
+
}
|
|
117
139
|
function getOwnableValidator(threshold, owners, address) {
|
|
118
140
|
return {
|
|
119
141
|
address: address ?? OWNABLE_VALIDATOR_ADDRESS,
|
|
@@ -213,6 +235,70 @@ function getWebAuthnValidator(threshold, webAuthnCredentials, address) {
|
|
|
213
235
|
type: common_1.MODULE_TYPE_ID_VALIDATOR,
|
|
214
236
|
};
|
|
215
237
|
}
|
|
238
|
+
function getStatelessValidatorData(validator) {
|
|
239
|
+
switch (validator.type) {
|
|
240
|
+
case 'ecdsa':
|
|
241
|
+
return getOwnableValidator(validator.threshold ?? 1, validator.accounts.map((account) => account.address)).initData;
|
|
242
|
+
case 'ens':
|
|
243
|
+
return (0, viem_1.encodeAbiParameters)([
|
|
244
|
+
{ name: 'threshold', type: 'uint256' },
|
|
245
|
+
{ name: 'owners', type: 'address[]' },
|
|
246
|
+
], [
|
|
247
|
+
BigInt(validator.threshold ?? 1),
|
|
248
|
+
validator.accounts
|
|
249
|
+
.map((account) => account.address.toLowerCase())
|
|
250
|
+
.sort((a, b) => (0, ordering_1.compareHexValues)(a, b)),
|
|
251
|
+
]);
|
|
252
|
+
case 'passkey': {
|
|
253
|
+
const credentials = validator.accounts
|
|
254
|
+
.map((account) => {
|
|
255
|
+
const publicKey = parsePublicKey(account.publicKey);
|
|
256
|
+
if (publicKey.prefix && publicKey.prefix !== 4) {
|
|
257
|
+
throw new Error('Only uncompressed public keys are supported');
|
|
258
|
+
}
|
|
259
|
+
const credentialId = (0, viem_1.keccak256)((0, viem_1.encodeAbiParameters)([{ type: 'uint256' }, { type: 'uint256' }, { type: 'address' }], [publicKey.x, publicKey.y, viem_1.zeroAddress]));
|
|
260
|
+
return {
|
|
261
|
+
credentialId,
|
|
262
|
+
credentialData: {
|
|
263
|
+
pubKeyX: publicKey.x,
|
|
264
|
+
pubKeyY: publicKey.y,
|
|
265
|
+
requireUV: false,
|
|
266
|
+
},
|
|
267
|
+
};
|
|
268
|
+
})
|
|
269
|
+
.sort((a, b) => (0, ordering_1.compareHexValues)(a.credentialId, b.credentialId));
|
|
270
|
+
return (0, viem_1.encodeAbiParameters)([
|
|
271
|
+
{
|
|
272
|
+
name: 'context',
|
|
273
|
+
type: 'tuple',
|
|
274
|
+
components: [
|
|
275
|
+
{ name: 'usePrecompile', type: 'bool' },
|
|
276
|
+
{ name: 'threshold', type: 'uint256' },
|
|
277
|
+
{ name: 'credentialIds', type: 'bytes32[]' },
|
|
278
|
+
{
|
|
279
|
+
name: 'credentialData',
|
|
280
|
+
type: 'tuple[]',
|
|
281
|
+
components: [
|
|
282
|
+
{ name: 'pubKeyX', type: 'uint256' },
|
|
283
|
+
{ name: 'pubKeyY', type: 'uint256' },
|
|
284
|
+
{ name: 'requireUV', type: 'bool' },
|
|
285
|
+
],
|
|
286
|
+
},
|
|
287
|
+
],
|
|
288
|
+
},
|
|
289
|
+
{ name: 'account', type: 'address' },
|
|
290
|
+
], [
|
|
291
|
+
{
|
|
292
|
+
usePrecompile: false,
|
|
293
|
+
threshold: BigInt(validator.threshold ?? 1),
|
|
294
|
+
credentialIds: credentials.map(({ credentialId }) => credentialId),
|
|
295
|
+
credentialData: credentials.map(({ credentialData }) => credentialData),
|
|
296
|
+
},
|
|
297
|
+
viem_1.zeroAddress,
|
|
298
|
+
]);
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
}
|
|
216
302
|
function getMultiFactorValidator(threshold, validators, address) {
|
|
217
303
|
return {
|
|
218
304
|
address: address ?? MULTI_FACTOR_VALIDATOR_ADDRESS,
|
|
@@ -245,7 +331,7 @@ function getMultiFactorValidator(threshold, validators, address) {
|
|
|
245
331
|
}),
|
|
246
332
|
validatorModule.address,
|
|
247
333
|
]),
|
|
248
|
-
data:
|
|
334
|
+
data: getStatelessValidatorData(validator),
|
|
249
335
|
};
|
|
250
336
|
})
|
|
251
337
|
.filter((validator) => validator !== null),
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abi.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/swap/abi.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAA6B,MAAM,MAAM,CAAA;AAuD1D,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,GAAG,EACR,YAAY,EAAE,MAAM,GACnB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAcxB"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.namedParamOffsets = namedParamOffsets;
|
|
4
|
+
function isStaticAbiType(type) {
|
|
5
|
+
if (type === 'address' || type === 'bool')
|
|
6
|
+
return true;
|
|
7
|
+
if (/^u?int\d*$/.test(type))
|
|
8
|
+
return true;
|
|
9
|
+
if (/^bytes\d+$/.test(type)) {
|
|
10
|
+
const size = Number.parseInt(type.slice(5), 10);
|
|
11
|
+
return size >= 1 && size <= 32;
|
|
12
|
+
}
|
|
13
|
+
return false;
|
|
14
|
+
}
|
|
15
|
+
const ARRAY_SUFFIX = /^(.*)\[(\d*)\]$/;
|
|
16
|
+
function withType(param, type) {
|
|
17
|
+
return { ...param, type };
|
|
18
|
+
}
|
|
19
|
+
function tupleComponents(param) {
|
|
20
|
+
return param.components ?? [];
|
|
21
|
+
}
|
|
22
|
+
function isDynamicAbiParam(param) {
|
|
23
|
+
if (param.type === 'bytes' || param.type === 'string')
|
|
24
|
+
return true;
|
|
25
|
+
const array = ARRAY_SUFFIX.exec(param.type);
|
|
26
|
+
if (array) {
|
|
27
|
+
const [, elementType, length] = array;
|
|
28
|
+
if (length === '')
|
|
29
|
+
return true;
|
|
30
|
+
return isDynamicAbiParam(withType(param, elementType));
|
|
31
|
+
}
|
|
32
|
+
if (param.type === 'tuple') {
|
|
33
|
+
return tupleComponents(param).some(isDynamicAbiParam);
|
|
34
|
+
}
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
function headSize(param) {
|
|
38
|
+
if (isDynamicAbiParam(param))
|
|
39
|
+
return 32;
|
|
40
|
+
const array = ARRAY_SUFFIX.exec(param.type);
|
|
41
|
+
if (array) {
|
|
42
|
+
const [, elementType, length] = array;
|
|
43
|
+
return Number.parseInt(length, 10) * headSize(withType(param, elementType));
|
|
44
|
+
}
|
|
45
|
+
if (param.type === 'tuple') {
|
|
46
|
+
return tupleComponents(param).reduce((sum, item) => sum + headSize(item), 0);
|
|
47
|
+
}
|
|
48
|
+
return 32;
|
|
49
|
+
}
|
|
50
|
+
function headOffset(inputs, index) {
|
|
51
|
+
let offset = 0;
|
|
52
|
+
for (let i = 0; i < index; i++)
|
|
53
|
+
offset += headSize(inputs[i]);
|
|
54
|
+
return BigInt(offset);
|
|
55
|
+
}
|
|
56
|
+
function namedParamOffsets(abi, functionName) {
|
|
57
|
+
const entry = abi.find((item) => item.type === 'function' && item.name === functionName);
|
|
58
|
+
if (!entry)
|
|
59
|
+
throw new Error(`Function "${functionName}" not found in ABI`);
|
|
60
|
+
const offsets = {};
|
|
61
|
+
entry.inputs.forEach((param, index) => {
|
|
62
|
+
if (param.name && isStaticAbiType(param.type)) {
|
|
63
|
+
offsets[param.name] = headOffset(entry.inputs, index);
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
return offsets;
|
|
67
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { type Address } from 'viem';
|
|
2
|
+
import type { FyndVenue } from '../../../../types';
|
|
3
|
+
import type { VenueContext, VenueScoping } from './rules';
|
|
4
|
+
/**
|
|
5
|
+
* fynd — Rhinestone's self-hosted Tycho aggregator.
|
|
6
|
+
*
|
|
7
|
+
* Unlike 0x there is no allowance-holder indirection: the TychoRouter is both
|
|
8
|
+
* the swap target and the ERC-20 approval spender, and every field we care about
|
|
9
|
+
* is a named static argument in the calldata head. That means nothing here is a
|
|
10
|
+
* magic offset — the rules are addressed by ABI parameter name.
|
|
11
|
+
*/
|
|
12
|
+
/** Chains with a deployed, whitelisted TychoRouter. */
|
|
13
|
+
export declare const FYND_CHAIN_IDS: readonly [1, 56, 130, 137, 8453, 9745, 42161];
|
|
14
|
+
export type FyndChainId = (typeof FYND_CHAIN_IDS)[number];
|
|
15
|
+
/**
|
|
16
|
+
* TychoRouter per chain — the contract fynd's encoded fills target.
|
|
17
|
+
*
|
|
18
|
+
* Mirrors `fynd.routers` in the orchestrator's quoters.jsonnet. A chain is
|
|
19
|
+
* listed only when the router is whitelisted in `IntentExecutionPolicy`, since a
|
|
20
|
+
* quoter enabled without a whitelisted target produces quotes that revert.
|
|
21
|
+
*/
|
|
22
|
+
export declare const FYND_ROUTERS: Record<FyndChainId, Address>;
|
|
23
|
+
/**
|
|
24
|
+
* TychoRouter `singleSwap`, the entrypoint fynd's encoded quotes call.
|
|
25
|
+
*
|
|
26
|
+
* Only the argument TYPES determine the selector and the head layout, and those
|
|
27
|
+
* are pinned by {@link FYND_SWAP_SELECTOR}'s assertion in the test suite. The
|
|
28
|
+
* NAMES of the first five are corroborated by observed fynd calldata; the
|
|
29
|
+
* trailing tuple's component names are our own labels and carry no guarantee —
|
|
30
|
+
* we never address them, since a tuple containing `bytes` is dynamic and sits
|
|
31
|
+
* behind a pointer.
|
|
32
|
+
*/
|
|
33
|
+
export declare const tychoRouterAbi: readonly [{
|
|
34
|
+
readonly type: "function";
|
|
35
|
+
readonly name: "singleSwap";
|
|
36
|
+
readonly stateMutability: "payable";
|
|
37
|
+
readonly inputs: readonly [{
|
|
38
|
+
readonly name: "amountIn";
|
|
39
|
+
readonly type: "uint256";
|
|
40
|
+
}, {
|
|
41
|
+
readonly name: "tokenIn";
|
|
42
|
+
readonly type: "address";
|
|
43
|
+
}, {
|
|
44
|
+
readonly name: "tokenOut";
|
|
45
|
+
readonly type: "address";
|
|
46
|
+
}, {
|
|
47
|
+
readonly name: "minAmountOut";
|
|
48
|
+
readonly type: "uint256";
|
|
49
|
+
}, {
|
|
50
|
+
readonly name: "receiver";
|
|
51
|
+
readonly type: "address";
|
|
52
|
+
}, {
|
|
53
|
+
readonly name: "permit";
|
|
54
|
+
readonly type: "tuple";
|
|
55
|
+
readonly components: readonly [{
|
|
56
|
+
readonly name: "nonce";
|
|
57
|
+
readonly type: "uint16";
|
|
58
|
+
}, {
|
|
59
|
+
readonly name: "token";
|
|
60
|
+
readonly type: "address";
|
|
61
|
+
}, {
|
|
62
|
+
readonly name: "amount";
|
|
63
|
+
readonly type: "uint256";
|
|
64
|
+
}, {
|
|
65
|
+
readonly name: "deadline";
|
|
66
|
+
readonly type: "uint256";
|
|
67
|
+
}, {
|
|
68
|
+
readonly name: "signature";
|
|
69
|
+
readonly type: "bytes";
|
|
70
|
+
}];
|
|
71
|
+
}, {
|
|
72
|
+
readonly name: "swap";
|
|
73
|
+
readonly type: "bytes";
|
|
74
|
+
}];
|
|
75
|
+
readonly outputs: readonly [{
|
|
76
|
+
readonly name: "amountOut";
|
|
77
|
+
readonly type: "uint256";
|
|
78
|
+
}];
|
|
79
|
+
}];
|
|
80
|
+
export declare const FYND_SWAP_SELECTOR: `0x${string}`;
|
|
81
|
+
/**
|
|
82
|
+
* Scope a session to fynd swaps.
|
|
83
|
+
*
|
|
84
|
+
* Needs no addresses: the router is a per-chain deployment the SDK knows, and
|
|
85
|
+
* because it is also the approval spender there is no separate allowance target
|
|
86
|
+
* to reason about.
|
|
87
|
+
*/
|
|
88
|
+
export declare function fynd(options?: {
|
|
89
|
+
maxSpend?: bigint;
|
|
90
|
+
}): FyndVenue;
|
|
91
|
+
export declare function scopeFynd(ctx: VenueContext): VenueScoping;
|
|
92
|
+
//# sourceMappingURL=fynd.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fynd.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/smart-sessions/swap/fynd.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,OAAO,EAAsB,MAAM,MAAM,CAAA;AACjE,OAAO,KAAK,EACV,SAAS,EAEV,MAAM,mBAAmB,CAAA;AAE1B,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAGzD;;;;;;;GAOG;AAEH,uDAAuD;AACvD,eAAO,MAAM,cAAc,+CAAgD,CAAA;AAE3E,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,CAAC,CAAA;AAEzD;;;;;;GAMG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,WAAW,EAAE,OAAO,CAQrD,CAAA;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0BH,CAAA;AAExB,eAAO,MAAM,kBAAkB,eAAwC,CAAA;AAQvE;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,SAAS,CAKnE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,YAAY,GAAG,YAAY,CAoBzD"}
|