@rhinestone/sdk 2.0.0-beta.25 → 2.0.0-beta.26
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 +84 -3
- package/dist/src/actions/smart-sessions.d.ts.map +1 -1
- package/dist/src/actions/smart-sessions.js +95 -1
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +12 -2
- package/dist/src/index.d.ts +4 -3
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +4 -1
- package/dist/src/modules/validators/permissions.d.ts +1 -0
- package/dist/src/modules/validators/permissions.d.ts.map +1 -1
- package/dist/src/modules/validators/permissions.js +3 -1
- package/dist/src/modules/validators/policies/claim/arbiters.d.ts +22 -0
- package/dist/src/modules/validators/policies/claim/arbiters.d.ts.map +1 -0
- package/dist/src/modules/validators/policies/claim/arbiters.js +57 -0
- package/dist/src/modules/validators/smart-sessions.d.ts +11 -2
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +212 -9
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- package/dist/src/types.d.ts +79 -1
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { LazyCallInput, Session } from '../types.js';
|
|
1
|
+
import { type Address, type Chain, type Hex } from 'viem';
|
|
2
|
+
import type { CrossChainPermit, CrossChainSettlementLayer, LazyCallInput, Session, TokenSymbol } from '../types.js';
|
|
3
3
|
/**
|
|
4
4
|
* Enable smart sessions
|
|
5
5
|
* @returns Calls to enable smart sessions
|
|
@@ -27,5 +27,86 @@ declare function experimental_enableSession(session: Session, enableSessionSigna
|
|
|
27
27
|
chainId: bigint;
|
|
28
28
|
sessionDigest: Hex;
|
|
29
29
|
}[], sessionToEnableIndex: number): LazyCallInput;
|
|
30
|
-
|
|
30
|
+
interface FromLeg {
|
|
31
|
+
chain: Chain;
|
|
32
|
+
token: Address | TokenSymbol;
|
|
33
|
+
maxAmount?: bigint;
|
|
34
|
+
}
|
|
35
|
+
interface ToLeg {
|
|
36
|
+
chain: Chain;
|
|
37
|
+
token: Address | TokenSymbol;
|
|
38
|
+
recipient?: Address | 'any';
|
|
39
|
+
}
|
|
40
|
+
interface CreateCrossChainPermissionInput {
|
|
41
|
+
/**
|
|
42
|
+
* Source chain + token (+ optional max amount cap). Pass a single leg
|
|
43
|
+
* or an array for multi-leg permits. Omit for no source-token
|
|
44
|
+
* restriction (any token on any chain may be pulled) — the arbiter
|
|
45
|
+
* whitelist, deadline, and bridge-to-self flag still apply.
|
|
46
|
+
*/
|
|
47
|
+
from?: FromLeg | FromLeg[];
|
|
48
|
+
/**
|
|
49
|
+
* Destination chain + token (+ optional recipient pin). Pass a single
|
|
50
|
+
* leg or an array for fan-out destinations. Omit for no
|
|
51
|
+
* destination-token restriction; `recipientIsAccount` still constrains
|
|
52
|
+
* the recipient.
|
|
53
|
+
*/
|
|
54
|
+
to?: ToLeg | ToLeg[];
|
|
55
|
+
/** Upper bound on the permit deadline. Accepts unix-seconds bigint or `Date`. */
|
|
56
|
+
validUntil?: bigint | Date;
|
|
57
|
+
/** Lower bound on the permit deadline. Accepts unix-seconds bigint or `Date`. */
|
|
58
|
+
validAfter?: bigint | Date;
|
|
59
|
+
/** Per-destination fill-deadline windows (unix-seconds bigints). */
|
|
60
|
+
fillDeadline?: {
|
|
61
|
+
chain: Chain;
|
|
62
|
+
min?: bigint;
|
|
63
|
+
max?: bigint;
|
|
64
|
+
}[];
|
|
65
|
+
/**
|
|
66
|
+
* Allow the destination recipient to differ from the smart account
|
|
67
|
+
* (the sponsor funding the cross-chain transfer). Defaults to
|
|
68
|
+
* `false`, which enforces bridge-to-self on-chain — the safer default
|
|
69
|
+
* since it prevents a compromised session key from routing funds to
|
|
70
|
+
* an attacker-controlled address. Set to `true` to opt out explicitly.
|
|
71
|
+
*/
|
|
72
|
+
allowRecipientNotAccount?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* Settlement layers this session is permitted to use. Omit (or pass
|
|
75
|
+
* `[]`) to allow **any of the supported settlement layers** — the SDK
|
|
76
|
+
* resolves to the union of every known arbiter from
|
|
77
|
+
* `@rhinestone/shared-configs`. Pass a subset (e.g. `['ECO']`) to
|
|
78
|
+
* narrow.
|
|
79
|
+
*/
|
|
80
|
+
settlementLayers?: CrossChainSettlementLayer[];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Build a {@link CrossChainPermit} from an ergonomic input shape that
|
|
84
|
+
* accepts:
|
|
85
|
+
* - a single `from`/`to` leg or arrays of legs
|
|
86
|
+
* - `TokenSymbol` ("USDC", "USDT", ...) which is resolved to the
|
|
87
|
+
* per-chain ERC-20 address via the shared token registry
|
|
88
|
+
* - `Date` or unix-seconds `bigint` for `validUntil`/`validAfter`
|
|
89
|
+
*
|
|
90
|
+
* Plug the returned object into `SessionDefinition.crossChainPermits`
|
|
91
|
+
* to permission a session key for Permit2-backed cross-chain transfers.
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```ts
|
|
95
|
+
* import { arbitrum, mainnet } from 'viem/chains'
|
|
96
|
+
*
|
|
97
|
+
* const permit = createCrossChainPermission({
|
|
98
|
+
* from: { chain: mainnet, token: 'USDC', maxAmount: 1_000_000_000n },
|
|
99
|
+
* to: { chain: arbitrum, token: 'USDC' },
|
|
100
|
+
* validUntil: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000),
|
|
101
|
+
* })
|
|
102
|
+
*
|
|
103
|
+
* const session = toSession({
|
|
104
|
+
* chain: mainnet,
|
|
105
|
+
* owners: { type: 'ecdsa', accounts: [sessionKey] },
|
|
106
|
+
* crossChainPermits: [permit],
|
|
107
|
+
* })
|
|
108
|
+
* ```
|
|
109
|
+
*/
|
|
110
|
+
declare function createCrossChainPermission(input: CreateCrossChainPermissionInput): CrossChainPermit;
|
|
111
|
+
export { experimental_disable, experimental_enable, experimental_enableSession, createCrossChainPermission, };
|
|
31
112
|
//# 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,
|
|
1
|
+
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../actions/smart-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAE,KAAK,GAAG,EAAa,MAAM,MAAM,CAAA;AAUpE,OAAO,KAAK,EACV,gBAAgB,EAChB,yBAAyB,EACzB,aAAa,EACb,OAAO,EACP,WAAW,EACZ,MAAM,UAAU,CAAA;AAEjB;;;GAGG;AACH,iBAAS,mBAAmB,IAAI,aAAa,CAU5C;AAED;;;GAGG;AACH,iBAAS,oBAAoB,IAAI,aAAa,CAU7C;AAED;;;;;;;;;;;;GAYG;AACH,iBAAS,0BAA0B,CACjC,OAAO,EAAE,OAAO,EAChB,sBAAsB,EAAE,GAAG,EAC3B,iBAAiB,EAAE;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,aAAa,EAAE,GAAG,CAAA;CACnB,EAAE,EACH,oBAAoB,EAAE,MAAM,GAC3B,aAAa,CAaf;AAMD,UAAU,OAAO;IACf,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,OAAO,GAAG,WAAW,CAAA;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,UAAU,KAAK;IACb,KAAK,EAAE,KAAK,CAAA;IACZ,KAAK,EAAE,OAAO,GAAG,WAAW,CAAA;IAC5B,SAAS,CAAC,EAAE,OAAO,GAAG,KAAK,CAAA;CAC5B;AAED,UAAU,+BAA+B;IACvC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;IAC1B;;;;;OAKG;IACH,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,CAAA;IACpB,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,oEAAoE;IACpE,YAAY,CAAC,EAAE;QAAE,KAAK,EAAE,KAAK,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAA;IAC7D;;;;;;OAMG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAA;IAClC;;;;;;OAMG;IACH,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAA;CAC/C;AAiBD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,iBAAS,0BAA0B,CACjC,KAAK,EAAE,+BAA+B,GACrC,gBAAgB,CA6DlB;AAED,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,0BAA0B,EAC1B,0BAA0B,GAC3B,CAAA"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { isAddress } from 'viem';
|
|
1
2
|
import { getModuleInstallationCalls, getModuleUninstallationCalls, } from '../accounts/index.js';
|
|
2
3
|
import { getEnableSessionCall, getSmartSessionValidator, } from '../modules/validators/smart-sessions.js';
|
|
4
|
+
import { getTokenAddress } from '../orchestrator/registry.js';
|
|
3
5
|
/**
|
|
4
6
|
* Enable smart sessions
|
|
5
7
|
* @returns Calls to enable smart sessions
|
|
@@ -50,4 +52,96 @@ function experimental_enableSession(session, enableSessionSignature, hashesAndCh
|
|
|
50
52
|
},
|
|
51
53
|
};
|
|
52
54
|
}
|
|
53
|
-
|
|
55
|
+
function toUnixSecondsBigint(input) {
|
|
56
|
+
if (typeof input === 'bigint')
|
|
57
|
+
return input;
|
|
58
|
+
// Date.getTime() returns milliseconds since epoch; the on-chain policy
|
|
59
|
+
// expects unix-seconds. Integer division matches the Permit2 deadline
|
|
60
|
+
// convention.
|
|
61
|
+
return BigInt(Math.floor(input.getTime() / 1000));
|
|
62
|
+
}
|
|
63
|
+
function resolveTokenForChain(token, chainId) {
|
|
64
|
+
return isAddress(token) ? token : getTokenAddress(token, chainId);
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Build a {@link CrossChainPermit} from an ergonomic input shape that
|
|
68
|
+
* accepts:
|
|
69
|
+
* - a single `from`/`to` leg or arrays of legs
|
|
70
|
+
* - `TokenSymbol` ("USDC", "USDT", ...) which is resolved to the
|
|
71
|
+
* per-chain ERC-20 address via the shared token registry
|
|
72
|
+
* - `Date` or unix-seconds `bigint` for `validUntil`/`validAfter`
|
|
73
|
+
*
|
|
74
|
+
* Plug the returned object into `SessionDefinition.crossChainPermits`
|
|
75
|
+
* to permission a session key for Permit2-backed cross-chain transfers.
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```ts
|
|
79
|
+
* import { arbitrum, mainnet } from 'viem/chains'
|
|
80
|
+
*
|
|
81
|
+
* const permit = createCrossChainPermission({
|
|
82
|
+
* from: { chain: mainnet, token: 'USDC', maxAmount: 1_000_000_000n },
|
|
83
|
+
* to: { chain: arbitrum, token: 'USDC' },
|
|
84
|
+
* validUntil: new Date(Date.now() + 7 * 24 * 60 * 60 * 1000),
|
|
85
|
+
* })
|
|
86
|
+
*
|
|
87
|
+
* const session = toSession({
|
|
88
|
+
* chain: mainnet,
|
|
89
|
+
* owners: { type: 'ecdsa', accounts: [sessionKey] },
|
|
90
|
+
* crossChainPermits: [permit],
|
|
91
|
+
* })
|
|
92
|
+
* ```
|
|
93
|
+
*/
|
|
94
|
+
function createCrossChainPermission(input) {
|
|
95
|
+
// Normalise the single-object / array / omitted shapes into arrays.
|
|
96
|
+
// An omitted side stays `undefined` on the returned permit (no
|
|
97
|
+
// restriction), mirroring how the underlying Permit2 policy treats an
|
|
98
|
+
// absent token list.
|
|
99
|
+
const normalizeLegs = (legs) => {
|
|
100
|
+
if (legs === undefined)
|
|
101
|
+
return undefined;
|
|
102
|
+
const arr = Array.isArray(legs) ? legs : [legs];
|
|
103
|
+
return arr.length ? arr : undefined;
|
|
104
|
+
};
|
|
105
|
+
const fromLegs = normalizeLegs(input.from);
|
|
106
|
+
const toLegs = normalizeLegs(input.to);
|
|
107
|
+
const from = fromLegs?.map((leg) => ({
|
|
108
|
+
chain: leg.chain,
|
|
109
|
+
token: resolveTokenForChain(leg.token, leg.chain.id),
|
|
110
|
+
maxAmount: leg.maxAmount,
|
|
111
|
+
}));
|
|
112
|
+
const to = toLegs?.map((leg) => ({
|
|
113
|
+
chain: leg.chain,
|
|
114
|
+
token: resolveTokenForChain(leg.token, leg.chain.id),
|
|
115
|
+
recipient: leg.recipient,
|
|
116
|
+
}));
|
|
117
|
+
const validUntil = input.validUntil !== undefined
|
|
118
|
+
? toUnixSecondsBigint(input.validUntil)
|
|
119
|
+
: undefined;
|
|
120
|
+
const validAfter = input.validAfter !== undefined
|
|
121
|
+
? toUnixSecondsBigint(input.validAfter)
|
|
122
|
+
: undefined;
|
|
123
|
+
// Detect an obviously-broken time window early. The on-chain policy
|
|
124
|
+
// would reject any intent in this state anyway; surfacing it at build
|
|
125
|
+
// time saves a round-trip to chain.
|
|
126
|
+
if (validUntil !== undefined &&
|
|
127
|
+
validAfter !== undefined &&
|
|
128
|
+
validAfter > validUntil) {
|
|
129
|
+
throw new Error(`createCrossChainPermission: validAfter (${validAfter}) is greater than validUntil (${validUntil})`);
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
from,
|
|
133
|
+
to,
|
|
134
|
+
validUntil,
|
|
135
|
+
validAfter,
|
|
136
|
+
fillDeadline: input.fillDeadline,
|
|
137
|
+
// Inverted default: callers must opt out of bridge-to-self
|
|
138
|
+
// explicitly. This stops a session key from quietly bridging to an
|
|
139
|
+
// attacker-controlled recipient.
|
|
140
|
+
recipientIsAccount: !input.allowRecipientNotAccount,
|
|
141
|
+
// Passed through verbatim. `getArbitersForSettlementLayers` expands
|
|
142
|
+
// undefined/empty to "all supported layers" at session-data build
|
|
143
|
+
// time.
|
|
144
|
+
settlementLayers: input.settlementLayers,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
export { experimental_disable, experimental_enable, experimental_enableSession, createCrossChainPermission, };
|
|
@@ -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,EAGrB,MAAM,MAAM,CAAA;AACb,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,0BAA0B,CAAA;AA+CjC,OAAO,EACL,KAAK,wBAAwB,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../execution/utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ import { createAuthProvider } from '../auth/provider.js';
|
|
|
9
9
|
import { buildMockSignature, DUMMY_PRECLAIMOP_SELECTOR, DUMMY_PRECLAIMOP_TARGET, getOwnerValidator, getPermissionId, getSmartSessionValidator, isSessionEnabled, } from '../modules/validators/index.js';
|
|
10
10
|
import { getMultiFactorValidator, getSocialRecoveryValidator, getWebAuthnValidator, supportsEip712, } from '../modules/validators/core.js';
|
|
11
11
|
import { buildPermit2ClaimPolicyCalldata, } from '../modules/validators/policies/claim/permit2.js';
|
|
12
|
-
import { resolvePermit2ClaimPolicy, } from '../modules/validators/smart-sessions.js';
|
|
12
|
+
import { resolvePermit2ClaimPolicy, selectPermit2ClaimPolicyForMessage, } from '../modules/validators/smart-sessions.js';
|
|
13
13
|
import { getOrchestrator, } from '../orchestrator/index.js';
|
|
14
14
|
import { isNonEvmChainId, toCaip2 } from '../orchestrator/caip2.js';
|
|
15
15
|
import { getChainId, isNonEvmChain, } from '../orchestrator/destinations.js';
|
|
@@ -827,7 +827,17 @@ function resolveClaimPolicyData(signers, parameters) {
|
|
|
827
827
|
typeof msg.deadline !== 'bigint') {
|
|
828
828
|
return undefined;
|
|
829
829
|
}
|
|
830
|
-
|
|
830
|
+
const message = parameters.message;
|
|
831
|
+
// A session may carry several claim policies (a user policy plus one or
|
|
832
|
+
// more synthesized cross-chain permits). The on-chain emissary validates
|
|
833
|
+
// against the policy that matches this Permit2 message, and the calldata
|
|
834
|
+
// layout is policy-specific — so we must build it from the matching policy,
|
|
835
|
+
// not blindly `claimPolicies[0]`.
|
|
836
|
+
const claimPolicy = selectPermit2ClaimPolicyForMessage(signers.session.claimPolicies, message);
|
|
837
|
+
if (!claimPolicy) {
|
|
838
|
+
return undefined;
|
|
839
|
+
}
|
|
840
|
+
return buildPermit2ClaimPolicyCalldata(resolvePermit2ClaimPolicy(claimPolicy), message);
|
|
831
841
|
}
|
|
832
842
|
async function signIntentTypedData(config, signers, validator, isRoot, parameters, chain, targetExecution) {
|
|
833
843
|
if (supportsEip712(validator)) {
|
package/dist/src/index.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { Address, Chain, HashTypedDataParameters, Hex, SignableMessage, SignedAuthorizationList, TypedData, TypedDataDefinition } from 'viem';
|
|
2
2
|
import type { UserOperationReceipt } from 'viem/account-abstraction';
|
|
3
|
+
import { createCrossChainPermission } from './actions/smart-sessions.js';
|
|
3
4
|
import { type TransactionResult, type TransactionStatus, type UserOperationResult } from './execution/index.js';
|
|
4
5
|
import { type PreparedQuotes, type PreparedTransactionData, type PreparedUserOperationData, type QuoteSelection, type SignedTransactionData, type SignedUserOperationData } from './execution/utils.js';
|
|
5
6
|
import { MULTI_FACTOR_VALIDATOR_ADDRESS, OWNABLE_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS } from './modules/index.js';
|
|
6
7
|
import { type SessionDetails } from './modules/validators/smart-sessions.js';
|
|
7
8
|
import type { ApprovalRequired, AuxiliaryFunds, BridgeFill, ChainOperation, DestinationChain, FailureReason, IntentInput, IntentOpStatus, NonEvmAddress, NonEvmChain, OperationStatus, OriginSignature, Portfolio, Quote, SettlementLayer, SettlementLayerFilter, SplitIntentsInput, SplitIntentsResult, TokenRequirements, WrapRequired } from './orchestrator/index.js';
|
|
8
9
|
import { hyperCoreMainnet, solanaMainnet, tronMainnet } from './orchestrator/index.js';
|
|
9
|
-
import type { AccountProviderConfig, AccountType, BundlerConfig, Call, CallInput, ChainSessionConfig, MultiFactorValidatorConfig, NonEvmTokenRequest, NonEvmTokenRequests, OwnableValidatorConfig, OwnerSet, ParamConstraint, PaymasterConfig, Permission, PermissionFunctionConfig, Permit2ClaimPolicy, Policy, ProviderConfig, Recovery, RhinestoneAccountConfig, RhinestoneConfig, RhinestoneSDKConfig, Session, SessionDefinition, SignerSet, SourceCallInput, SourceCallProvidedFunds, TokenRequest, TokenSymbol, Transaction, UniversalActionPolicyParamCondition, UserOperationTransaction, WebauthnValidatorConfig } from './types.js';
|
|
10
|
+
import type { AccountProviderConfig, AccountType, BundlerConfig, Call, CallInput, ChainSessionConfig, CrossChainPermit, CrossChainSettlementLayer, MultiFactorValidatorConfig, NonEvmTokenRequest, NonEvmTokenRequests, OwnableValidatorConfig, OwnerSet, ParamConstraint, PaymasterConfig, Permission, PermissionFunctionConfig, Permit2ClaimPolicy, Policy, ProviderConfig, Recovery, RhinestoneAccountConfig, RhinestoneConfig, RhinestoneSDKConfig, Session, SessionDefinition, SignerSet, SourceCallInput, SourceCallProvidedFunds, TokenRequest, TokenSymbol, Transaction, UniversalActionPolicyParamCondition, UserOperationTransaction, WebauthnValidatorConfig } from './types.js';
|
|
10
11
|
interface SubmitTransactionOptions {
|
|
11
12
|
authorizations?: SignedAuthorizationList;
|
|
12
13
|
/**
|
|
@@ -78,6 +79,6 @@ declare class RhinestoneSDK {
|
|
|
78
79
|
getIntentStatus(intentId: string): Promise<TransactionStatus>;
|
|
79
80
|
splitIntents(input: SplitIntentsInput): Promise<SplitIntentsResult>;
|
|
80
81
|
}
|
|
81
|
-
export { RhinestoneSDK, createRhinestoneAccount, hyperCoreMainnet, solanaMainnet, tronMainnet, OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, };
|
|
82
|
-
export type { RhinestoneAccount, AccountType, RhinestoneAccountConfig, AccountProviderConfig, ProviderConfig, BundlerConfig, PaymasterConfig, Transaction, TokenSymbol, CallInput, Call, TokenRequest, NonEvmTokenRequest, NonEvmTokenRequests, NonEvmAddress, OwnerSet, OwnableValidatorConfig, WebauthnValidatorConfig, MultiFactorValidatorConfig, SignerSet, SourceCallInput, SourceCallProvidedFunds, ChainSessionConfig, Session, SessionDefinition, Recovery, Permission, PermissionFunctionConfig, ParamConstraint, Policy, Permit2ClaimPolicy, UniversalActionPolicyParamCondition, PreparedQuotes, PreparedTransactionData, Quote, QuoteSelection, SignedTransactionData, TransactionResult, PreparedUserOperationData, SignedUserOperationData, UserOperationResult, AuxiliaryFunds, BridgeFill, DestinationChain, NonEvmChain, IntentInput, IntentOpStatus, SettlementLayer, SettlementLayerFilter, SplitIntentsInput, SplitIntentsResult, Portfolio, TokenRequirements, WrapRequired, ApprovalRequired, OriginSignature, OperationStatus, FailureReason, ChainOperation, };
|
|
82
|
+
export { RhinestoneSDK, createRhinestoneAccount, hyperCoreMainnet, solanaMainnet, tronMainnet, OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS, createCrossChainPermission, };
|
|
83
|
+
export type { RhinestoneAccount, AccountType, RhinestoneAccountConfig, AccountProviderConfig, ProviderConfig, BundlerConfig, PaymasterConfig, Transaction, TokenSymbol, CallInput, Call, TokenRequest, NonEvmTokenRequest, NonEvmTokenRequests, NonEvmAddress, OwnerSet, OwnableValidatorConfig, WebauthnValidatorConfig, MultiFactorValidatorConfig, SignerSet, SourceCallInput, SourceCallProvidedFunds, ChainSessionConfig, Session, SessionDefinition, Recovery, Permission, PermissionFunctionConfig, ParamConstraint, Policy, Permit2ClaimPolicy, CrossChainPermit, CrossChainSettlementLayer, UniversalActionPolicyParamCondition, PreparedQuotes, PreparedTransactionData, Quote, QuoteSelection, SignedTransactionData, TransactionResult, PreparedUserOperationData, SignedUserOperationData, UserOperationResult, AuxiliaryFunds, BridgeFill, DestinationChain, NonEvmChain, IntentInput, IntentOpStatus, SettlementLayer, SettlementLayerFilter, SplitIntentsInput, SplitIntentsResult, Portfolio, TokenRequirements, WrapRequired, ApprovalRequired, OriginSignature, OperationStatus, FailureReason, ChainOperation, };
|
|
83
84
|
//# 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":"AAAA,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,uBAAuB,EACvB,GAAG,EACH,eAAe,EACf,uBAAuB,EACvB,SAAS,EACT,mBAAmB,EACpB,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { checkAddress, deploy as deployInternal, FactoryArgsNotAvailableError, getAccountProvider, getAddress as getAddressInternal, getInitCode, isDeployed as isDeployedInternal, OwnersFieldRequiredError, setup as setupInternal, signEip7702InitData as signEip7702InitDataInternal, } from './accounts/index.js';
|
|
2
|
+
import { createCrossChainPermission } from './actions/smart-sessions.js';
|
|
2
3
|
import { createAuthProvider } from './auth/provider.js';
|
|
3
4
|
import { getIntentStatus as getIntentStatusInternal, getPortfolio as getPortfolioInternal, sendUserOperation as sendUserOperationInternal, splitIntents as splitIntentsInternal, waitForExecution as waitForExecutionInternal, } from './execution/index.js';
|
|
4
5
|
import { getTransactionMessages as getTransactionMessagesInternal, prepareTransaction as prepareTransactionInternal, prepareUserOperation as prepareUserOperationInternal, signAuthorizations as signAuthorizationsInternal, signMessage as signMessageInternal, signTransaction as signTransactionInternal, signTypedData as signTypedDataInternal, signUserOperation as signUserOperationInternal, submitTransaction as submitTransactionInternal, submitUserOperation as submitUserOperationInternal, } from './execution/utils.js';
|
|
@@ -293,4 +294,6 @@ export { RhinestoneSDK, createRhinestoneAccount,
|
|
|
293
294
|
// Non-viem destination chain descriptors (Solana, Tron, HyperCore)
|
|
294
295
|
hyperCoreMainnet, solanaMainnet, tronMainnet,
|
|
295
296
|
// Validator addresses
|
|
296
|
-
OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS,
|
|
297
|
+
OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS,
|
|
298
|
+
// Cross-chain session permissions
|
|
299
|
+
createCrossChainPermission, };
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Permission, ScopedAction } from '../../types.js';
|
|
2
|
+
export declare const FAR_FUTURE_MS = 4102444800000;
|
|
2
3
|
declare function resolvePermission(permission: Permission): ScopedAction[];
|
|
3
4
|
declare function resolvePermissions(permissions: readonly Permission[]): ScopedAction[];
|
|
4
5
|
export { resolvePermissions, resolvePermission };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/permissions.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,UAAU,EAEV,YAAY,EAEb,MAAM,aAAa,CAAA;AAiHpB,iBAAS,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,EAAE,CA4NjE;AAED,iBAAS,kBAAkB,CACzB,WAAW,EAAE,SAAS,UAAU,EAAE,GACjC,YAAY,EAAE,CAEhB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAA"}
|
|
1
|
+
{"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/permissions.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAEV,UAAU,EAEV,YAAY,EAEb,MAAM,aAAa,CAAA;AAiHpB,eAAO,MAAM,aAAa,gBAAoB,CAAA;AAE9C,iBAAS,iBAAiB,CAAC,UAAU,EAAE,UAAU,GAAG,YAAY,EAAE,CA4NjE;AAED,iBAAS,kBAAkB,CACzB,WAAW,EAAE,SAAS,UAAU,EAAE,GACjC,YAAY,EAAE,CAEhB;AAED,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -77,7 +77,9 @@ const ERC20_SPENDING_LIMIT_SELECTORS = new Set([
|
|
|
77
77
|
]);
|
|
78
78
|
// Year 2100 in ms — well within uint128 after the encoder's ms→s conversion.
|
|
79
79
|
// Used as the one-sided default for `validUntil` when only `validAfter` is set.
|
|
80
|
-
|
|
80
|
+
// Exported so the cross-chain permit expansion (smart-sessions.ts) applies the
|
|
81
|
+
// same always-passing upper bound instead of defaulting to 0 (already expired).
|
|
82
|
+
export const FAR_FUTURE_MS = 4_102_444_800_000;
|
|
81
83
|
function resolvePermission(permission) {
|
|
82
84
|
const { abi, address, functions } = permission;
|
|
83
85
|
const actions = [];
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Address } from 'viem';
|
|
2
|
+
import type { CrossChainSettlementLayer } from '../../../../types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Collects every distinct arbiter address that any chain in the registry
|
|
5
|
+
* has deployed for the given settlement layers. The resulting whitelist
|
|
6
|
+
* is what the Permit2 claim policy enforces on-chain — a session signed
|
|
7
|
+
* once with this whitelist is valid against any of those arbiters.
|
|
8
|
+
*
|
|
9
|
+
* **"Any" means any of the *supported* settlement layers**, not any
|
|
10
|
+
* address on earth. When `layers` is empty or undefined, this resolver
|
|
11
|
+
* expands to the union of every layer in
|
|
12
|
+
* {@link SETTLEMENT_LAYER_CONTRACT_KEYS}, so the on-chain arbiter check
|
|
13
|
+
* stays meaningful (the worst case is still a Rhinestone-blessed
|
|
14
|
+
* arbiter). To get a truly unrestricted whitelist a caller would have
|
|
15
|
+
* to bypass this helper entirely.
|
|
16
|
+
*
|
|
17
|
+
* @param layers Settlement layers the session is permitted to use.
|
|
18
|
+
* Empty/undefined ⇒ all supported layers.
|
|
19
|
+
* @param useDevContracts Pull from the dev address book instead of mainnet.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getArbitersForSettlementLayers(layers: readonly CrossChainSettlementLayer[] | undefined, useDevContracts?: boolean): Address[] | undefined;
|
|
22
|
+
//# sourceMappingURL=arbiters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arbiters.d.ts","sourceRoot":"","sources":["../../../../../../modules/validators/policies/claim/arbiters.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACnC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAA;AAiBlE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,SAAS,yBAAyB,EAAE,GAAG,SAAS,EACxD,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,EAAE,GAAG,SAAS,CA8BvB"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { contractAddresses, contractAddressesDev, } from '@rhinestone/shared-configs';
|
|
2
|
+
/**
|
|
3
|
+
* The contract registry keys (per `shared-configs/contracts.{,dev}.js`)
|
|
4
|
+
* that each settlement layer expands to. `ACROSS` whitelists both arbiter
|
|
5
|
+
* impls so a session is permissioned for the 7579 and multicall paths
|
|
6
|
+
* regardless of which one the orchestrator picks at intent time.
|
|
7
|
+
*/
|
|
8
|
+
const SETTLEMENT_LAYER_CONTRACT_KEYS = {
|
|
9
|
+
SAME_CHAIN: ['samechainArbiter'],
|
|
10
|
+
ECO: ['ecoArbiter'],
|
|
11
|
+
ACROSS: ['across7579Arbiter', 'acrossMulticallArbiter'],
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Collects every distinct arbiter address that any chain in the registry
|
|
15
|
+
* has deployed for the given settlement layers. The resulting whitelist
|
|
16
|
+
* is what the Permit2 claim policy enforces on-chain — a session signed
|
|
17
|
+
* once with this whitelist is valid against any of those arbiters.
|
|
18
|
+
*
|
|
19
|
+
* **"Any" means any of the *supported* settlement layers**, not any
|
|
20
|
+
* address on earth. When `layers` is empty or undefined, this resolver
|
|
21
|
+
* expands to the union of every layer in
|
|
22
|
+
* {@link SETTLEMENT_LAYER_CONTRACT_KEYS}, so the on-chain arbiter check
|
|
23
|
+
* stays meaningful (the worst case is still a Rhinestone-blessed
|
|
24
|
+
* arbiter). To get a truly unrestricted whitelist a caller would have
|
|
25
|
+
* to bypass this helper entirely.
|
|
26
|
+
*
|
|
27
|
+
* @param layers Settlement layers the session is permitted to use.
|
|
28
|
+
* Empty/undefined ⇒ all supported layers.
|
|
29
|
+
* @param useDevContracts Pull from the dev address book instead of mainnet.
|
|
30
|
+
*/
|
|
31
|
+
export function getArbitersForSettlementLayers(layers, useDevContracts) {
|
|
32
|
+
const effectiveLayers = !layers || layers.length === 0
|
|
33
|
+
? Object.keys(SETTLEMENT_LAYER_CONTRACT_KEYS)
|
|
34
|
+
: layers;
|
|
35
|
+
const registry = useDevContracts ? contractAddressesDev : contractAddresses;
|
|
36
|
+
const keys = effectiveLayers.flatMap((l) => SETTLEMENT_LAYER_CONTRACT_KEYS[l]);
|
|
37
|
+
const seen = new Set();
|
|
38
|
+
const addresses = [];
|
|
39
|
+
// shared-configs is shaped Record<chainId, Record<contractKey, Address>>.
|
|
40
|
+
// The same logical arbiter often shares an address across chains, but a
|
|
41
|
+
// given key may also have multiple addresses live in the wild (e.g.
|
|
42
|
+
// post-redeploy). We collect every unique address we see for the keys
|
|
43
|
+
// the caller asked for, deduplicated case-insensitively.
|
|
44
|
+
for (const chainContracts of Object.values(registry)) {
|
|
45
|
+
for (const key of keys) {
|
|
46
|
+
const addr = chainContracts[key];
|
|
47
|
+
if (!addr)
|
|
48
|
+
continue;
|
|
49
|
+
const norm = addr.toLowerCase();
|
|
50
|
+
if (seen.has(norm))
|
|
51
|
+
continue;
|
|
52
|
+
seen.add(norm);
|
|
53
|
+
addresses.push(addr);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return addresses.length ? addresses : undefined;
|
|
57
|
+
}
|
|
@@ -2,7 +2,7 @@ import { type Abi, type Address, type Hex, type TypedDataDefinition } from 'viem
|
|
|
2
2
|
import type { Permit2ClaimPolicy, Policy, ProviderConfig, ResolvedAction, ResolvedERC7739Policies, ResolvedPolicy, RhinestoneAccountConfig, RhinestoneConfig, Session, SessionDefinition, SessionEnableData } from '../../types.js';
|
|
3
3
|
import { type Module } from '../common.js';
|
|
4
4
|
import { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV } from './core.js';
|
|
5
|
-
import { type InternalPermit2ClaimPolicy } from './policies/claim/permit2.js';
|
|
5
|
+
import { type InternalPermit2ClaimPolicy, type Permit2ClaimMessage } from './policies/claim/permit2.js';
|
|
6
6
|
interface SessionData {
|
|
7
7
|
sessionValidator: Address;
|
|
8
8
|
sessionValidatorInitData: Hex;
|
|
@@ -187,6 +187,15 @@ declare function getEnableSessionCall(account: Address, session: Session, enable
|
|
|
187
187
|
declare function toSession<const TAbis extends readonly Abi[]>(definition: SessionDefinition<TAbis>, options?: {
|
|
188
188
|
useDevContracts?: boolean;
|
|
189
189
|
}): Session;
|
|
190
|
+
/**
|
|
191
|
+
* Selects the claim policy whose constraints the given Permit2 message
|
|
192
|
+
* satisfies. With 0–1 policies the choice is trivial; with several, returns
|
|
193
|
+
* the first match in list order (aligns with the contract iterating its
|
|
194
|
+
* stored claim policies). Falls back to the first policy when nothing matches
|
|
195
|
+
* so behaviour is never worse than the previous always-`[0]` logic — the
|
|
196
|
+
* resulting on-chain failure is then identical to before.
|
|
197
|
+
*/
|
|
198
|
+
declare function selectPermit2ClaimPolicyForMessage(claimPolicies: readonly Permit2ClaimPolicy[], message: Permit2ClaimMessage): Permit2ClaimPolicy | undefined;
|
|
190
199
|
declare function resolvePermit2ClaimPolicy(policy: Permit2ClaimPolicy): InternalPermit2ClaimPolicy;
|
|
191
200
|
declare function getSessionData(session: Session): SessionData;
|
|
192
201
|
declare function getPermissionId(session: Session): `0x${string}`;
|
|
@@ -207,6 +216,6 @@ declare function getSmartSessionValidator(config: RhinestoneConfig): Module | nu
|
|
|
207
216
|
*/
|
|
208
217
|
type SmartSessionMockShape = 'enable' | 'use' | 'erc1271';
|
|
209
218
|
declare function buildMockSignature(session: Session, useDevContracts?: boolean, chainCount?: number, targetChainId?: number, shape?: SmartSessionMockShape): Hex;
|
|
210
|
-
export { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, SMART_SESSIONS_FALLBACK_TARGET_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION, DUMMY_PRECLAIMOP_TARGET, DUMMY_PRECLAIMOP_SELECTOR, SPENDING_LIMITS_POLICY_ADDRESS, TIME_FRAME_POLICY_ADDRESS, SUDO_POLICY_ADDRESS, UNIVERSAL_ACTION_POLICY_ADDRESS, ARG_POLICY_ADDRESS, USAGE_LIMIT_POLICY_ADDRESS, VALUE_LIMIT_POLICY_ADDRESS, INTENT_EXECUTION_POLICY_ADDRESS, packSignature, toSession, resolvePermit2ClaimPolicy, getSessionData, getPolicyData, getEnableSessionCall, getPermissionId, getSmartSessionValidator, getSessionDetails, isSessionEnabled, signEnableSession, buildMockSignature, };
|
|
219
|
+
export { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, SMART_SESSIONS_FALLBACK_TARGET_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION, DUMMY_PRECLAIMOP_TARGET, DUMMY_PRECLAIMOP_SELECTOR, SPENDING_LIMITS_POLICY_ADDRESS, TIME_FRAME_POLICY_ADDRESS, SUDO_POLICY_ADDRESS, UNIVERSAL_ACTION_POLICY_ADDRESS, ARG_POLICY_ADDRESS, USAGE_LIMIT_POLICY_ADDRESS, VALUE_LIMIT_POLICY_ADDRESS, INTENT_EXECUTION_POLICY_ADDRESS, packSignature, toSession, resolvePermit2ClaimPolicy, selectPermit2ClaimPolicyForMessage, getSessionData, getPolicyData, getEnableSessionCall, getPermissionId, getSmartSessionValidator, getSessionDetails, isSessionEnabled, signEnableSession, buildMockSignature, };
|
|
211
220
|
export type { ChainSession, ChainDigest, ResolvedSessionSignerSet, SessionData, SmartSessionModeType, SessionDetails, };
|
|
212
221
|
//# sourceMappingURL=smart-sessions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/smart-sessions.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EAMZ,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/smart-sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LibZip } from 'solady';
|
|
2
|
-
import { concat, createPublicClient, encodeAbiParameters, encodeFunctionData, encodePacked, hashStruct, isHex, keccak256, maxUint256, padHex, size, toFunctionSelector, toHex, zeroAddress, zeroHash, } from 'viem';
|
|
2
|
+
import { concat, createPublicClient, encodeAbiParameters, encodeFunctionData, encodePacked, hashStruct, isAddressEqual, isHex, keccak256, maxUint256, padHex, size, toFunctionSelector, toHex, zeroAddress, zeroHash, } from 'viem';
|
|
3
3
|
import { mainnet } from 'viem/chains';
|
|
4
4
|
import { getAccountProvider } from '../../accounts/index.js';
|
|
5
5
|
import { K1_DEFAULT_VALIDATOR_ADDRESS } from '../../accounts/startale.js';
|
|
@@ -10,7 +10,8 @@ import { getChainById, getWrappedTokenAddress, } from '../../orchestrator/regist
|
|
|
10
10
|
import smartSessionEmissaryAbi from '../abi/smart-session-emissary.js';
|
|
11
11
|
import { MODULE_TYPE_ID_VALIDATOR } from '../common.js';
|
|
12
12
|
import { getOwnerValidator, getValidator, ownerSetUsesEns, SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, } from './core.js';
|
|
13
|
-
import { resolvePermissions } from './permissions.js';
|
|
13
|
+
import { FAR_FUTURE_MS, resolvePermissions } from './permissions.js';
|
|
14
|
+
import { getArbitersForSettlementLayers } from './policies/claim/arbiters.js';
|
|
14
15
|
import { encodePermit2ClaimPolicyInitData, PERMIT2_CLAIM_POLICY_ADDRESS, } from './policies/claim/permit2.js';
|
|
15
16
|
const types = {
|
|
16
17
|
PolicyData: [
|
|
@@ -431,6 +432,12 @@ async function getEnableSessionCall(account, session, enableSessionSignature, ha
|
|
|
431
432
|
function toSession(definition, options = {}) {
|
|
432
433
|
const addresses = resolvePolicyAddresses(definition.policyAddresses);
|
|
433
434
|
const sessionData = resolveSessionData(definition, options.useDevContracts, addresses);
|
|
435
|
+
// Cross-chain permits add synthesized claim policies that must appear
|
|
436
|
+
// on the returned `Session` too — `getSessionData(session)` re-encodes
|
|
437
|
+
// from `session.claimPolicies` at signing time, so missing entries
|
|
438
|
+
// here would diverge from what `resolveSessionData` already baked
|
|
439
|
+
// into `sessionData.claimPolicies` for the permission-ID hash.
|
|
440
|
+
const expandedCrossChainClaims = (definition.crossChainPermits ?? []).map((p) => expandCrossChainPermit(p, options.useDevContracts).claim);
|
|
434
441
|
return {
|
|
435
442
|
chain: definition.chain,
|
|
436
443
|
owners: definition.owners,
|
|
@@ -441,8 +448,173 @@ function toSession(definition, options = {}) {
|
|
|
441
448
|
salt: sessionData.salt,
|
|
442
449
|
erc7739Policies: sessionData.erc7739Policies,
|
|
443
450
|
actions: sessionData.actions,
|
|
444
|
-
claimPolicies:
|
|
451
|
+
claimPolicies: [
|
|
452
|
+
...(definition.claimPolicies ?? []),
|
|
453
|
+
...expandedCrossChainClaims,
|
|
454
|
+
],
|
|
455
|
+
};
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Expands one {@link CrossChainPermit} into:
|
|
459
|
+
*
|
|
460
|
+
* - a {@link Permit2ClaimPolicy} for `SessionDefinition.claimPolicies`
|
|
461
|
+
* (gates Permit2 arbiter settlement) — settlement layers are resolved
|
|
462
|
+
* to canonical arbiter addresses via
|
|
463
|
+
* {@link getArbitersForSettlementLayers}.
|
|
464
|
+
* - optional {@link SpendingLimitsPolicy} / {@link TimeFramePolicy}
|
|
465
|
+
* entries for the session's fallback action — the claim policy itself
|
|
466
|
+
* doesn't enforce amounts or expiry on-chain, so we lift those
|
|
467
|
+
* guarantees into action-level policies that do.
|
|
468
|
+
*
|
|
469
|
+
* An Intent Executor policy is intentionally NOT synthesized: the
|
|
470
|
+
* params-bearing on-chain contract is still being designed in
|
|
471
|
+
* smart-sessions-v2 (PR #46). Once it lands, this helper grows a second
|
|
472
|
+
* branch that emits matching constraints there.
|
|
473
|
+
*/
|
|
474
|
+
function expandCrossChainPermit(permit, useDevContracts) {
|
|
475
|
+
// `from`/`to` are optional: an absent leg list means "no token/chain
|
|
476
|
+
// restriction on that side" — we emit `undefined` so the underlying
|
|
477
|
+
// Permit2 policy skips the check entirely (matching how every other
|
|
478
|
+
// policy field treats undefined as unrestricted).
|
|
479
|
+
const sourceTokens = permit.from?.length
|
|
480
|
+
? permit.from.map(({ chain, token }) => ({ chain, address: token }))
|
|
481
|
+
: undefined;
|
|
482
|
+
const destinationTokens = permit.to?.length
|
|
483
|
+
? permit.to.map(({ chain, token }) => ({ chain, address: token }))
|
|
484
|
+
: undefined;
|
|
485
|
+
// Only emit a `recipients` whitelist when at least one destination
|
|
486
|
+
// leg pins a concrete recipient (or the explicit `'any'` sentinel).
|
|
487
|
+
// Leaving the field undefined disables the on-chain recipient check
|
|
488
|
+
// entirely; emitting `['any', ...]` would force the contract into
|
|
489
|
+
// recipient-check mode without actually restricting anything.
|
|
490
|
+
const recipientsList = (permit.to ?? [])
|
|
491
|
+
.filter((t) => t.recipient !== undefined)
|
|
492
|
+
.map((t) => ({
|
|
493
|
+
chain: t.chain,
|
|
494
|
+
address: t.recipient,
|
|
495
|
+
}));
|
|
496
|
+
const recipients = recipientsList.length ? recipientsList : undefined;
|
|
497
|
+
const permitDeadline = permit.validAfter !== undefined || permit.validUntil !== undefined
|
|
498
|
+
? { min: permit.validAfter, max: permit.validUntil }
|
|
499
|
+
: undefined;
|
|
500
|
+
// Resolve the dev-friendly settlement-layer selectors into the actual
|
|
501
|
+
// Permit2 arbiter addresses the on-chain policy enforces. Empty or
|
|
502
|
+
// undefined ⇒ union of all supported layers (never an empty
|
|
503
|
+
// whitelist that disables the on-chain check).
|
|
504
|
+
const spenders = getArbitersForSettlementLayers(permit.settlementLayers, useDevContracts);
|
|
505
|
+
const claim = {
|
|
506
|
+
type: 'permit2',
|
|
507
|
+
spenders,
|
|
508
|
+
sourceTokens,
|
|
509
|
+
destinationTokens,
|
|
510
|
+
recipients,
|
|
511
|
+
recipientIsAccount: permit.recipientIsAccount,
|
|
512
|
+
permitDeadline,
|
|
513
|
+
fillDeadline: permit.fillDeadline,
|
|
445
514
|
};
|
|
515
|
+
const fallbackPolicies = [];
|
|
516
|
+
// Per-origin amount caps: the Permit2 claim policy doesn't enforce
|
|
517
|
+
// amounts on-chain, so we lift those caps into a separate
|
|
518
|
+
// `SpendingLimitsPolicy` on the fallback action. This keeps the
|
|
519
|
+
// user-facing promise ("at most X of token Y") honest.
|
|
520
|
+
const limits = (permit.from ?? [])
|
|
521
|
+
.filter((f) => f.maxAmount !== undefined)
|
|
522
|
+
.map((f) => ({ token: f.token, amount: f.maxAmount }));
|
|
523
|
+
if (limits.length) {
|
|
524
|
+
fallbackPolicies.push({ type: 'spending-limits', limits });
|
|
525
|
+
}
|
|
526
|
+
// Time-frame: the on-chain TimeFramePolicy expects millisecond inputs
|
|
527
|
+
// (see `case 'time-frame'` in getPolicyData), while CrossChainPermit
|
|
528
|
+
// uses unix-seconds bigints — matching the Permit2 deadline
|
|
529
|
+
// convention. We convert at the boundary so both encoders see their
|
|
530
|
+
// preferred unit.
|
|
531
|
+
//
|
|
532
|
+
// One-sided bounds get always-passing defaults, mirroring the
|
|
533
|
+
// permission resolver: an unset `validUntil` defaults to the year-2100
|
|
534
|
+
// sentinel (NOT 0 — that would make the policy expired the moment
|
|
535
|
+
// `validAfter` is reached), and an unset `validAfter` defaults to 0.
|
|
536
|
+
if (permitDeadline) {
|
|
537
|
+
const validUntilMs = permit.validUntil !== undefined
|
|
538
|
+
? Number(permit.validUntil * 1000n)
|
|
539
|
+
: FAR_FUTURE_MS;
|
|
540
|
+
const validAfterMs = permit.validAfter !== undefined ? Number(permit.validAfter * 1000n) : 0;
|
|
541
|
+
fallbackPolicies.push({
|
|
542
|
+
type: 'time-frame',
|
|
543
|
+
validUntil: validUntilMs,
|
|
544
|
+
validAfter: validAfterMs,
|
|
545
|
+
});
|
|
546
|
+
}
|
|
547
|
+
return { claim, fallbackPolicies };
|
|
548
|
+
}
|
|
549
|
+
/**
|
|
550
|
+
* True when `message` satisfies every dimension `policy` constrains. Used to
|
|
551
|
+
* pick the correct claim policy at Permit2-signing time when a session holds
|
|
552
|
+
* more than one (e.g. a user claim policy plus one or more cross-chain
|
|
553
|
+
* permits).
|
|
554
|
+
*
|
|
555
|
+
* The on-chain emissary validates a Permit2 claim against the matching claim
|
|
556
|
+
* policy, and `buildPermit2ClaimPolicyCalldata` expands the message
|
|
557
|
+
* differently per policy (the calldata layout depends on which mode bits a
|
|
558
|
+
* policy enables). Signing calldata for the wrong policy decodes incorrectly
|
|
559
|
+
* on-chain and fails ERC-1271 validation — hence we must match.
|
|
560
|
+
*
|
|
561
|
+
* Only constrained dimensions are checked; an unset policy field imposes no
|
|
562
|
+
* requirement (mirrors the contract's "skip the check" semantics). Source
|
|
563
|
+
* tokens are matched by address alone because the Permit2 message carries no
|
|
564
|
+
* origin chain id; destination tokens / recipients are scoped to the
|
|
565
|
+
* mandate's `targetChain`.
|
|
566
|
+
*/
|
|
567
|
+
function permit2ClaimPolicyMatchesMessage(policy, message) {
|
|
568
|
+
// Spender (arbiter) — the primary discriminator between settlement layers.
|
|
569
|
+
if (policy.spenders?.length) {
|
|
570
|
+
if (!policy.spenders.some((s) => isAddressEqual(s, message.spender))) {
|
|
571
|
+
return false;
|
|
572
|
+
}
|
|
573
|
+
}
|
|
574
|
+
// Source tokens: every permitted token must be allow-listed (by address).
|
|
575
|
+
if (policy.sourceTokens?.length) {
|
|
576
|
+
const allowed = new Set(policy.sourceTokens.map((t) => t.address.toLowerCase()));
|
|
577
|
+
if (!message.permitted.every((p) => allowed.has(p.token.toLowerCase()))) {
|
|
578
|
+
return false;
|
|
579
|
+
}
|
|
580
|
+
}
|
|
581
|
+
const targetChain = message.mandate.target.targetChain;
|
|
582
|
+
// Destination tokens: every mandate output token must be allow-listed for
|
|
583
|
+
// the destination chain.
|
|
584
|
+
if (policy.destinationTokens?.length) {
|
|
585
|
+
const allowed = new Set(policy.destinationTokens
|
|
586
|
+
.filter((t) => BigInt(t.chain.id) === targetChain)
|
|
587
|
+
.map((t) => t.address.toLowerCase()));
|
|
588
|
+
if (!message.mandate.target.tokenOut.every((o) => allowed.has(o.token.toLowerCase()))) {
|
|
589
|
+
return false;
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
// Recipient: scoped to the destination chain. An `'any'` entry for that
|
|
593
|
+
// chain accepts any recipient.
|
|
594
|
+
if (policy.recipients?.length) {
|
|
595
|
+
const entries = policy.recipients.filter((r) => BigInt(r.chain.id) === targetChain);
|
|
596
|
+
if (entries.length) {
|
|
597
|
+
const recipient = message.mandate.target.recipient;
|
|
598
|
+
const matches = entries.some((r) => r.address === 'any' || isAddressEqual(r.address, recipient));
|
|
599
|
+
if (!matches)
|
|
600
|
+
return false;
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
return true;
|
|
604
|
+
}
|
|
605
|
+
/**
|
|
606
|
+
* Selects the claim policy whose constraints the given Permit2 message
|
|
607
|
+
* satisfies. With 0–1 policies the choice is trivial; with several, returns
|
|
608
|
+
* the first match in list order (aligns with the contract iterating its
|
|
609
|
+
* stored claim policies). Falls back to the first policy when nothing matches
|
|
610
|
+
* so behaviour is never worse than the previous always-`[0]` logic — the
|
|
611
|
+
* resulting on-chain failure is then identical to before.
|
|
612
|
+
*/
|
|
613
|
+
function selectPermit2ClaimPolicyForMessage(claimPolicies, message) {
|
|
614
|
+
if (claimPolicies.length <= 1)
|
|
615
|
+
return claimPolicies[0];
|
|
616
|
+
return (claimPolicies.find((p) => permit2ClaimPolicyMatchesMessage(p, message)) ??
|
|
617
|
+
claimPolicies[0]);
|
|
446
618
|
}
|
|
447
619
|
function resolvePermit2ClaimPolicy(policy) {
|
|
448
620
|
return {
|
|
@@ -505,6 +677,14 @@ function resolveSessionData(session, useDevContracts, addresses = DEFAULT_POLICY
|
|
|
505
677
|
const userActions = session.permissions?.length
|
|
506
678
|
? resolvePermissions(session.permissions)
|
|
507
679
|
: [];
|
|
680
|
+
// Expand every cross-chain permit into a (claim, fallbackPolicies)
|
|
681
|
+
// pair. The claim policies go onto `session.claimPolicies` (Permit2
|
|
682
|
+
// settlement); the fallback policies (SpendingLimits / TimeFrame
|
|
683
|
+
// derived from maxAmount / validUntil) are appended to the injected
|
|
684
|
+
// fallback action below.
|
|
685
|
+
const expandedPermits = (session.crossChainPermits ?? []).map((p) => expandCrossChainPermit(p, useDevContracts));
|
|
686
|
+
const extraClaimPolicies = expandedPermits.map((e) => e.claim);
|
|
687
|
+
const permitFallbackPolicies = expandedPermits.flatMap((e) => e.fallbackPolicies);
|
|
508
688
|
const injectedActions = [
|
|
509
689
|
// Native token wrapping
|
|
510
690
|
{
|
|
@@ -517,8 +697,17 @@ function resolveSessionData(session, useDevContracts, addresses = DEFAULT_POLICY
|
|
|
517
697
|
stateMutability: 'payable',
|
|
518
698
|
}),
|
|
519
699
|
},
|
|
520
|
-
// Intent-execution fallback for any non-scoped call.
|
|
521
|
-
|
|
700
|
+
// Intent-execution fallback for any non-scoped call. Cross-chain
|
|
701
|
+
// permits attach their synthesized SpendingLimits / TimeFrame
|
|
702
|
+
// guardrails to this same fallback so the on-chain emissary applies
|
|
703
|
+
// them when the orchestrator drives a bridge through the fallback
|
|
704
|
+
// action path.
|
|
705
|
+
{
|
|
706
|
+
policies: [
|
|
707
|
+
{ type: 'intent-execution' },
|
|
708
|
+
...permitFallbackPolicies,
|
|
709
|
+
],
|
|
710
|
+
},
|
|
522
711
|
// Dummy action: allows the filler to call verifyExecution in ENABLE mode using
|
|
523
712
|
// an injected dummy preclaimop so any session can be enabled on-chain without
|
|
524
713
|
// a separate UserOp, regardless of whether it has claim or action policies.
|
|
@@ -529,7 +718,12 @@ function resolveSessionData(session, useDevContracts, addresses = DEFAULT_POLICY
|
|
|
529
718
|
},
|
|
530
719
|
];
|
|
531
720
|
const allActions = [...userActions, ...injectedActions];
|
|
532
|
-
|
|
721
|
+
// When there are cross-chain permits but no explicit user actions, we
|
|
722
|
+
// still want the injected fallback (with its synthesized guardrails)
|
|
723
|
+
// to land on-chain — otherwise the legacy `[sudoAction]` path drops
|
|
724
|
+
// the SpendingLimits / TimeFrame the user explicitly asked for.
|
|
725
|
+
const needsInjection = userActions.length || permitFallbackPolicies.length;
|
|
726
|
+
const actions = needsInjection
|
|
533
727
|
? allActions.map((action) => ({
|
|
534
728
|
actionTargetSelector: 'selector' in action
|
|
535
729
|
? action.selector
|
|
@@ -545,16 +739,25 @@ function resolveSessionData(session, useDevContracts, addresses = DEFAULT_POLICY
|
|
|
545
739
|
],
|
|
546
740
|
}))
|
|
547
741
|
: [sudoAction];
|
|
742
|
+
// Concatenate user-supplied claim policies with the ones synthesized
|
|
743
|
+
// from cross-chain permits. Order is not security-sensitive — the
|
|
744
|
+
// on-chain contract iterates the full list — but we keep user
|
|
745
|
+
// policies first for deterministic permission IDs across SDK
|
|
746
|
+
// releases that add permit expansion.
|
|
747
|
+
const allClaimPolicies = [
|
|
748
|
+
...(session.claimPolicies ?? []),
|
|
749
|
+
...extraClaimPolicies,
|
|
750
|
+
];
|
|
548
751
|
return {
|
|
549
752
|
sessionValidator: validator.address,
|
|
550
753
|
salt: zeroHash,
|
|
551
754
|
sessionValidatorInitData: validator.initData,
|
|
552
755
|
erc7739Policies: erc7739Data,
|
|
553
756
|
actions,
|
|
554
|
-
claimPolicies:
|
|
757
|
+
claimPolicies: allClaimPolicies.map((policy) => ({
|
|
555
758
|
policy: PERMIT2_CLAIM_POLICY_ADDRESS,
|
|
556
759
|
initData: encodePermit2ClaimPolicyInitData(resolvePermit2ClaimPolicy(policy)),
|
|
557
|
-
}))
|
|
760
|
+
})),
|
|
558
761
|
};
|
|
559
762
|
}
|
|
560
763
|
function getSessionData(session) {
|
|
@@ -919,4 +1122,4 @@ shape = 'enable') {
|
|
|
919
1122
|
function createFixedArray(length, getValue) {
|
|
920
1123
|
return Array.from({ length }, (_, i) => getValue(i));
|
|
921
1124
|
}
|
|
922
|
-
export { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, SMART_SESSIONS_FALLBACK_TARGET_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION, DUMMY_PRECLAIMOP_TARGET, DUMMY_PRECLAIMOP_SELECTOR, SPENDING_LIMITS_POLICY_ADDRESS, TIME_FRAME_POLICY_ADDRESS, SUDO_POLICY_ADDRESS, UNIVERSAL_ACTION_POLICY_ADDRESS, ARG_POLICY_ADDRESS, USAGE_LIMIT_POLICY_ADDRESS, VALUE_LIMIT_POLICY_ADDRESS, INTENT_EXECUTION_POLICY_ADDRESS, packSignature, toSession, resolvePermit2ClaimPolicy, getSessionData, getPolicyData, getEnableSessionCall, getPermissionId, getSmartSessionValidator, getSessionDetails, isSessionEnabled, signEnableSession, buildMockSignature, };
|
|
1125
|
+
export { SMART_SESSION_EMISSARY_ADDRESS, SMART_SESSION_EMISSARY_ADDRESS_DEV, SMART_SESSIONS_FALLBACK_TARGET_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG, SMART_SESSIONS_FALLBACK_TARGET_SELECTOR_FLAG_PERMITTED_TO_CALL_SMARTSESSION, DUMMY_PRECLAIMOP_TARGET, DUMMY_PRECLAIMOP_SELECTOR, SPENDING_LIMITS_POLICY_ADDRESS, TIME_FRAME_POLICY_ADDRESS, SUDO_POLICY_ADDRESS, UNIVERSAL_ACTION_POLICY_ADDRESS, ARG_POLICY_ADDRESS, USAGE_LIMIT_POLICY_ADDRESS, VALUE_LIMIT_POLICY_ADDRESS, INTENT_EXECUTION_POLICY_ADDRESS, packSignature, toSession, resolvePermit2ClaimPolicy, selectPermit2ClaimPolicyForMessage, getSessionData, getPolicyData, getEnableSessionCall, getPermissionId, getSmartSessionValidator, getSessionDetails, isSessionEnabled, signEnableSession, buildMockSignature, };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
declare const PROD_ORCHESTRATOR_URL = "https://v1.orchestrator.rhinestone.dev";
|
|
2
2
|
declare const RHINESTONE_SPOKE_POOL_ADDRESS = "0x000000000060f6e853447881951574cdd0663530";
|
|
3
|
-
declare const SDK_VERSION = "2.0.0-beta.
|
|
3
|
+
declare const SDK_VERSION = "2.0.0-beta.26";
|
|
4
4
|
declare const API_VERSION = "2026-04.blanc";
|
|
5
5
|
export { PROD_ORCHESTRATOR_URL, RHINESTONE_SPOKE_POOL_ADDRESS, SDK_VERSION, API_VERSION, };
|
|
6
6
|
//# sourceMappingURL=consts.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const PROD_ORCHESTRATOR_URL = 'https://v1.orchestrator.rhinestone.dev';
|
|
2
2
|
const RHINESTONE_SPOKE_POOL_ADDRESS = '0x000000000060f6e853447881951574cdd0663530';
|
|
3
|
-
const SDK_VERSION = '2.0.0-beta.
|
|
3
|
+
const SDK_VERSION = '2.0.0-beta.26';
|
|
4
4
|
const API_VERSION = '2026-04.blanc';
|
|
5
5
|
export { PROD_ORCHESTRATOR_URL, RHINESTONE_SPOKE_POOL_ADDRESS, SDK_VERSION, API_VERSION, };
|
package/dist/src/types.d.ts
CHANGED
|
@@ -169,6 +169,77 @@ interface Permit2ClaimPolicy {
|
|
|
169
169
|
max?: bigint;
|
|
170
170
|
}[];
|
|
171
171
|
}
|
|
172
|
+
/**
|
|
173
|
+
* Settlement layers supported by the cross-chain session abstraction.
|
|
174
|
+
* Each value maps to one or more Permit2 arbiter addresses sourced from
|
|
175
|
+
* `@rhinestone/shared-configs` — devs pick a layer, the SDK resolves it
|
|
176
|
+
* to the on-chain arbiter whitelist.
|
|
177
|
+
*
|
|
178
|
+
* The set is intentionally narrower than the orchestrator's broader
|
|
179
|
+
* `SettlementLayer` union (which also names intent-executor-backed
|
|
180
|
+
* bridges like `CCTP`, `RHINO`, ...). Once the params-bearing
|
|
181
|
+
* intent-executor policy lands in smart-sessions-v2 (see
|
|
182
|
+
* `rhinestonewtf/smart-sessions-v2#46`), this union grows to cover those
|
|
183
|
+
* layers via the same selector interface.
|
|
184
|
+
*/
|
|
185
|
+
type CrossChainSettlementLayer = 'SAME_CHAIN' | 'ECO' | 'ACROSS';
|
|
186
|
+
/**
|
|
187
|
+
* A high-level permit that authorises a session key to move funds
|
|
188
|
+
* between two chains via Permit2 arbiter settlement. The SDK expands
|
|
189
|
+
* one `CrossChainPermit` into a {@link Permit2ClaimPolicy} (claim-side)
|
|
190
|
+
* plus optional {@link SpendingLimitsPolicy} / {@link TimeFramePolicy}
|
|
191
|
+
* entries on the fallback action — the claim policy itself doesn't
|
|
192
|
+
* enforce amounts or expiry on-chain, so we lift those guarantees into
|
|
193
|
+
* action-level policies that do.
|
|
194
|
+
*
|
|
195
|
+
* Use `createCrossChainPermission()` to build this from an ergonomic
|
|
196
|
+
* shape (token symbols, single object instead of array, `Date`
|
|
197
|
+
* validity).
|
|
198
|
+
*/
|
|
199
|
+
interface CrossChainPermit {
|
|
200
|
+
/**
|
|
201
|
+
* Allowed source legs: chain + token (+ optional max amount cap).
|
|
202
|
+
* Omit for no source-token restriction (any token on any chain may be
|
|
203
|
+
* pulled) — only the arbiter whitelist, deadline, and bridge-to-self
|
|
204
|
+
* flag then constrain the source side.
|
|
205
|
+
*/
|
|
206
|
+
from?: {
|
|
207
|
+
chain: Chain;
|
|
208
|
+
token: Address;
|
|
209
|
+
maxAmount?: bigint;
|
|
210
|
+
}[];
|
|
211
|
+
/**
|
|
212
|
+
* Allowed destination legs: chain + token (+ optional recipient pin).
|
|
213
|
+
* Omit for no destination-token restriction. Note `recipientIsAccount`
|
|
214
|
+
* still constrains the destination recipient even when `to` is absent.
|
|
215
|
+
*/
|
|
216
|
+
to?: {
|
|
217
|
+
chain: Chain;
|
|
218
|
+
token: Address;
|
|
219
|
+
recipient?: Address | 'any';
|
|
220
|
+
}[];
|
|
221
|
+
/** Upper bound on the permit deadline (Permit2 deadline) — unix seconds */
|
|
222
|
+
validUntil?: bigint;
|
|
223
|
+
/** Lower bound on the permit deadline — unix seconds */
|
|
224
|
+
validAfter?: bigint;
|
|
225
|
+
/** Per-destination fill-deadline windows — unix seconds */
|
|
226
|
+
fillDeadline?: {
|
|
227
|
+
chain: Chain;
|
|
228
|
+
min?: bigint;
|
|
229
|
+
max?: bigint;
|
|
230
|
+
}[];
|
|
231
|
+
/**
|
|
232
|
+
* Enforce bridge-to-self (the destination recipient must be the smart
|
|
233
|
+
* account). Defaults to `true` in `createCrossChainPermission`.
|
|
234
|
+
*/
|
|
235
|
+
recipientIsAccount?: boolean;
|
|
236
|
+
/**
|
|
237
|
+
* Settlement layers this session is permitted to use. Omit (or pass
|
|
238
|
+
* `[]`) for any supported layer — the SDK resolves to the union of
|
|
239
|
+
* every known arbiter from `@rhinestone/shared-configs`.
|
|
240
|
+
*/
|
|
241
|
+
settlementLayers?: CrossChainSettlementLayer[];
|
|
242
|
+
}
|
|
172
243
|
type Policy = SudoPolicy | UniversalActionPolicy | ArgPolicy | SpendingLimitsPolicy | TimeFramePolicy | UsageLimitPolicy | ValueLimitPolicy | IntentExecutionPolicy;
|
|
173
244
|
/** @internal */
|
|
174
245
|
interface FallbackAction {
|
|
@@ -300,6 +371,13 @@ interface SessionDefinition<TAbis extends readonly Abi[] = readonly Abi[]> {
|
|
|
300
371
|
owners: OwnerSet;
|
|
301
372
|
permissions?: readonly [...PermissionsForAbis<TAbis>];
|
|
302
373
|
claimPolicies?: readonly Permit2ClaimPolicy[];
|
|
374
|
+
/**
|
|
375
|
+
* Cross-chain permits expanded by the SDK into matching
|
|
376
|
+
* {@link Permit2ClaimPolicy} (claim-side) plus action-level
|
|
377
|
+
* {@link SpendingLimitsPolicy} / {@link TimeFramePolicy} guardrails.
|
|
378
|
+
* Use `createCrossChainPermission()` for an ergonomic builder.
|
|
379
|
+
*/
|
|
380
|
+
crossChainPermits?: readonly CrossChainPermit[];
|
|
303
381
|
/**
|
|
304
382
|
* Override one or more SmartSession policy addresses. Defaults to the latest
|
|
305
383
|
* V2 deployments. Use to pin to V1 deployments for an account that already
|
|
@@ -578,5 +656,5 @@ interface UserOperationTransaction {
|
|
|
578
656
|
chain: Chain;
|
|
579
657
|
}
|
|
580
658
|
type Transaction = SameChainTransaction | CrossChainTransaction;
|
|
581
|
-
export type { AccountType, SafeAccount, NexusAccount, KernelAccount, StartaleAccount, HcaAccount, EoaAccount, RhinestoneAccountConfig, RhinestoneSDKConfig, RhinestoneConfig, AccountProviderConfig, ProviderConfig, BundlerConfig, PaymasterConfig, Transaction, UserOperationTransaction, TokenSymbol, CalldataInput, LazyCallInput, CallInput, SourceCallProvidedFunds, SourceCallInput, CallResolveContext, Call, Sponsorship, TokenRequest, TokenRequests, NonEvmTokenRequest, NonEvmTokenRequests, SourceAssetInput, OwnerSet, OwnableValidatorConfig, ENSValidatorConfig, WebauthnValidatorConfig, MultiFactorValidatorConfig, SignerSet, ChainSessionConfig, SingleSessionSignerSet, PerChainSessionSignerSet, SessionSignerSet, SessionDefinition, SessionInput, SessionEnableData, Session, Recovery, ModuleType, ModuleInput, Action, ScopedAction, FallbackAction, Permission, PermissionsForAbis, PermissionFunctionConfig, ParamConstraint, ResolvedAction, ResolvedERC7739Content, ResolvedERC7739Policies, ResolvedPolicy, Policy, Permit2ClaimPolicy, UniversalActionPolicyParamCondition, ArgPolicyExpression, SessionPolicyAddresses, ApiKeyAuth, JwtAuth, AuthConfig, };
|
|
659
|
+
export type { AccountType, SafeAccount, NexusAccount, KernelAccount, StartaleAccount, HcaAccount, EoaAccount, RhinestoneAccountConfig, RhinestoneSDKConfig, RhinestoneConfig, AccountProviderConfig, ProviderConfig, BundlerConfig, PaymasterConfig, Transaction, UserOperationTransaction, TokenSymbol, CalldataInput, LazyCallInput, CallInput, SourceCallProvidedFunds, SourceCallInput, CallResolveContext, Call, Sponsorship, TokenRequest, TokenRequests, NonEvmTokenRequest, NonEvmTokenRequests, SourceAssetInput, OwnerSet, OwnableValidatorConfig, ENSValidatorConfig, WebauthnValidatorConfig, MultiFactorValidatorConfig, SignerSet, ChainSessionConfig, SingleSessionSignerSet, PerChainSessionSignerSet, SessionSignerSet, SessionDefinition, SessionInput, SessionEnableData, Session, Recovery, ModuleType, ModuleInput, Action, ScopedAction, FallbackAction, Permission, PermissionsForAbis, PermissionFunctionConfig, ParamConstraint, ResolvedAction, ResolvedERC7739Content, ResolvedERC7739Policies, ResolvedPolicy, Policy, Permit2ClaimPolicy, CrossChainPermit, CrossChainSettlementLayer, UniversalActionPolicyParamCondition, ArgPolicyExpression, SessionPolicyAddresses, ApiKeyAuth, JwtAuth, AuthConfig, };
|
|
582
660
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/src/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../types.ts"],"names":[],"mappings":"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"}
|