@rhinestone/sdk 0.4.0 → 0.4.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{accounts → src/accounts}/index.d.ts +207 -207
- package/dist/{accounts → src/accounts}/index.d.ts.map +1 -1
- package/dist/{accounts → src/accounts}/index.js +44 -40
- package/dist/{accounts → src/accounts}/nexus.d.ts +304 -304
- package/dist/{accounts → src/accounts}/nexus.d.ts.map +1 -1
- package/dist/{accounts → src/accounts}/nexus.js +7 -7
- package/dist/src/accounts/safe.d.ts +15524 -0
- package/dist/src/accounts/safe.d.ts.map +1 -0
- package/dist/{accounts → src/accounts}/safe.js +84 -9
- package/dist/{accounts → src/accounts}/utils.d.ts +1 -1
- package/dist/src/accounts/utils.d.ts.map +1 -0
- package/dist/{execution → src/execution}/index.d.ts +1 -1
- package/dist/src/execution/index.d.ts.map +1 -0
- package/dist/{execution → src/execution}/index.js +7 -8
- package/dist/{execution → src/execution}/smart-session.d.ts +2 -3
- package/dist/src/execution/smart-session.d.ts.map +1 -0
- package/dist/{execution → src/execution}/smart-session.js +4 -6
- package/dist/{index.d.ts → src/index.d.ts} +9 -3
- package/dist/src/index.d.ts.map +1 -0
- package/dist/{index.js → src/index.js} +21 -1
- package/dist/src/modules/abi/smart-sessions.d.ts.map +1 -0
- package/dist/src/modules/common.d.ts.map +1 -0
- package/dist/{modules → src/modules}/index.d.ts +1 -1
- package/dist/src/modules/index.d.ts.map +1 -0
- package/dist/{modules → src/modules}/index.js +16 -2
- package/dist/src/modules/omni-account.d.ts.map +1 -0
- package/dist/src/modules/validators/core.d.ts +23 -0
- package/dist/src/modules/validators/core.d.ts.map +1 -0
- package/dist/src/modules/validators/core.js +112 -0
- package/dist/src/modules/validators/index.d.ts +4 -0
- package/dist/src/modules/validators/index.d.ts.map +1 -0
- package/dist/src/modules/validators/index.js +3 -0
- package/dist/{modules/validators.d.ts → src/modules/validators/smart-sessions.d.ts} +4 -6
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -0
- package/dist/{modules/validators.js → src/modules/validators/smart-sessions.js} +7 -115
- package/dist/{orchestrator → src/orchestrator}/client.d.ts +2 -1
- package/dist/src/orchestrator/client.d.ts.map +1 -0
- package/dist/{orchestrator → src/orchestrator}/client.js +19 -2
- package/dist/src/orchestrator/consts.d.ts.map +1 -0
- package/dist/src/orchestrator/error.d.ts.map +1 -0
- package/dist/src/orchestrator/index.d.ts +11 -0
- package/dist/src/orchestrator/index.d.ts.map +1 -0
- package/dist/src/orchestrator/index.js +10 -0
- package/dist/{orchestrator → src/orchestrator}/registry.d.ts +5 -1
- package/dist/src/orchestrator/registry.d.ts.map +1 -0
- package/dist/{orchestrator → src/orchestrator}/registry.js +83 -2
- package/dist/{orchestrator → src/orchestrator}/types.d.ts +50 -2
- package/dist/src/orchestrator/types.d.ts.map +1 -0
- package/dist/{orchestrator → src/orchestrator}/utils.d.ts +6 -2
- package/dist/src/orchestrator/utils.d.ts.map +1 -0
- package/dist/{orchestrator → src/orchestrator}/utils.js +76 -2
- package/dist/{types.d.ts → src/types.d.ts} +5 -4
- package/dist/src/types.d.ts.map +1 -0
- package/dist/test/modules/validators/smart-sessions.test.d.ts +2 -0
- package/dist/test/modules/validators/smart-sessions.test.d.ts.map +1 -0
- package/dist/test/modules/validators/smart-sessions.test.js +20 -0
- package/package.json +6 -2
- package/dist/accounts/safe.d.ts +0 -15
- package/dist/accounts/safe.d.ts.map +0 -1
- package/dist/accounts/utils.d.ts.map +0 -1
- package/dist/examples/abi/weth.d.ts +0 -214
- package/dist/examples/abi/weth.d.ts.map +0 -1
- package/dist/examples/abi/weth.js +0 -279
- package/dist/examples/cross-chain-ss.d.ts +0 -1
- package/dist/examples/cross-chain-ss.d.ts.map +0 -1
- package/dist/examples/cross-chain-ss.js +0 -171
- package/dist/examples/giza.d.ts +0 -1
- package/dist/examples/giza.d.ts.map +0 -1
- package/dist/examples/giza.js +0 -124
- package/dist/examples/omni-account.d.ts +0 -1
- package/dist/examples/omni-account.d.ts.map +0 -1
- package/dist/examples/omni-account.js +0 -169
- package/dist/examples/smart-sessions.d.ts +0 -1
- package/dist/examples/smart-sessions.d.ts.map +0 -1
- package/dist/examples/smart-sessions.js +0 -216
- package/dist/execution/index.d.ts.map +0 -1
- package/dist/execution/smart-session.d.ts.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/modules/abi/smart-sessions.d.ts.map +0 -1
- package/dist/modules/common.d.ts.map +0 -1
- package/dist/modules/index.d.ts.map +0 -1
- package/dist/modules/omni-account.d.ts.map +0 -1
- package/dist/modules/validators.d.ts.map +0 -1
- package/dist/orchestrator/client.d.ts.map +0 -1
- package/dist/orchestrator/consts.d.ts.map +0 -1
- package/dist/orchestrator/error.d.ts.map +0 -1
- package/dist/orchestrator/index.d.ts +0 -9
- package/dist/orchestrator/index.d.ts.map +0 -1
- package/dist/orchestrator/index.js +0 -10
- package/dist/orchestrator/registry.d.ts.map +0 -1
- package/dist/orchestrator/types.d.ts.map +0 -1
- package/dist/orchestrator/utils.d.ts.map +0 -1
- package/dist/types.d.ts.map +0 -1
- package/dist/{accounts → src/accounts}/utils.js +1 -1
- /package/dist/{modules → src/modules}/abi/smart-sessions.d.ts +0 -0
- /package/dist/{modules → src/modules}/abi/smart-sessions.js +0 -0
- /package/dist/{modules → src/modules}/common.d.ts +0 -0
- /package/dist/{modules → src/modules}/common.js +0 -0
- /package/dist/{modules → src/modules}/omni-account.d.ts +0 -0
- /package/dist/{modules → src/modules}/omni-account.js +0 -0
- /package/dist/{orchestrator → src/orchestrator}/consts.d.ts +0 -0
- /package/dist/{orchestrator → src/orchestrator}/consts.js +0 -0
- /package/dist/{orchestrator → src/orchestrator}/error.d.ts +0 -0
- /package/dist/{orchestrator → src/orchestrator}/error.js +0 -0
- /package/dist/{orchestrator → src/orchestrator}/types.js +0 -0
- /package/dist/{types.js → src/types.js} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAIP,GAAG,EAEH,YAAY,EAGb,MAAM,MAAM,CAAA;AAeb,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAgBrE,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;;EA0ErD;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;8rBAsJ6vK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAA+mP,CAAC;uCAA6lC,CAAC;;;;;;;;;;;;;;;;sfAA81mB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA3I70iC;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;8rBAoI6vK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAA+mP,CAAC;uCAA6lC,CAAC;;;;;;;;;;;;;;;;sfAA81mB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA7G70iC;AA0ED,iBAAS,mBAAmB,IAAI,KAAK,CAEpC;AAED,iBAAS,gBAAgB,IAAI,KAAK,CAEjC;AAsBD,OAAO,EACL,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,CAAA"}
|
|
@@ -1,15 +1,18 @@
|
|
|
1
|
-
import { encodeFunctionData, encodePacked, keccak256, parseAbi, zeroAddress, } from 'viem';
|
|
1
|
+
import { concat, encodeFunctionData, encodePacked, keccak256, parseAbi, zeroAddress, } from 'viem';
|
|
2
|
+
import { entryPoint07Abi, entryPoint07Address, getUserOperationHash, toSmartAccount, } from 'viem/account-abstraction';
|
|
2
3
|
import { getSetup as getModuleSetup } from '../modules';
|
|
4
|
+
import { encodeSmartSessionSignature, getMockSignature, getPermissionId, SMART_SESSION_MODE_USE, } from '../modules/validators';
|
|
5
|
+
import { encode7579Calls, getAccountNonce } from './utils';
|
|
3
6
|
const SAFE_7579_LAUNCHPAD_ADDRESS = '0x7579011aB74c46090561ea277Ba79D510c6C00ff';
|
|
4
7
|
const SAFE_7579_ADAPTER_ADDRESS = '0x7579ee8307284f293b1927136486880611f20002';
|
|
5
8
|
const SAFE_SINGLETON_ADDRESS = '0x29fcb43b46531bca003ddc8fcb67ffe91900c762';
|
|
6
9
|
const SAFE_PROXY_FACTORY_ADDRESS = '0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec67';
|
|
7
10
|
const NO_SAFE_OWNER_ADDRESS = '0xbabe99e62d8bcbd3acf5ccbcfcd4f64fe75e5e72';
|
|
8
|
-
|
|
11
|
+
function getDeployArgs(config) {
|
|
9
12
|
{
|
|
10
13
|
const owners = getOwners(config);
|
|
11
14
|
const threshold = getThreshold(config);
|
|
12
|
-
const moduleSetup =
|
|
15
|
+
const moduleSetup = getModuleSetup(config);
|
|
13
16
|
const initData = encodeFunctionData({
|
|
14
17
|
abi: parseAbi([
|
|
15
18
|
'function setup(address[] calldata _owners,uint256 _threshold,address to,bytes calldata data,address fallbackHandler,address paymentToken,uint256 payment, address paymentReceiver) external',
|
|
@@ -73,18 +76,90 @@ async function getDeployArgs(config) {
|
|
|
73
76
|
};
|
|
74
77
|
}
|
|
75
78
|
}
|
|
76
|
-
async function getSmartAccount() {
|
|
77
|
-
|
|
79
|
+
async function getSmartAccount(client, address, owners, validatorAddress, sign) {
|
|
80
|
+
return getBaseSmartAccount(address, client, validatorAddress, async () => {
|
|
81
|
+
return getMockSignature(owners);
|
|
82
|
+
}, sign);
|
|
78
83
|
}
|
|
79
|
-
async function getSessionSmartAccount() {
|
|
80
|
-
|
|
84
|
+
async function getSessionSmartAccount(client, address, session, validatorAddress, sign) {
|
|
85
|
+
return await getBaseSmartAccount(address, client, validatorAddress, async () => {
|
|
86
|
+
const dummyOpSignature = getMockSignature(session.owners);
|
|
87
|
+
return encodeSmartSessionSignature(SMART_SESSION_MODE_USE, getPermissionId(session), dummyOpSignature);
|
|
88
|
+
}, async (hash) => {
|
|
89
|
+
const signature = await sign(hash);
|
|
90
|
+
return encodeSmartSessionSignature(SMART_SESSION_MODE_USE, getPermissionId(session), signature);
|
|
91
|
+
});
|
|
81
92
|
}
|
|
82
|
-
function
|
|
83
|
-
|
|
93
|
+
async function getBaseSmartAccount(address, client, validatorAddress, getStubSignature, signUserOperation) {
|
|
94
|
+
return await toSmartAccount({
|
|
95
|
+
client,
|
|
96
|
+
entryPoint: {
|
|
97
|
+
abi: entryPoint07Abi,
|
|
98
|
+
address: entryPoint07Address,
|
|
99
|
+
version: '0.7',
|
|
100
|
+
},
|
|
101
|
+
async decodeCalls() {
|
|
102
|
+
throw new Error('Not implemented');
|
|
103
|
+
},
|
|
104
|
+
async encodeCalls(calls) {
|
|
105
|
+
return encode7579Calls({
|
|
106
|
+
mode: {
|
|
107
|
+
type: calls.length > 1 ? 'batchcall' : 'call',
|
|
108
|
+
revertOnError: false,
|
|
109
|
+
selector: '0x',
|
|
110
|
+
context: '0x',
|
|
111
|
+
},
|
|
112
|
+
callData: calls,
|
|
113
|
+
});
|
|
114
|
+
},
|
|
115
|
+
async getAddress() {
|
|
116
|
+
return address;
|
|
117
|
+
},
|
|
118
|
+
async getFactoryArgs() {
|
|
119
|
+
return {};
|
|
120
|
+
},
|
|
121
|
+
async getNonce() {
|
|
122
|
+
const key = concat([validatorAddress, '0x00000000']);
|
|
123
|
+
const nonce = await getAccountNonce(client, {
|
|
124
|
+
address,
|
|
125
|
+
entryPointAddress: entryPoint07Address,
|
|
126
|
+
key: BigInt(key),
|
|
127
|
+
});
|
|
128
|
+
return nonce;
|
|
129
|
+
},
|
|
130
|
+
async getStubSignature() {
|
|
131
|
+
return getStubSignature();
|
|
132
|
+
},
|
|
133
|
+
async signMessage() {
|
|
134
|
+
throw new Error('Not implemented');
|
|
135
|
+
},
|
|
136
|
+
async signTypedData() {
|
|
137
|
+
throw new Error('Not implemented');
|
|
138
|
+
},
|
|
139
|
+
async signUserOperation(parameters) {
|
|
140
|
+
const { chainId = client.chain?.id, ...userOperation } = parameters;
|
|
141
|
+
if (!chainId)
|
|
142
|
+
throw new Error('Chain id not found');
|
|
143
|
+
const hash = getUserOperationHash({
|
|
144
|
+
userOperation: {
|
|
145
|
+
...userOperation,
|
|
146
|
+
sender: userOperation.sender ?? (await this.getAddress()),
|
|
147
|
+
signature: '0x',
|
|
148
|
+
},
|
|
149
|
+
entryPointAddress: entryPoint07Address,
|
|
150
|
+
entryPointVersion: '0.7',
|
|
151
|
+
chainId: chainId,
|
|
152
|
+
});
|
|
153
|
+
return await signUserOperation(hash);
|
|
154
|
+
},
|
|
155
|
+
});
|
|
84
156
|
}
|
|
85
157
|
function get7702SmartAccount() {
|
|
86
158
|
throw new Error('EIP-7702 is not supported for Safe accounts');
|
|
87
159
|
}
|
|
160
|
+
function get7702InitCalls() {
|
|
161
|
+
throw new Error('EIP-7702 is not supported for Safe accounts');
|
|
162
|
+
}
|
|
88
163
|
function getOwners(config) {
|
|
89
164
|
const ownerSet = config.owners;
|
|
90
165
|
switch (ownerSet.type) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Address, Client, Hex } from 'viem';
|
|
2
2
|
import { RhinestoneAccountConfig } from '../types';
|
|
3
3
|
type CallType = 'call' | 'delegatecall' | 'batchcall';
|
|
4
4
|
interface ExecutionMode<callType extends CallType> {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../accounts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAchD,OAAO,EAAiB,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAEjE,KAAK,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAA;AAErD,UAAU,aAAa,CAAC,QAAQ,SAAS,QAAQ;IAC/C,IAAI,EAAE,QAAQ,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,GAAG,CAAA;CACd;AAED,UAAU,oBAAoB,CAAC,QAAQ,SAAS,QAAQ;IACtD,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC7B,QAAQ,EAAE,SAAS;QACjB,EAAE,EAAE,OAAO,CAAA;QACX,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;KACvB,EAAE,CAAA;CACJ;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AA+BD,iBAAS,eAAe,CAAC,QAAQ,SAAS,QAAQ,EAAE,EAClD,IAAI,EACJ,QAAQ,GACT,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,GAAG,CAuFtC;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,6IAuBxE;AAED,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAKL,GAAG,EAKJ,MAAM,MAAM,CAAA;AAmBb,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,iBAAiB,CAAA;AAUxB,OAAO,EAEL,uBAAuB,EAIvB,WAAW,EACZ,MAAM,UAAU,CAAA;AAUjB,KAAK,iBAAiB,GAClB;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;IACT,WAAW,EAAE,KAAK,CAAA;IAClB,WAAW,EAAE,KAAK,CAAA;CACnB,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,KAAK,CAAA;IAClB,WAAW,EAAE,KAAK,CAAA;CACnB,CAAA;AAEL,iBAAe,eAAe,CAC5B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,WAAW,8BAuBzB;AAyQD,iBAAe,gBAAgB,CAC7B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,iBAAiB;;;;;;;;;;;;GAgC1B;AAED,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAA;AAC5C,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { createPublicClient, createWalletClient, encodeAbiParameters, encodePacked, http, keccak256, pad, toHex, } from 'viem';
|
|
2
2
|
import { entryPoint07Address, getUserOperationHash, } from 'viem/account-abstraction';
|
|
3
|
-
import {
|
|
4
|
-
import { getAddress, isDeployed, deploySource, deployTarget, getBundleInitCode, sign, getSmartSessionSmartAccount, getDeployArgs, } from '../accounts';
|
|
5
|
-
import { getOwnerValidator } from '../modules';
|
|
3
|
+
import { deploySource, deployTarget, getAddress, getBundleInitCode, getDeployArgs, getSmartSessionSmartAccount, isDeployed, sign, } from '../accounts';
|
|
6
4
|
import { getBundlerClient } from '../accounts/utils';
|
|
5
|
+
import { getOwnerValidator } from '../modules';
|
|
7
6
|
import { getSmartSessionValidator } from '../modules/validators';
|
|
8
|
-
import { getTokenBalanceSlot } from '../orchestrator';
|
|
7
|
+
import { BUNDLE_STATUS_FAILED, BUNDLE_STATUS_PARTIALLY_COMPLETED, BUNDLE_STATUS_PENDING, getEmptyUserOp, getOrchestrator, getOrderBundleHash, getTokenBalanceSlot, } from '../orchestrator';
|
|
9
8
|
import { enableSmartSession, getSessionSignature, hashErc7739, } from './smart-session';
|
|
10
9
|
const POLLING_INTERVAL = 500;
|
|
11
10
|
async function sendTransaction(config, transaction) {
|
|
@@ -27,7 +26,7 @@ async function sendTransactionInternal(config, sourceChain, targetChain, calls,
|
|
|
27
26
|
if (withSession) {
|
|
28
27
|
await enableSmartSession(sourceChain, config, withSession);
|
|
29
28
|
}
|
|
30
|
-
const accountAddress =
|
|
29
|
+
const accountAddress = getAddress(config);
|
|
31
30
|
if (withSession) {
|
|
32
31
|
// Smart sessions require a UserOp flow
|
|
33
32
|
return await sendTransactionAsUserOp(config, sourceChain, targetChain, calls, tokenRequests, accountAddress, withSession);
|
|
@@ -74,7 +73,7 @@ async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls,
|
|
|
74
73
|
const orchestrator = getOrchestrator(config.rhinestoneApiKey);
|
|
75
74
|
const orderPath = await orchestrator.getOrderPath(metaIntent, accountAddress);
|
|
76
75
|
// Deploy the account on the target chain
|
|
77
|
-
const { factory, factoryData } =
|
|
76
|
+
const { factory, factoryData } = getDeployArgs(config);
|
|
78
77
|
const deployerAccount = config.deployerAccount;
|
|
79
78
|
const targetWalletClient = createWalletClient({
|
|
80
79
|
chain: targetChain,
|
|
@@ -118,7 +117,7 @@ async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls,
|
|
|
118
117
|
entryPointVersion: '0.7',
|
|
119
118
|
});
|
|
120
119
|
orderPath[0].orderBundle.segments[0].witness.userOpHash = userOpHash;
|
|
121
|
-
const { hash, appDomainSeparator, contentsType, structHash
|
|
120
|
+
const { hash, appDomainSeparator, contentsType, structHash } = await hashErc7739(sourceChain, orderPath, accountAddress);
|
|
122
121
|
const signature = await sign(withSession.owners, targetChain, hash);
|
|
123
122
|
const sessionSignature = getSessionSignature(signature, appDomainSeparator, structHash, contentsType, withSession);
|
|
124
123
|
const smartSessionValidator = getSmartSessionValidator(config);
|
|
@@ -175,7 +174,7 @@ async function sendTransactionAsIntent(config, sourceChain, targetChain, calls,
|
|
|
175
174
|
targetSignature: packedSig,
|
|
176
175
|
};
|
|
177
176
|
await deployTarget(targetChain, config);
|
|
178
|
-
const initCode =
|
|
177
|
+
const initCode = getBundleInitCode(config);
|
|
179
178
|
const bundleResults = await orchestrator.postSignedOrderBundle([
|
|
180
179
|
{
|
|
181
180
|
signedOrderBundle,
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { Chain, Hex
|
|
2
|
-
import { RhinestoneAccountConfig, Session } from '../types';
|
|
1
|
+
import { Address, Chain, Hex } from 'viem';
|
|
3
2
|
import { OrderPath } from '../orchestrator';
|
|
3
|
+
import { RhinestoneAccountConfig, Session } from '../types';
|
|
4
4
|
declare function enableSmartSession(chain: Chain, config: RhinestoneAccountConfig, session: Session): Promise<void>;
|
|
5
5
|
declare function hashErc7739(sourceChain: Chain, orderPath: OrderPath, accountAddress: Address): Promise<{
|
|
6
6
|
hash: `0x${string}`;
|
|
7
7
|
appDomainSeparator: `0x${string}`;
|
|
8
8
|
contentsType: string;
|
|
9
9
|
structHash: `0x${string}`;
|
|
10
|
-
orderBundleHash: `0x${string}`;
|
|
11
10
|
}>;
|
|
12
11
|
declare function getSessionSignature(signature: Hex, appDomainSeparator: Hex, structHash: Hex, contentsType: string, withSession: Session): `0x${string}`;
|
|
13
12
|
export { enableSmartSession, hashErc7739, getSessionSignature };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAIL,GAAG,EAGJ,MAAM,MAAM,CAAA;AAWb,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAE3D,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,iBAyBjB;AAED,iBAAe,WAAW,CACxB,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,OAAO;;;;;GAiExB;AAED,iBAAS,mBAAmB,CAC1B,SAAS,EAAE,GAAG,EACd,kBAAkB,EAAE,GAAG,EACvB,UAAU,EAAE,GAAG,EACf,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,iBAkBrB;AAED,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAA"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { createPublicClient, encodeAbiParameters, encodePacked, http, keccak256, } from 'viem';
|
|
2
|
+
import { getAddress, getSmartAccount } from '../accounts';
|
|
3
3
|
import { getBundlerClient } from '../accounts/utils';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { getAccountEIP712Domain, getEnableSessionCall, getPermissionId, getSessionAllowedERC7739Content, isSessionEnabled, } from '../modules/validators';
|
|
5
|
+
import { hashMultichainCompactWithoutDomainSeparator } from '../orchestrator/utils';
|
|
6
6
|
async function enableSmartSession(chain, config, session) {
|
|
7
7
|
const publicClient = createPublicClient({
|
|
8
8
|
chain,
|
|
@@ -30,7 +30,6 @@ async function hashErc7739(sourceChain, orderPath, accountAddress) {
|
|
|
30
30
|
transport: http(),
|
|
31
31
|
});
|
|
32
32
|
const { appDomainSeparator, contentsType } = await getSessionAllowedERC7739Content(sourceChain);
|
|
33
|
-
const orderBundleHash = getOrderBundleHash(orderPath[0].orderBundle);
|
|
34
33
|
// Create hash following ERC-7739 TypedDataSign workflow
|
|
35
34
|
const typedDataSignTypehash = keccak256(encodePacked(['string'], [
|
|
36
35
|
'TypedDataSign(MultichainCompact contents,string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)'.concat(contentsType),
|
|
@@ -65,7 +64,6 @@ async function hashErc7739(sourceChain, orderPath, accountAddress) {
|
|
|
65
64
|
appDomainSeparator,
|
|
66
65
|
contentsType,
|
|
67
66
|
structHash,
|
|
68
|
-
orderBundleHash,
|
|
69
67
|
};
|
|
70
68
|
}
|
|
71
69
|
function getSessionSignature(signature, appDomainSeparator, structHash, contentsType, withSession) {
|
|
@@ -1,5 +1,11 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import {
|
|
1
|
+
import type { TransactionResult } from './execution';
|
|
2
|
+
import type { RhinestoneAccountConfig, Session, Transaction } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Initialize a Rhinestone account
|
|
5
|
+
* Note: accounts are deployed onchain only when the first transaction is sent.
|
|
6
|
+
* @param config Account config (e.g. implementation vendor, owner signers, smart sessions)
|
|
7
|
+
* @returns account
|
|
8
|
+
*/
|
|
3
9
|
declare function createRhinestoneAccount(config: RhinestoneAccountConfig): Promise<{
|
|
4
10
|
config: RhinestoneAccountConfig;
|
|
5
11
|
sendTransactions: (transaction: Transaction) => Promise<TransactionResult>;
|
|
@@ -16,7 +22,7 @@ declare function createRhinestoneAccount(config: RhinestoneAccountConfig): Promi
|
|
|
16
22
|
success: boolean;
|
|
17
23
|
userOpHash: import("viem").Hash;
|
|
18
24
|
}>;
|
|
19
|
-
getAddress: () =>
|
|
25
|
+
getAddress: () => string;
|
|
20
26
|
}>;
|
|
21
27
|
export { createRhinestoneAccount };
|
|
22
28
|
export type { Session };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAKpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE5E;;;;;GAKG;AACH,iBAAe,uBAAuB,CAAC,MAAM,EAAE,uBAAuB;;oCAM7B,WAAW;+BAShB,iBAAiB;;;;;;;;;;;;;sBAQ5B,MAAM;GAU9B;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAClC,YAAY,EAAE,OAAO,EAAE,CAAA"}
|
|
@@ -1,12 +1,32 @@
|
|
|
1
|
-
import { sendTransaction as sendTransactionInternal, waitForExecution as waitForExecutionInternal, } from './execution';
|
|
2
1
|
import { getAddress as getAddressInternal } from './accounts';
|
|
2
|
+
import { sendTransaction as sendTransactionInternal, waitForExecution as waitForExecutionInternal, } from './execution';
|
|
3
|
+
/**
|
|
4
|
+
* Initialize a Rhinestone account
|
|
5
|
+
* Note: accounts are deployed onchain only when the first transaction is sent.
|
|
6
|
+
* @param config Account config (e.g. implementation vendor, owner signers, smart sessions)
|
|
7
|
+
* @returns account
|
|
8
|
+
*/
|
|
3
9
|
async function createRhinestoneAccount(config) {
|
|
10
|
+
/**
|
|
11
|
+
* Sign and send a transaction
|
|
12
|
+
* @param transaction Transaction to send
|
|
13
|
+
* @returns transaction result object (a bundle ID or a UserOp hash)
|
|
14
|
+
*/
|
|
4
15
|
function sendTransactions(transaction) {
|
|
5
16
|
return sendTransactionInternal(config, transaction);
|
|
6
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Wait for the transaction execution onchain
|
|
20
|
+
* @param result transaction result object
|
|
21
|
+
* @returns bundle result or a UserOp receipt
|
|
22
|
+
*/
|
|
7
23
|
function waitForExecution(result) {
|
|
8
24
|
return waitForExecutionInternal(config, result);
|
|
9
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Get account address
|
|
28
|
+
* @returns Address of the smart account
|
|
29
|
+
*/
|
|
10
30
|
function getAddress() {
|
|
11
31
|
return getAddressInternal(config);
|
|
12
32
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/abi/smart-sessions.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8HtB,CAAA;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../modules/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAEnC,KAAK,UAAU,GACX,OAAO,wBAAwB,GAC/B,OAAO,uBAAuB,GAC9B,OAAO,uBAAuB,GAC9B,OAAO,mBAAmB,CAAA;AAE9B,UAAU,MAAM;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,GAAG,CAAA;IACb,UAAU,EAAE,GAAG,CAAA;IACf,iBAAiB,EAAE,GAAG,CAAA;IACtB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,QAAA,MAAM,wBAAwB,KAAK,CAAA;AACnC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,mBAAmB,KAAK,CAAA;AAE9B,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,CAAA;AACD,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA"}
|
|
@@ -26,7 +26,7 @@ interface ModeleSetup {
|
|
|
26
26
|
attesters: Address[];
|
|
27
27
|
threshold: number;
|
|
28
28
|
}
|
|
29
|
-
declare function getSetup(config: RhinestoneAccountConfig):
|
|
29
|
+
declare function getSetup(config: RhinestoneAccountConfig): ModeleSetup;
|
|
30
30
|
declare function getWebauthnValidatorSignature({ webauthn, signature, usePrecompiled, }: WebauthnValidatorSignature): `0x${string}`;
|
|
31
31
|
declare function isRip7212SupportedNetwork(chain: Chain): boolean;
|
|
32
32
|
export { HOOK_ADDRESS, getSetup, getOwnerValidator, getWebauthnValidatorSignature, isRip7212SupportedNetwork, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,KAAK,EAEL,GAAG,EAEJ,MAAM,MAAM,CAAA;AAYb,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAElD,OAAO,EAGL,MAAM,EACP,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,YAAY,EAMb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAA4B,MAAM,cAAc,CAAA;AAK1E,UAAU,YAAY;IACpB,iBAAiB,EAAE,GAAG,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3B;AAED,UAAU,0BAA0B;IAClC,QAAQ,EAAE,YAAY,CAAA;IACtB,SAAS,EAAE,iBAAiB,GAAG,GAAG,GAAG,UAAU,CAAA;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,UAAU,iBAAiB;IACzB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,iBAAS,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,WAAW,CAiF9D;AAED,iBAAS,6BAA6B,CAAC,EACrC,QAAQ,EACR,SAAS,EACT,cAAsB,GACvB,EAAE,0BAA0B,iBA6C5B;AAED,iBAAS,yBAAyB,CAAC,KAAK,EAAE,KAAK,WAa9C;AAaD,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,6BAA6B,EAC7B,yBAAyB,GAC1B,CAAA"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { bytesToHex, encodeAbiParameters, hexToBytes, } from 'viem';
|
|
2
2
|
import { arbitrum, arbitrumSepolia, base, baseSepolia, optimism, optimismSepolia, polygon, polygonAmoy, } from 'viem/chains';
|
|
3
3
|
import { MODULE_TYPE_ID_EXECUTOR, MODULE_TYPE_ID_FALLBACK, } from './common';
|
|
4
|
-
import {
|
|
4
|
+
import { HOOK_ADDRESS, OMNI_ACCOUNT_MOCK_ATTESTER_ADDRESS, RHINESTONE_ATTESTER_ADDRESS, RHINESTONE_MODULE_REGISTRY_ADDRESS, SAME_CHAIN_MODULE_ADDRESS, TARGET_MODULE_ADDRESS, } from './omni-account';
|
|
5
5
|
import { getOwnerValidator, getSmartSessionValidator } from './validators';
|
|
6
|
-
|
|
6
|
+
const SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS = '0x12cae64c42f362e7d5a847c2d33388373f629177';
|
|
7
|
+
function getSetup(config) {
|
|
7
8
|
const ownerValidator = getOwnerValidator(config);
|
|
8
9
|
const smartSessionValidator = getSmartSessionValidator(config);
|
|
9
10
|
const validators = [ownerValidator];
|
|
@@ -46,6 +47,19 @@ async function getSetup(config) {
|
|
|
46
47
|
type: MODULE_TYPE_ID_FALLBACK,
|
|
47
48
|
},
|
|
48
49
|
];
|
|
50
|
+
if (config.account && config.account.type === 'safe') {
|
|
51
|
+
fallbacks.push({
|
|
52
|
+
address: SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS,
|
|
53
|
+
initData: encodeAbiParameters([
|
|
54
|
+
{ name: 'selector', type: 'bytes4' },
|
|
55
|
+
{ name: 'flags', type: 'bytes1' },
|
|
56
|
+
{ name: 'data', type: 'bytes' },
|
|
57
|
+
], ['0x84b0196e', '0xfe', '0x']),
|
|
58
|
+
deInitData: '0x',
|
|
59
|
+
additionalContext: '0x',
|
|
60
|
+
type: MODULE_TYPE_ID_FALLBACK,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
49
63
|
const hooks = [];
|
|
50
64
|
return {
|
|
51
65
|
validators,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"omni-account.d.ts","sourceRoot":"","sources":["../../../modules/omni-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9B,QAAA,MAAM,kCAAkC,EAAE,OACI,CAAA;AAE9C,QAAA,MAAM,kCAAkC,EAAE,OACI,CAAA;AAC9C,QAAA,MAAM,2BAA2B,EAAE,OACW,CAAA;AAE9C,QAAA,MAAM,YAAY,EAAE,OAAsD,CAAA;AAC1E,QAAA,MAAM,qBAAqB,EAAE,OACiB,CAAA;AAC9C,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAE9C,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EAClC,2BAA2B,EAC3B,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,GAC1B,CAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Address, Hex } from 'viem';
|
|
2
|
+
import { OwnerSet, RhinestoneAccountConfig } from '../../types';
|
|
3
|
+
import { Module } from '../common';
|
|
4
|
+
interface PublicKey {
|
|
5
|
+
prefix?: number | undefined;
|
|
6
|
+
x: bigint;
|
|
7
|
+
y: bigint;
|
|
8
|
+
}
|
|
9
|
+
interface WebauthnCredential {
|
|
10
|
+
pubKey: PublicKey | Hex | Uint8Array;
|
|
11
|
+
authenticatorId: string;
|
|
12
|
+
hook?: Address;
|
|
13
|
+
}
|
|
14
|
+
declare function getOwnerValidator(config: RhinestoneAccountConfig): Module;
|
|
15
|
+
declare function getMockSignature(ownerSet: OwnerSet): Hex;
|
|
16
|
+
declare function getValidator(owners: OwnerSet): Module;
|
|
17
|
+
declare function getOwnableValidator({ threshold, owners, }: {
|
|
18
|
+
threshold: number;
|
|
19
|
+
owners: Address[];
|
|
20
|
+
}): Module;
|
|
21
|
+
declare function getWebAuthnValidator(webAuthnCredential: WebauthnCredential): Module;
|
|
22
|
+
export { getOwnerValidator, getValidator, getOwnableValidator, getWebAuthnValidator, getMockSignature, };
|
|
23
|
+
//# sourceMappingURL=core.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAIP,GAAG,EAIJ,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,EAA4B,MAAM,EAAE,MAAM,WAAW,CAAA;AAE5D,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAG,UAAU,CAAA;IACpC,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAYD,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAEzD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAUjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UAarC;AAED,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB,GAAG,MAAM,CAiBT;AAED,iBAAS,oBAAoB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,MAAM,CAwD5E;AAeD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,CAAA"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { bytesToHex, concat, encodeAbiParameters, hexToBytes, keccak256, toHex, } from 'viem';
|
|
2
|
+
import { MODULE_TYPE_ID_VALIDATOR } from '../common';
|
|
3
|
+
const OWNABLE_VALIDATOR_ADDRESS = '0x2483DA3A338895199E5e538530213157e931Bf06';
|
|
4
|
+
const WEBAUTHN_VALIDATOR_ADDRESS = '0x2f167e55d42584f65e2e30a748f41ee75a311414';
|
|
5
|
+
const ECDSA_MOCK_SIGNATURE = '0x81d4b4981670cb18f99f0b4a66446df1bf5b204d24cfcb659bf38ba27a4359b5711649ec2423c5e1247245eba2964679b6a1dbb85c992ae40b9b00c6935b02ff1b';
|
|
6
|
+
const WEBAUTHN_MOCK_SIGNATURE = '0x00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001635bc6d0f68ff895cae8a288ecf7542a6a9cd555df784b73e1e2ea7e9104b1db15e9015d280cb19527881c625fee43fd3a405d5b0d199a8c8e6589a7381209e40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f47b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22746278584e465339585f3442797231634d77714b724947422d5f3330613051685a36793775634d30424f45222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c73652c20226f746865725f6b6579735f63616e5f62655f61646465645f68657265223a22646f206e6f7420636f6d7061726520636c69656e74446174614a534f4e20616761696e737420612074656d706c6174652e205365652068747470733a2f2f676f6f2e676c2f796162506578227d000000000000000000000000';
|
|
7
|
+
function getOwnerValidator(config) {
|
|
8
|
+
return getValidator(config.owners);
|
|
9
|
+
}
|
|
10
|
+
function getMockSignature(ownerSet) {
|
|
11
|
+
switch (ownerSet.type) {
|
|
12
|
+
case 'ecdsa': {
|
|
13
|
+
const owners = ownerSet.accounts.map((account) => account.address);
|
|
14
|
+
const signatures = owners.map(() => ECDSA_MOCK_SIGNATURE);
|
|
15
|
+
return concat(signatures);
|
|
16
|
+
}
|
|
17
|
+
case 'passkey':
|
|
18
|
+
return WEBAUTHN_MOCK_SIGNATURE;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
function getValidator(owners) {
|
|
22
|
+
switch (owners.type) {
|
|
23
|
+
case 'ecdsa':
|
|
24
|
+
return getOwnableValidator({
|
|
25
|
+
threshold: owners.threshold ?? 1,
|
|
26
|
+
owners: owners.accounts.map((account) => account.address),
|
|
27
|
+
});
|
|
28
|
+
case 'passkey':
|
|
29
|
+
return getWebAuthnValidator({
|
|
30
|
+
pubKey: owners.account.publicKey,
|
|
31
|
+
authenticatorId: owners.account.id,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function getOwnableValidator({ threshold, owners, }) {
|
|
36
|
+
return {
|
|
37
|
+
address: OWNABLE_VALIDATOR_ADDRESS,
|
|
38
|
+
initData: encodeAbiParameters([
|
|
39
|
+
{ name: 'threshold', type: 'uint256' },
|
|
40
|
+
{ name: 'owners', type: 'address[]' },
|
|
41
|
+
], [
|
|
42
|
+
BigInt(threshold),
|
|
43
|
+
owners.map((owner) => owner.toLowerCase()).sort(),
|
|
44
|
+
]),
|
|
45
|
+
deInitData: '0x',
|
|
46
|
+
additionalContext: '0x',
|
|
47
|
+
type: MODULE_TYPE_ID_VALIDATOR,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
function getWebAuthnValidator(webAuthnCredential) {
|
|
51
|
+
let pubKeyX;
|
|
52
|
+
let pubKeyY;
|
|
53
|
+
// Distinguish between PublicKey and Hex / byte encoded public key
|
|
54
|
+
if (typeof webAuthnCredential.pubKey === 'string' ||
|
|
55
|
+
webAuthnCredential.pubKey instanceof Uint8Array) {
|
|
56
|
+
// It's a P256Credential
|
|
57
|
+
const { x, y, prefix } = parsePublicKey(webAuthnCredential.pubKey);
|
|
58
|
+
pubKeyX = x;
|
|
59
|
+
pubKeyY = y;
|
|
60
|
+
if (prefix && prefix !== 4) {
|
|
61
|
+
throw new Error('Only uncompressed public keys are supported');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
// It's already a PublicKey
|
|
66
|
+
pubKeyX = webAuthnCredential.pubKey.x;
|
|
67
|
+
pubKeyY = webAuthnCredential.pubKey.y;
|
|
68
|
+
}
|
|
69
|
+
return {
|
|
70
|
+
address: WEBAUTHN_VALIDATOR_ADDRESS,
|
|
71
|
+
initData: encodeAbiParameters([
|
|
72
|
+
{
|
|
73
|
+
components: [
|
|
74
|
+
{
|
|
75
|
+
name: 'pubKeyX',
|
|
76
|
+
type: 'uint256',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
name: 'pubKeyY',
|
|
80
|
+
type: 'uint256',
|
|
81
|
+
},
|
|
82
|
+
],
|
|
83
|
+
type: 'tuple',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
type: 'bytes32',
|
|
87
|
+
name: 'authenticatorIdHash',
|
|
88
|
+
},
|
|
89
|
+
], [
|
|
90
|
+
{
|
|
91
|
+
pubKeyX,
|
|
92
|
+
pubKeyY,
|
|
93
|
+
},
|
|
94
|
+
keccak256(toHex(webAuthnCredential.authenticatorId)),
|
|
95
|
+
]),
|
|
96
|
+
deInitData: '0x',
|
|
97
|
+
additionalContext: '0x',
|
|
98
|
+
type: MODULE_TYPE_ID_VALIDATOR,
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
function parsePublicKey(publicKey) {
|
|
102
|
+
const bytes = typeof publicKey === 'string' ? hexToBytes(publicKey) : publicKey;
|
|
103
|
+
const offset = bytes.length === 65 ? 1 : 0;
|
|
104
|
+
const x = bytes.slice(offset, 32 + offset);
|
|
105
|
+
const y = bytes.slice(32 + offset, 64 + offset);
|
|
106
|
+
return {
|
|
107
|
+
prefix: bytes.length === 65 ? bytes[0] : undefined,
|
|
108
|
+
x: BigInt(bytesToHex(x)),
|
|
109
|
+
y: BigInt(bytesToHex(y)),
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
export { getOwnerValidator, getValidator, getOwnableValidator, getWebAuthnValidator, getMockSignature, };
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { getMockSignature, getOwnerValidator } from './core';
|
|
2
|
+
import { encodeSmartSessionSignature, getAccountEIP712Domain, getEnableSessionCall, getPermissionId, getSessionAllowedERC7739Content, getSmartSessionValidator, isSessionEnabled, SMART_SESSION_MODE_ENABLE, SMART_SESSION_MODE_USE, SMART_SESSIONS_VALIDATOR_ADDRESS } from './smart-sessions';
|
|
3
|
+
export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, getMockSignature, getAccountEIP712Domain, isSessionEnabled, getSessionAllowedERC7739Content, };
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC5D,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,+BAA+B,EAC/B,wBAAwB,EACxB,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,+BAA+B,GAChC,CAAA"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { getMockSignature, getOwnerValidator } from './core';
|
|
2
|
+
import { encodeSmartSessionSignature, getAccountEIP712Domain, getEnableSessionCall, getPermissionId, getSessionAllowedERC7739Content, getSmartSessionValidator, isSessionEnabled, SMART_SESSION_MODE_ENABLE, SMART_SESSION_MODE_USE, SMART_SESSIONS_VALIDATOR_ADDRESS, } from './smart-sessions';
|
|
3
|
+
export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, getMockSignature, getAccountEIP712Domain, isSessionEnabled, getSessionAllowedERC7739Content, };
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { Address, Chain, Hex, PublicClient } from 'viem';
|
|
2
|
-
import {
|
|
3
|
-
import { Module } from '
|
|
2
|
+
import { RhinestoneAccountConfig, Session } from '../../types';
|
|
3
|
+
import { Module } from '../common';
|
|
4
4
|
type SmartSessionModeType = typeof SMART_SESSION_MODE_USE | typeof SMART_SESSION_MODE_ENABLE | typeof SMART_SESSION_MODE_UNSAFE_ENABLE;
|
|
5
5
|
declare const SMART_SESSIONS_VALIDATOR_ADDRESS: Address;
|
|
6
6
|
declare const SMART_SESSION_MODE_USE = "0x00";
|
|
7
7
|
declare const SMART_SESSION_MODE_ENABLE = "0x01";
|
|
8
8
|
declare const SMART_SESSION_MODE_UNSAFE_ENABLE = "0x02";
|
|
9
|
-
declare function getOwnerValidator(config: RhinestoneAccountConfig): Module;
|
|
10
9
|
declare function getEnableSessionCall(chain: Chain, session: Session): Promise<{
|
|
11
10
|
to: `0x${string}`;
|
|
12
11
|
data: `0x${string}`;
|
|
@@ -19,7 +18,6 @@ declare function getSmartSessionValidator(config: RhinestoneAccountConfig): Modu
|
|
|
19
18
|
declare function isSessionEnabled(client: PublicClient, address: Address, permissionId: Hex): Promise<boolean>;
|
|
20
19
|
declare function encodeSmartSessionSignature(mode: SmartSessionModeType, permissionId: Hex, signature: Hex): `0x${string}`;
|
|
21
20
|
declare function getPermissionId(session: Session): `0x${string}`;
|
|
22
|
-
declare function getMockSinature(ownerSet: OwnerSet): Hex;
|
|
23
21
|
declare function getAccountEIP712Domain(client: PublicClient, account: Address): Promise<{
|
|
24
22
|
name: string;
|
|
25
23
|
version: string;
|
|
@@ -27,5 +25,5 @@ declare function getAccountEIP712Domain(client: PublicClient, account: Address):
|
|
|
27
25
|
verifyingContract: `0x${string}`;
|
|
28
26
|
salt: `0x${string}`;
|
|
29
27
|
}>;
|
|
30
|
-
export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS,
|
|
31
|
-
//# sourceMappingURL=
|
|
28
|
+
export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, getAccountEIP712Domain, isSessionEnabled, getSessionAllowedERC7739Content, };
|
|
29
|
+
//# sourceMappingURL=smart-sessions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/smart-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAKL,GAAG,EAIH,YAAY,EAKb,MAAM,MAAM,CAAA;AAMb,OAAO,EAEL,uBAAuB,EACvB,OAAO,EAER,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA4B,MAAM,EAAE,MAAM,WAAW,CAAA;AA6D5D,KAAK,oBAAoB,GACrB,OAAO,sBAAsB,GAC7B,OAAO,yBAAyB,GAChC,OAAO,gCAAgC,CAAA;AAE3C,QAAA,MAAM,gCAAgC,EAAE,OACM,CAAA;AAE9C,QAAA,MAAM,sBAAsB,SAAS,CAAA;AACrC,QAAA,MAAM,yBAAyB,SAAS,CAAA;AACxC,QAAA,MAAM,gCAAgC,SAAS,CAAA;AAyB/C,iBAAe,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO;;;GAsBjE;AA6BD,iBAAe,+BAA+B,CAAC,KAAK,EAAE,KAAK;;;GAgB1D;AAyDD,iBAAS,wBAAwB,CAC/B,MAAM,EAAE,uBAAuB,GAC9B,MAAM,GAAG,IAAI,CAWf;AA8KD,iBAAe,gBAAgB,CAC7B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,GAAG,oBAiClB;AAED,iBAAS,2BAA2B,CAClC,IAAI,EAAE,oBAAoB,EAC1B,YAAY,EAAE,GAAG,EACjB,SAAS,EAAE,GAAG,iBAcf;AAED,iBAAS,eAAe,CAAC,OAAO,EAAE,OAAO,iBAyBxC;AAED,iBAAe,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO;;;;;;GAoD3E;AAED,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,+BAA+B,GAChC,CAAA"}
|