@rhinestone/sdk 1.13.4 → 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/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 +24 -5
- package/dist/src/index.d.ts +3 -3
- package/dist/src/index.d.ts.map +1 -1
- 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
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Hex } from 'viem';
|
|
2
|
+
import { fynd, resolveZeroExSettler, rhinestoneSwap, toSession, zeroEx } from '../modules/validators/smart-sessions';
|
|
2
3
|
import type { LazyCallInput, SessionInput } from '../types';
|
|
3
4
|
/**
|
|
4
5
|
* Enable smart sessions
|
|
@@ -19,5 +20,5 @@ declare function experimental_enableSession(session: SessionInput, enableSession
|
|
|
19
20
|
chainId: bigint;
|
|
20
21
|
sessionDigest: Hex;
|
|
21
22
|
}[], sessionToEnableIndex: number): LazyCallInput;
|
|
22
|
-
export { experimental_disable, experimental_enable, experimental_enableSession };
|
|
23
|
+
export { experimental_disable, experimental_enable, experimental_enableSession, fynd, resolveZeroExSettler, rhinestoneSwap, toSession, zeroEx, };
|
|
23
24
|
//# sourceMappingURL=smart-sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../actions/smart-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../actions/smart-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAK/B,OAAO,EACL,IAAI,EAGJ,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,MAAM,EACP,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAE3D;;;GAGG;AACH,iBAAS,mBAAmB,IAAI,aAAa,CAU5C;AAED;;;GAGG;AACH,iBAAS,oBAAoB,IAAI,aAAa,CAU7C;AAED;;;;GAIG;AACH,iBAAS,0BAA0B,CACjC,OAAO,EAAE,YAAY,EACrB,sBAAsB,EAAE,GAAG,EAC3B,iBAAiB,EAAE;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,GAAG,CAAA;CACnB,EAAE,EACH,oBAAoB,EAAE,MAAM,GAC3B,aAAa,CAgBf;AAED,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,IAAI,EACJ,oBAAoB,EACpB,cAAc,EACd,SAAS,EACT,MAAM,GACP,CAAA"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.zeroEx = exports.toSession = exports.rhinestoneSwap = exports.resolveZeroExSettler = exports.fynd = void 0;
|
|
3
4
|
exports.experimental_disable = experimental_disable;
|
|
4
5
|
exports.experimental_enable = experimental_enable;
|
|
5
6
|
exports.experimental_enableSession = experimental_enableSession;
|
|
6
7
|
const accounts_1 = require("../accounts");
|
|
7
8
|
const smart_sessions_1 = require("../modules/validators/smart-sessions");
|
|
9
|
+
Object.defineProperty(exports, "fynd", { enumerable: true, get: function () { return smart_sessions_1.fynd; } });
|
|
10
|
+
Object.defineProperty(exports, "resolveZeroExSettler", { enumerable: true, get: function () { return smart_sessions_1.resolveZeroExSettler; } });
|
|
11
|
+
Object.defineProperty(exports, "rhinestoneSwap", { enumerable: true, get: function () { return smart_sessions_1.rhinestoneSwap; } });
|
|
12
|
+
Object.defineProperty(exports, "toSession", { enumerable: true, get: function () { return smart_sessions_1.toSession; } });
|
|
13
|
+
Object.defineProperty(exports, "zeroEx", { enumerable: true, get: function () { return smart_sessions_1.zeroEx; } });
|
|
8
14
|
/**
|
|
9
15
|
* Enable smart sessions
|
|
10
16
|
* @returns Calls to enable smart sessions
|
|
@@ -2,7 +2,7 @@ import { type Address, type Chain, type Hex } from 'viem';
|
|
|
2
2
|
import type { UserOperationReceipt } from 'viem/_types/account-abstraction';
|
|
3
3
|
import { type AuthProvider } from '../auth/provider';
|
|
4
4
|
import { type IntentOpStatus, type SplitIntentsInput } from '../orchestrator';
|
|
5
|
-
import type { AppFeeRate, ProtocolFeeRate, SettlementLayer } from '../orchestrator/types';
|
|
5
|
+
import type { AppFeeRate, ProtocolFeeRate, SettlementLayer, SwapQuoterFilter } from '../orchestrator/types';
|
|
6
6
|
import type { CalldataInput, CallInput, RhinestoneAccountConfig, RhinestoneConfig, SignerSet, SourceAssetInput, Sponsorship, TokenRequest, TokenSymbol, Transaction, UserOperationTransaction } from '../types';
|
|
7
7
|
import { ExecutionError, IntentFailedError, IntentStatusTimeoutError, InvalidSourceCallsError, isExecutionError, OrderPathRequiredForIntentsError, SessionChainRequiredError, SignerNotSupportedError } from './error';
|
|
8
8
|
import type { TransactionResult, UserOperationResult } from './utils';
|
|
@@ -28,6 +28,7 @@ declare function sendTransactionInternal(config: RhinestoneConfig, sourceChains:
|
|
|
28
28
|
sponsored?: Sponsorship;
|
|
29
29
|
eip7702InitSignature?: Hex;
|
|
30
30
|
settlementLayers?: SettlementLayer[];
|
|
31
|
+
quoters?: SwapQuoterFilter;
|
|
31
32
|
sourceAssets?: SourceAssetInput;
|
|
32
33
|
lockFunds?: boolean;
|
|
33
34
|
feeAsset?: Address | TokenSymbol;
|
|
@@ -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,EAAE,KAAK,YAAY,EAAsB,MAAM,kBAAkB,CAAA;AACxE,OAAO,EAML,KAAK,cAAc,EAGnB,KAAK,iBAAiB,EACvB,MAAM,iBAAiB,CAAA;AAMxB,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,eAAe,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,7 +35,7 @@ const POLL_ERROR_BACKOFF_MAX_MS = 10000;
|
|
|
35
35
|
async function sendTransaction(config, transaction) {
|
|
36
36
|
const sourceChains = 'chain' in transaction ? [transaction.chain] : transaction.sourceChains;
|
|
37
37
|
const targetChain = 'chain' in transaction ? transaction.chain : transaction.targetChain;
|
|
38
|
-
const { calls, sourceCalls, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, appFees, customDeadline, protocolFees, } = transaction;
|
|
38
|
+
const { calls, sourceCalls, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, quoters, sourceAssets, feeAsset, appFees, customDeadline, protocolFees, } = transaction;
|
|
39
39
|
const isUserOpSigner = signers?.type === 'guardians';
|
|
40
40
|
if (isUserOpSigner) {
|
|
41
41
|
throw new error_1.SignerNotSupportedError();
|
|
@@ -50,6 +50,7 @@ async function sendTransaction(config, transaction) {
|
|
|
50
50
|
sponsored,
|
|
51
51
|
eip7702InitSignature,
|
|
52
52
|
settlementLayers,
|
|
53
|
+
quoters,
|
|
53
54
|
sourceAssets,
|
|
54
55
|
feeAsset,
|
|
55
56
|
appFees,
|
|
@@ -71,7 +72,7 @@ async function sendTransactionInternal(config, sourceChains, targetChain, option
|
|
|
71
72
|
throw new error_1.SignerNotSupportedError();
|
|
72
73
|
}
|
|
73
74
|
else {
|
|
74
|
-
return await sendTransactionAsIntent(config, sourceChains, targetChain, resolvedCalls, options.gasLimit, tokenRequests, options.recipient, options.signers, options.sponsored, options.eip7702InitSignature, options.settlementLayers, options.sourceAssets, options.feeAsset, options.lockFunds, options.sourceCalls, options.appFees, options.customDeadline, options.protocolFees);
|
|
75
|
+
return await sendTransactionAsIntent(config, sourceChains, targetChain, resolvedCalls, options.gasLimit, tokenRequests, options.recipient, options.signers, options.sponsored, options.eip7702InitSignature, options.settlementLayers, options.sourceAssets, options.feeAsset, options.lockFunds, options.sourceCalls, options.appFees, options.customDeadline, options.protocolFees, options.quoters);
|
|
75
76
|
}
|
|
76
77
|
}
|
|
77
78
|
async function sendUserOperationInternal(config, chain, callInputs, signers) {
|
|
@@ -97,8 +98,8 @@ async function sendUserOperationInternal(config, chain, callInputs, signers) {
|
|
|
97
98
|
chain: chain.id,
|
|
98
99
|
};
|
|
99
100
|
}
|
|
100
|
-
async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, sourceCalls, appFees, customDeadline, protocolFees) {
|
|
101
|
-
const prepared = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, sponsored ?? false, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, undefined, undefined, signers, sourceCalls, appFees, customDeadline, protocolFees);
|
|
101
|
+
async function sendTransactionAsIntent(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, signers, sponsored, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, sourceCalls, appFees, customDeadline, protocolFees, quoters) {
|
|
102
|
+
const prepared = await (0, utils_2.prepareTransactionAsIntent)(config, sourceChains, targetChain, callInputs, gasLimit, tokenRequests, recipient, sponsored ?? false, eip7702InitSignature, settlementLayers, sourceAssets, feeAsset, lockFunds, undefined, undefined, signers, sourceCalls, appFees, customDeadline, protocolFees, quoters);
|
|
102
103
|
if (!prepared) {
|
|
103
104
|
throw new error_1.OrderPathRequiredForIntentsError();
|
|
104
105
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SwapQuoter, SwapQuoterFilter } from '../orchestrator/types';
|
|
2
|
+
import type { Session, SignerSet } from '../types';
|
|
3
|
+
declare function venuesForSession(session: Session | undefined): Set<SwapQuoter> | null;
|
|
4
|
+
declare function quoterPinFromSession(signers: SignerSet | undefined, chainIds: readonly number[]): SwapQuoterFilter | undefined;
|
|
5
|
+
declare function narrowQuoterPin(derived: SwapQuoterFilter | undefined, explicit: SwapQuoterFilter | undefined): SwapQuoterFilter | undefined;
|
|
6
|
+
export { narrowQuoterPin, quoterPinFromSession, venuesForSession };
|
|
7
|
+
//# sourceMappingURL=quoters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quoters.d.ts","sourceRoot":"","sources":["../../../execution/quoters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACzE,OAAO,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAElD,iBAAS,gBAAgB,CACvB,OAAO,EAAE,OAAO,GAAG,SAAS,GAC3B,GAAG,CAAC,UAAU,CAAC,GAAG,IAAI,CAYxB;AAED,iBAAS,oBAAoB,CAC3B,OAAO,EAAE,SAAS,GAAG,SAAS,EAC9B,QAAQ,EAAE,SAAS,MAAM,EAAE,GAC1B,gBAAgB,GAAG,SAAS,CAuB9B;AAED,iBAAS,eAAe,CACtB,OAAO,EAAE,gBAAgB,GAAG,SAAS,EACrC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,GACrC,gBAAgB,GAAG,SAAS,CAU9B;AAED,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -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,
|
|
@@ -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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"}
|
|
@@ -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"}
|