@rhinestone/sdk 1.0.0-alpha.9 → 1.0.0-beta.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/accounts/error.d.ts +38 -3
- package/dist/src/accounts/error.d.ts.map +1 -1
- package/dist/src/accounts/error.js +55 -7
- package/dist/src/accounts/index.d.ts +30 -15
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +284 -140
- package/dist/src/accounts/index.test.js +3 -5
- package/dist/src/accounts/json-rpc/index.d.ts +5 -0
- package/dist/src/accounts/json-rpc/index.d.ts.map +1 -0
- package/dist/src/accounts/json-rpc/index.js +16 -0
- package/dist/src/accounts/json-rpc/index.test.d.ts.map +1 -0
- package/dist/src/accounts/json-rpc/index.test.js +16 -0
- package/dist/src/accounts/json-rpc/providers.d.ts +4 -0
- package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -0
- package/dist/src/accounts/json-rpc/providers.js +14 -0
- package/dist/src/accounts/json-rpc/providers.test.d.ts +2 -0
- package/dist/src/accounts/json-rpc/providers.test.d.ts.map +1 -0
- package/dist/src/accounts/json-rpc/providers.test.js +15 -0
- package/dist/src/accounts/kernel.d.ts +4 -3
- package/dist/src/accounts/kernel.d.ts.map +1 -1
- package/dist/src/accounts/kernel.js +32 -6
- package/dist/src/accounts/kernel.test.js +41 -19
- package/dist/src/accounts/nexus.d.ts +11 -4
- package/dist/src/accounts/nexus.d.ts.map +1 -1
- package/dist/src/accounts/nexus.js +182 -25
- package/dist/src/accounts/nexus.test.js +44 -18
- package/dist/src/accounts/safe.d.ts +2 -2
- package/dist/src/accounts/safe.d.ts.map +1 -1
- package/dist/src/accounts/safe.js +88 -58
- package/dist/src/accounts/safe.test.js +40 -14
- package/dist/src/accounts/signing/common.d.ts +27 -0
- package/dist/src/accounts/signing/common.d.ts.map +1 -0
- package/dist/src/accounts/signing/common.js +145 -0
- package/dist/src/accounts/signing/message.d.ts +5 -0
- package/dist/src/accounts/signing/message.d.ts.map +1 -0
- package/dist/src/accounts/signing/message.js +47 -0
- package/dist/src/accounts/signing/passkeys.d.ts +36 -0
- package/dist/src/accounts/signing/passkeys.d.ts.map +1 -0
- package/dist/src/accounts/signing/passkeys.js +125 -0
- package/dist/src/accounts/signing/passkeys.test.d.ts +2 -0
- package/dist/src/accounts/signing/passkeys.test.d.ts.map +1 -0
- package/dist/src/accounts/signing/passkeys.test.js +88 -0
- package/dist/src/accounts/signing/typedData.d.ts +5 -0
- package/dist/src/accounts/signing/typedData.d.ts.map +1 -0
- package/dist/src/accounts/signing/typedData.js +35 -0
- package/dist/src/accounts/startale.d.ts +2 -2
- package/dist/src/accounts/startale.d.ts.map +1 -1
- package/dist/src/accounts/startale.js +3 -3
- package/dist/src/accounts/startale.test.js +9 -14
- package/dist/src/accounts/utils.d.ts +4 -4
- package/dist/src/accounts/utils.d.ts.map +1 -1
- package/dist/src/accounts/utils.js +3 -40
- package/dist/src/accounts/walletClient.d.ts +7 -0
- package/dist/src/accounts/walletClient.d.ts.map +1 -0
- package/dist/src/accounts/walletClient.js +38 -0
- package/dist/src/actions/compact.d.ts +13 -0
- package/dist/src/actions/compact.d.ts.map +1 -0
- package/dist/src/actions/compact.js +210 -0
- package/dist/src/actions/ecdsa.d.ts +35 -0
- package/dist/src/actions/ecdsa.d.ts.map +1 -0
- package/dist/src/actions/ecdsa.js +114 -0
- package/dist/src/actions/ecdsa.test.d.ts +2 -0
- package/dist/src/actions/ecdsa.test.d.ts.map +1 -0
- package/dist/src/actions/ecdsa.test.js +99 -0
- package/dist/src/actions/index.d.ts +23 -38
- package/dist/src/actions/index.d.ts.map +1 -1
- package/dist/src/actions/index.js +29 -294
- package/dist/src/actions/mfa.d.ts +37 -0
- package/dist/src/actions/mfa.d.ts.map +1 -0
- package/dist/src/actions/mfa.js +133 -0
- package/dist/src/actions/passkeys.d.ts +37 -0
- package/dist/src/actions/passkeys.d.ts.map +1 -0
- package/dist/src/actions/passkeys.js +129 -0
- package/dist/src/actions/passkeys.test.d.ts +2 -0
- package/dist/src/actions/passkeys.test.d.ts.map +1 -0
- package/dist/src/actions/passkeys.test.js +54 -0
- package/dist/src/actions/recovery.d.ts +33 -0
- package/dist/src/actions/recovery.d.ts.map +1 -0
- package/dist/src/actions/recovery.js +193 -0
- package/dist/src/actions/recovery.test.d.ts +2 -0
- package/dist/src/actions/recovery.test.d.ts.map +1 -0
- package/dist/src/actions/recovery.test.js +168 -0
- package/dist/src/actions/smart-session.d.ts +6 -0
- package/dist/src/actions/smart-session.d.ts.map +1 -1
- package/dist/src/actions/smart-session.js +6 -0
- package/dist/src/errors/index.d.ts +5 -0
- package/dist/src/errors/index.d.ts.map +1 -0
- package/dist/src/errors/index.js +35 -0
- package/dist/src/execution/compact.d.ts +150 -7
- package/dist/src/execution/compact.d.ts.map +1 -1
- package/dist/src/execution/compact.js +112 -95
- package/dist/src/execution/error.d.ts +2 -9
- package/dist/src/execution/error.d.ts.map +1 -1
- package/dist/src/execution/error.js +4 -13
- package/dist/src/execution/index.d.ts +34 -22
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +62 -42
- package/dist/src/execution/permit2.d.ts +148 -0
- package/dist/src/execution/permit2.d.ts.map +1 -0
- package/dist/src/execution/permit2.js +282 -0
- package/dist/src/execution/smart-session.d.ts +3 -3
- package/dist/src/execution/smart-session.d.ts.map +1 -1
- package/dist/src/execution/types.d.ts +35 -0
- package/dist/src/execution/types.d.ts.map +1 -0
- package/dist/src/execution/types.js +2 -0
- package/dist/src/execution/utils.d.ts +36 -27
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +357 -103
- package/dist/src/index.d.ts +41 -22
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +199 -65
- package/dist/src/modules/common.d.ts +10 -4
- package/dist/src/modules/common.d.ts.map +1 -1
- package/dist/src/modules/common.js +22 -1
- package/dist/src/modules/index.d.ts +4 -18
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +15 -63
- package/dist/src/modules/index.test.js +9 -26
- package/dist/src/modules/omni-account.d.ts +2 -1
- package/dist/src/modules/omni-account.d.ts.map +1 -1
- package/dist/src/modules/omni-account.js +3 -1
- package/dist/src/modules/read.d.ts.map +1 -1
- package/dist/src/modules/read.js +4 -0
- package/dist/src/modules/validators/core.d.ts +5 -3
- package/dist/src/modules/validators/core.d.ts.map +1 -1
- package/dist/src/modules/validators/core.js +64 -41
- package/dist/src/modules/validators/core.test.js +7 -7
- package/dist/src/modules/validators/smart-sessions.js +3 -3
- package/dist/src/modules/validators/smart-sessions.test.js +4 -7
- package/dist/src/orchestrator/client.d.ts +4 -4
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +30 -15
- package/dist/src/orchestrator/index.d.ts +2 -3
- package/dist/src/orchestrator/index.d.ts.map +1 -1
- package/dist/src/orchestrator/index.js +1 -3
- package/dist/src/orchestrator/registry.d.ts +1 -23
- package/dist/src/orchestrator/registry.d.ts.map +1 -1
- package/dist/src/orchestrator/registry.js +37 -33
- package/dist/src/orchestrator/registry.test.js +7 -7
- package/dist/src/orchestrator/types.d.ts +97 -29
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/orchestrator/utils.d.ts +1 -3
- package/dist/src/orchestrator/utils.d.ts.map +1 -1
- package/dist/src/orchestrator/utils.js +0 -102
- package/dist/src/types.d.ts +74 -10
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +72 -1
- package/dist/src/actions/index.test.d.ts.map +0 -1
- package/dist/src/actions/index.test.js +0 -302
- package/dist/src/orchestrator/registry.json +0 -365
- /package/dist/src/{actions → accounts/json-rpc}/index.test.d.ts +0 -0
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.getValidators = exports.getOwners = exports.getOwnerValidator = exports.HOOK_ADDRESS = void 0;
|
|
4
4
|
exports.getSetup = getSetup;
|
|
5
|
-
exports.
|
|
5
|
+
exports.getIntentExecutor = getIntentExecutor;
|
|
6
6
|
exports.isRip7212SupportedNetwork = isRip7212SupportedNetwork;
|
|
7
7
|
const viem_1 = require("viem");
|
|
8
8
|
const chains_1 = require("viem/chains");
|
|
@@ -15,7 +15,7 @@ Object.defineProperty(exports, "getValidators", { enumerable: true, get: functio
|
|
|
15
15
|
const validators_1 = require("./validators");
|
|
16
16
|
Object.defineProperty(exports, "getOwnerValidator", { enumerable: true, get: function () { return validators_1.getOwnerValidator; } });
|
|
17
17
|
const core_1 = require("./validators/core");
|
|
18
|
-
const SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS = '
|
|
18
|
+
const SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS = '0x000000000052e9685932845660777DF43C2dC496';
|
|
19
19
|
function getSetup(config) {
|
|
20
20
|
const ownerValidator = (0, validators_1.getOwnerValidator)(config);
|
|
21
21
|
const smartSessionValidator = (0, validators_1.getSmartSessionValidator)(config);
|
|
@@ -27,15 +27,8 @@ function getSetup(config) {
|
|
|
27
27
|
const socialRecoveryValidator = (0, core_1.getSocialRecoveryValidator)(config.recovery.guardians, config.recovery.threshold);
|
|
28
28
|
validators.push(socialRecoveryValidator);
|
|
29
29
|
}
|
|
30
|
-
const
|
|
31
|
-
|
|
32
|
-
address: omni_account_1.INTENT_EXECUTOR_ADDRESS,
|
|
33
|
-
initData: '0x',
|
|
34
|
-
deInitData: '0x',
|
|
35
|
-
additionalContext: '0x',
|
|
36
|
-
type: common_1.MODULE_TYPE_ID_EXECUTOR,
|
|
37
|
-
},
|
|
38
|
-
];
|
|
30
|
+
const intentExecutor = getIntentExecutor(config);
|
|
31
|
+
const executors = [intentExecutor];
|
|
39
32
|
const fallbacks = [];
|
|
40
33
|
// Some accounts (e.g. Safe) need a fallback method to support smart sessions
|
|
41
34
|
if (config.sessions) {
|
|
@@ -61,49 +54,17 @@ function getSetup(config) {
|
|
|
61
54
|
hooks,
|
|
62
55
|
};
|
|
63
56
|
}
|
|
64
|
-
function
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
s = signature.s;
|
|
76
|
-
}
|
|
77
|
-
return (0, viem_1.encodeAbiParameters)([
|
|
78
|
-
{ type: 'bytes', name: 'authenticatorData' },
|
|
79
|
-
{
|
|
80
|
-
type: 'string',
|
|
81
|
-
name: 'clientDataJSON',
|
|
82
|
-
},
|
|
83
|
-
{
|
|
84
|
-
type: 'uint256',
|
|
85
|
-
name: 'responseTypeLocation',
|
|
86
|
-
},
|
|
87
|
-
{
|
|
88
|
-
type: 'uint256',
|
|
89
|
-
name: 'r',
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
type: 'uint256',
|
|
93
|
-
name: 's',
|
|
94
|
-
},
|
|
95
|
-
{
|
|
96
|
-
type: 'bool',
|
|
97
|
-
name: 'usePrecompiled',
|
|
98
|
-
},
|
|
99
|
-
], [
|
|
100
|
-
authenticatorData,
|
|
101
|
-
clientDataJSON,
|
|
102
|
-
typeof typeIndex === 'bigint' ? typeIndex : BigInt(typeIndex),
|
|
103
|
-
r,
|
|
104
|
-
s,
|
|
105
|
-
usePrecompiled,
|
|
106
|
-
]);
|
|
57
|
+
function getIntentExecutor(config) {
|
|
58
|
+
const intentExecutorAddress = config.endpointUrl
|
|
59
|
+
? omni_account_1.INTENT_EXECUTOR_ADDRESS_DEV
|
|
60
|
+
: omni_account_1.INTENT_EXECUTOR_ADDRESS;
|
|
61
|
+
return {
|
|
62
|
+
address: intentExecutorAddress,
|
|
63
|
+
initData: '0x',
|
|
64
|
+
deInitData: '0x',
|
|
65
|
+
additionalContext: '0x',
|
|
66
|
+
type: common_1.MODULE_TYPE_ID_EXECUTOR,
|
|
67
|
+
};
|
|
107
68
|
}
|
|
108
69
|
function isRip7212SupportedNetwork(chain) {
|
|
109
70
|
const supportedChains = [
|
|
@@ -117,12 +78,3 @@ function isRip7212SupportedNetwork(chain) {
|
|
|
117
78
|
];
|
|
118
79
|
return supportedChains.includes(chain);
|
|
119
80
|
}
|
|
120
|
-
function parseSignature(signature) {
|
|
121
|
-
const bytes = typeof signature === 'string' ? (0, viem_1.hexToBytes)(signature) : signature;
|
|
122
|
-
const r = bytes.slice(0, 32);
|
|
123
|
-
const s = bytes.slice(32, 64);
|
|
124
|
-
return {
|
|
125
|
-
r: BigInt((0, viem_1.bytesToHex)(r)),
|
|
126
|
-
s: BigInt((0, viem_1.bytesToHex)(s)),
|
|
127
|
-
};
|
|
128
|
-
}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const vitest_1 = require("vitest");
|
|
4
4
|
const consts_1 = require("../../test/consts");
|
|
5
|
+
const common_1 = require("./common");
|
|
5
6
|
const index_1 = require("./index");
|
|
6
7
|
(0, vitest_1.describe)('Modules', () => {
|
|
7
8
|
(0, vitest_1.describe)('Setup', () => {
|
|
8
9
|
(0, vitest_1.test)('should use ownable validator for ECDSA owners', () => {
|
|
9
10
|
const config = {
|
|
10
|
-
rhinestoneApiKey: consts_1.MOCK_API_KEY,
|
|
11
11
|
owners: {
|
|
12
12
|
type: 'ecdsa',
|
|
13
13
|
accounts: [consts_1.accountA],
|
|
@@ -15,25 +15,23 @@ const index_1 = require("./index");
|
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
17
|
const setup = (0, index_1.getSetup)(config);
|
|
18
|
-
(0, vitest_1.expect)(setup.validators[0].address).toBe('
|
|
19
|
-
(0, vitest_1.expect)(setup.validators[0].type).toBe(
|
|
18
|
+
(0, vitest_1.expect)(setup.validators[0].address).toBe('0x000000000013fdb5234e4e3162a810f54d9f7e98');
|
|
19
|
+
(0, vitest_1.expect)(setup.validators[0].type).toBe(common_1.MODULE_TYPE_ID_VALIDATOR);
|
|
20
20
|
});
|
|
21
21
|
(0, vitest_1.test)('should use webauthn validator for passkey owners', () => {
|
|
22
22
|
const config = {
|
|
23
|
-
rhinestoneApiKey: consts_1.MOCK_API_KEY,
|
|
24
23
|
owners: {
|
|
25
24
|
type: 'passkey',
|
|
26
|
-
|
|
25
|
+
accounts: [consts_1.passkeyAccount],
|
|
27
26
|
},
|
|
28
27
|
};
|
|
29
28
|
const setup = (0, index_1.getSetup)(config);
|
|
30
29
|
(0, vitest_1.expect)(setup.validators).toHaveLength(1);
|
|
31
|
-
(0, vitest_1.expect)(setup.validators[0].address).toBe('
|
|
32
|
-
(0, vitest_1.expect)(setup.validators[0].type).toBe(
|
|
30
|
+
(0, vitest_1.expect)(setup.validators[0].address).toBe('0x0000000000578c4cb0e472a5462da43c495c3f33');
|
|
31
|
+
(0, vitest_1.expect)(setup.validators[0].type).toBe(common_1.MODULE_TYPE_ID_VALIDATOR);
|
|
33
32
|
});
|
|
34
33
|
(0, vitest_1.test)('should use smart session validator when sessions are enabled', () => {
|
|
35
34
|
const config = {
|
|
36
|
-
rhinestoneApiKey: consts_1.MOCK_API_KEY,
|
|
37
35
|
owners: {
|
|
38
36
|
type: 'ecdsa',
|
|
39
37
|
accounts: [consts_1.accountA],
|
|
@@ -54,11 +52,10 @@ const index_1 = require("./index");
|
|
|
54
52
|
if (!smartSessionValidator) {
|
|
55
53
|
return;
|
|
56
54
|
}
|
|
57
|
-
(0, vitest_1.expect)(smartSessionValidator.type).toBe(
|
|
55
|
+
(0, vitest_1.expect)(smartSessionValidator.type).toBe(common_1.MODULE_TYPE_ID_VALIDATOR);
|
|
58
56
|
});
|
|
59
57
|
(0, vitest_1.test)('should use smart session compatibility fallback for safe accounts with sessions', () => {
|
|
60
58
|
const config = {
|
|
61
|
-
rhinestoneApiKey: consts_1.MOCK_API_KEY,
|
|
62
59
|
owners: {
|
|
63
60
|
type: 'ecdsa',
|
|
64
61
|
accounts: [consts_1.accountA],
|
|
@@ -78,27 +75,13 @@ const index_1 = require("./index");
|
|
|
78
75
|
},
|
|
79
76
|
};
|
|
80
77
|
const setup = (0, index_1.getSetup)(config);
|
|
81
|
-
const smartSessionFallback = setup.fallbacks.find((fallback) => fallback.address === '
|
|
78
|
+
const smartSessionFallback = setup.fallbacks.find((fallback) => fallback.address === '0x000000000052e9685932845660777DF43C2dC496');
|
|
82
79
|
(0, vitest_1.expect)(smartSessionFallback).toBeDefined();
|
|
83
80
|
if (!smartSessionFallback) {
|
|
84
81
|
return;
|
|
85
82
|
}
|
|
86
|
-
(0, vitest_1.expect)(smartSessionFallback.type).toBe(
|
|
83
|
+
(0, vitest_1.expect)(smartSessionFallback.type).toBe(common_1.MODULE_TYPE_ID_FALLBACK);
|
|
87
84
|
});
|
|
88
85
|
vitest_1.test.todo('using the omni account should install the necessary modules');
|
|
89
86
|
});
|
|
90
|
-
(0, vitest_1.describe)('WebAuthn Validator Signature', () => {
|
|
91
|
-
(0, vitest_1.test)('default', () => {
|
|
92
|
-
const signature = (0, index_1.getWebauthnValidatorSignature)({
|
|
93
|
-
webauthn: {
|
|
94
|
-
authenticatorData: '0x49960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d00000000',
|
|
95
|
-
clientDataJSON: '{"type":"webauthn.get","challenge":"tbxXNFS9X_4Byr1cMwqKrIGB-_30a0QhZ6y7ucM0BOE","origin":"http://localhost:3000","crossOrigin":false, "other_keys_can_be_added_here":"do not compare clientDataJSON against a template. See https://goo.gl/yabPex"}',
|
|
96
|
-
typeIndex: 44941127272049826721201904734628716258498742255959991581049806490182030242267n,
|
|
97
|
-
},
|
|
98
|
-
signature: '0x00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001635bc6d0f68ff895cae8a288ecf7542a6a9cd555df784b73e1e2ea7e9104b1db15e9015d280cb19527881c625fee43fd3a405d5b0d199a8c8e6589a7381209e40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f47b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22746278584e465339585f3442797231634d77714b724947422d5f3330613051685a36793775634d30424f45222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c73652c20226f746865725f6b6579735f63616e5f62655f61646465645f68657265223a22646f206e6f7420636f6d7061726520636c69656e74446174614a534f4e20616761696e737420612074656d706c6174652e205365652068747470733a2f2f676f6f2e676c2f796162506578227d000000000000000000000000',
|
|
99
|
-
usePrecompiled: true,
|
|
100
|
-
});
|
|
101
|
-
(0, vitest_1.expect)(signature).toEqual('0x00000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120635bc6d0f68ff895cae8a288ecf7542a6a9cd555df784b73e1e2ea7e9104b1db00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f47b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22746278584e465339585f3442797231634d77714b724947422d5f3330613051685a36793775634d30424f45222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c73652c20226f746865725f6b6579735f63616e5f62655f61646465645f68657265223a22646f206e6f7420636f6d7061726520636c69656e74446174614a534f4e20616761696e737420612074656d706c6174652e205365652068747470733a2f2f676f6f2e676c2f796162506578227d000000000000000000000000');
|
|
102
|
-
});
|
|
103
|
-
});
|
|
104
87
|
});
|
|
@@ -3,5 +3,6 @@ declare const HOOK_ADDRESS: Address;
|
|
|
3
3
|
declare const TARGET_MODULE_ADDRESS: Address;
|
|
4
4
|
declare const SAME_CHAIN_MODULE_ADDRESS: Address;
|
|
5
5
|
declare const INTENT_EXECUTOR_ADDRESS: Address;
|
|
6
|
-
|
|
6
|
+
declare const INTENT_EXECUTOR_ADDRESS_DEV: Address;
|
|
7
|
+
export { HOOK_ADDRESS, TARGET_MODULE_ADDRESS, SAME_CHAIN_MODULE_ADDRESS, INTENT_EXECUTOR_ADDRESS, INTENT_EXECUTOR_ADDRESS_DEV, };
|
|
7
8
|
//# sourceMappingURL=omni-account.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"omni-account.d.ts","sourceRoot":"","sources":["../../../modules/omni-account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,YAAY,EAAE,OAAsD,CAAA;AAC1E,QAAA,MAAM,qBAAqB,EAAE,OACiB,CAAA;AAC9C,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAE9C,QAAA,MAAM,uBAAuB,EAAE,OACe,CAAA;AAE9C,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,
|
|
1
|
+
{"version":3,"file":"omni-account.d.ts","sourceRoot":"","sources":["../../../modules/omni-account.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAEnC,QAAA,MAAM,YAAY,EAAE,OAAsD,CAAA;AAC1E,QAAA,MAAM,qBAAqB,EAAE,OACiB,CAAA;AAC9C,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAE9C,QAAA,MAAM,uBAAuB,EAAE,OACe,CAAA;AAC9C,QAAA,MAAM,2BAA2B,EAAE,OACW,CAAA;AAE9C,OAAO,EACL,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,EACzB,uBAAuB,EACvB,2BAA2B,GAC5B,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.INTENT_EXECUTOR_ADDRESS = exports.SAME_CHAIN_MODULE_ADDRESS = exports.TARGET_MODULE_ADDRESS = exports.HOOK_ADDRESS = void 0;
|
|
3
|
+
exports.INTENT_EXECUTOR_ADDRESS_DEV = exports.INTENT_EXECUTOR_ADDRESS = exports.SAME_CHAIN_MODULE_ADDRESS = exports.TARGET_MODULE_ADDRESS = exports.HOOK_ADDRESS = void 0;
|
|
4
4
|
const HOOK_ADDRESS = '0x0000000000f6Ed8Be424d673c63eeFF8b9267420';
|
|
5
5
|
exports.HOOK_ADDRESS = HOOK_ADDRESS;
|
|
6
6
|
const TARGET_MODULE_ADDRESS = '0x0000000000E5a37279A001301A837a91b5de1D5E';
|
|
@@ -9,3 +9,5 @@ const SAME_CHAIN_MODULE_ADDRESS = '0x000000000043ff16d5776c7F0f65Ec485C17Ca04';
|
|
|
9
9
|
exports.SAME_CHAIN_MODULE_ADDRESS = SAME_CHAIN_MODULE_ADDRESS;
|
|
10
10
|
const INTENT_EXECUTOR_ADDRESS = '0x00000000005aD9ce1f5035FD62CA96CEf16AdAAF';
|
|
11
11
|
exports.INTENT_EXECUTOR_ADDRESS = INTENT_EXECUTOR_ADDRESS;
|
|
12
|
+
const INTENT_EXECUTOR_ADDRESS_DEV = '0xbf9b5b917a83f8adac17b0752846d41d8d7b7e17';
|
|
13
|
+
exports.INTENT_EXECUTOR_ADDRESS_DEV = INTENT_EXECUTOR_ADDRESS_DEV;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../modules/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAsB,MAAM,MAAM,CAAA;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG3D,iBAAe,aAAa,CAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../modules/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAsB,MAAM,MAAM,CAAA;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG3D,iBAAe,aAAa,CAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,EAAE,CAAC,CAkDpB;AAED,iBAAe,SAAS,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,CAkER;AAED,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA"}
|
package/dist/src/modules/read.js
CHANGED
|
@@ -11,6 +11,7 @@ async function getValidators(accountType, account, chain, provider) {
|
|
|
11
11
|
transport: (0, utils_1.createTransport)(chain, provider),
|
|
12
12
|
});
|
|
13
13
|
switch (accountType) {
|
|
14
|
+
case 'custom':
|
|
14
15
|
case 'safe':
|
|
15
16
|
case 'startale':
|
|
16
17
|
case 'nexus': {
|
|
@@ -47,6 +48,9 @@ async function getValidators(accountType, account, chain, provider) {
|
|
|
47
48
|
});
|
|
48
49
|
return validators[0];
|
|
49
50
|
}
|
|
51
|
+
case 'eoa': {
|
|
52
|
+
return [];
|
|
53
|
+
}
|
|
50
54
|
case 'kernel': {
|
|
51
55
|
throw new Error('Kernel not supported');
|
|
52
56
|
}
|
|
@@ -13,13 +13,15 @@ interface WebauthnCredential {
|
|
|
13
13
|
declare const OWNABLE_VALIDATOR_ADDRESS: Address;
|
|
14
14
|
declare const WEBAUTHN_VALIDATOR_ADDRESS: Address;
|
|
15
15
|
declare const MULTI_FACTOR_VALIDATOR_ADDRESS: Address;
|
|
16
|
+
declare const WEBAUTHN_V0_VALIDATOR_ADDRESS: Address;
|
|
16
17
|
declare function getOwnerValidator(config: RhinestoneAccountConfig): Module;
|
|
17
18
|
declare function getMockSignature(ownerSet: OwnerSet): Hex;
|
|
18
19
|
declare function getValidator(owners: OwnerSet): Module;
|
|
19
|
-
declare function getOwnableValidator(threshold: number, owners: Address[]): Module;
|
|
20
|
-
declare function getWebAuthnValidator(
|
|
20
|
+
declare function getOwnableValidator(threshold: number, owners: Address[], address?: Address): Module;
|
|
21
|
+
declare function getWebAuthnValidator(threshold: number, webAuthnCredentials: WebauthnCredential[], address?: Address): Module;
|
|
21
22
|
declare function getMultiFactorValidator(threshold: number, validators: (OwnableValidatorConfig | WebauthnValidatorConfig | null)[]): Module;
|
|
22
23
|
declare function getSocialRecoveryValidator(guardians: Account[], threshold?: number): Module;
|
|
23
|
-
|
|
24
|
+
declare function supportsEip712(validator: Module): boolean;
|
|
25
|
+
export { OWNABLE_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, WEBAUTHN_V0_VALIDATOR_ADDRESS, getOwnerValidator, getOwnableValidator, getWebAuthnValidator, getMultiFactorValidator, getSocialRecoveryValidator, getValidator, getMockSignature, supportsEip712, };
|
|
24
26
|
export type { WebauthnCredential };
|
|
25
27
|
//# sourceMappingURL=core.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EAKZ,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EAKZ,KAAK,GAAG,EAIT,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EACV,sBAAsB,EACtB,QAAQ,EACR,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AAEjE,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAG,UAAU,CAAA;IACpC,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAC9C,QAAA,MAAM,0BAA0B,EAAE,OACY,CAAA;AAG9C,QAAA,MAAM,8BAA8B,EAAE,OACQ,CAAA;AAO9C,QAAA,MAAM,6BAA6B,EAAE,OACS,CAAA;AAO9C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAKzD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAiDjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UAoBrC;AAED,iBAAS,mBAAmB,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAiBR;AAED,iBAAS,oBAAoB,CAC3B,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CA4DR;AAED,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CAAC,sBAAsB,GAAG,uBAAuB,GAAG,IAAI,CAAC,EAAE,GACtE,MAAM,CAgDR;AAED,iBAAS,0BAA0B,CACjC,SAAS,EAAE,OAAO,EAAE,EACpB,SAAS,SAAI,GACZ,MAAM,CAsBR;AAeD,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,WAQxC;AAED,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,CAAA;AACD,YAAY,EAAE,kBAAkB,EAAE,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MULTI_FACTOR_VALIDATOR_ADDRESS = exports.WEBAUTHN_VALIDATOR_ADDRESS = exports.OWNABLE_VALIDATOR_ADDRESS = void 0;
|
|
3
|
+
exports.WEBAUTHN_V0_VALIDATOR_ADDRESS = exports.MULTI_FACTOR_VALIDATOR_ADDRESS = exports.WEBAUTHN_VALIDATOR_ADDRESS = exports.OWNABLE_VALIDATOR_ADDRESS = void 0;
|
|
4
4
|
exports.getOwnerValidator = getOwnerValidator;
|
|
5
5
|
exports.getOwnableValidator = getOwnableValidator;
|
|
6
6
|
exports.getWebAuthnValidator = getWebAuthnValidator;
|
|
@@ -8,18 +8,28 @@ exports.getMultiFactorValidator = getMultiFactorValidator;
|
|
|
8
8
|
exports.getSocialRecoveryValidator = getSocialRecoveryValidator;
|
|
9
9
|
exports.getValidator = getValidator;
|
|
10
10
|
exports.getMockSignature = getMockSignature;
|
|
11
|
+
exports.supportsEip712 = supportsEip712;
|
|
11
12
|
const viem_1 = require("viem");
|
|
13
|
+
const error_1 = require("../../accounts/error");
|
|
12
14
|
const common_1 = require("../common");
|
|
13
|
-
const OWNABLE_VALIDATOR_ADDRESS = '
|
|
15
|
+
const OWNABLE_VALIDATOR_ADDRESS = '0x000000000013fdb5234e4e3162a810f54d9f7e98';
|
|
14
16
|
exports.OWNABLE_VALIDATOR_ADDRESS = OWNABLE_VALIDATOR_ADDRESS;
|
|
15
|
-
const WEBAUTHN_VALIDATOR_ADDRESS = '
|
|
17
|
+
const WEBAUTHN_VALIDATOR_ADDRESS = '0x0000000000578c4cb0e472a5462da43c495c3f33';
|
|
16
18
|
exports.WEBAUTHN_VALIDATOR_ADDRESS = WEBAUTHN_VALIDATOR_ADDRESS;
|
|
17
|
-
const SOCIAL_RECOVERY_VALIDATOR_ADDRESS = '
|
|
18
|
-
const MULTI_FACTOR_VALIDATOR_ADDRESS = '
|
|
19
|
+
const SOCIAL_RECOVERY_VALIDATOR_ADDRESS = '0xa04d053b3c8021e8d5bf641816c42daa75d8b597';
|
|
20
|
+
const MULTI_FACTOR_VALIDATOR_ADDRESS = '0xf6bdf42c9be18ceca5c06c42a43daf7fbbe7896b';
|
|
19
21
|
exports.MULTI_FACTOR_VALIDATOR_ADDRESS = MULTI_FACTOR_VALIDATOR_ADDRESS;
|
|
22
|
+
// Legacy
|
|
23
|
+
const OWNABLE_V0_VALIDATOR_ADDRESS = '0x2483da3a338895199e5e538530213157e931bf06';
|
|
24
|
+
const OWNABLE_BETA_VALIDATOR_ADDRESS = '0x0000000000e9e6e96bcaa3c113187cdb7e38aed9';
|
|
25
|
+
const WEBAUTHN_V0_VALIDATOR_ADDRESS = '0x0000000000578c4cb0e472a5462da43c495c3f33';
|
|
26
|
+
exports.WEBAUTHN_V0_VALIDATOR_ADDRESS = WEBAUTHN_V0_VALIDATOR_ADDRESS;
|
|
20
27
|
const ECDSA_MOCK_SIGNATURE = '0x81d4b4981670cb18f99f0b4a66446df1bf5b204d24cfcb659bf38ba27a4359b5711649ec2423c5e1247245eba2964679b6a1dbb85c992ae40b9b00c6935b02ff1b';
|
|
21
|
-
const WEBAUTHN_MOCK_SIGNATURE = '
|
|
28
|
+
const WEBAUTHN_MOCK_SIGNATURE = '0x0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001b9b86eb98fda3ed4d797d9e690588dfadf17b329a76a47cec935bebf92d7ddc80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000019b2e9410bb6850f9f660a03d609d5a844fb96bcdc87a15139b03ee22c70f469100d2b865a215c3bf786387064effa8fcedcb1d625b5148f8a1236d5e3ff11acf000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d9763050000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000867b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22396a4546696a75684557724d34534f572d7443684a625545484550343456636a634a2d42716f3166544d38222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a38303830222c2263726f73734f726967696e223a66616c73657d0000000000000000000000000000000000000000000000000000';
|
|
22
29
|
function getOwnerValidator(config) {
|
|
30
|
+
if (!config.owners) {
|
|
31
|
+
throw new error_1.OwnersFieldRequiredError();
|
|
32
|
+
}
|
|
23
33
|
return getValidator(config.owners);
|
|
24
34
|
}
|
|
25
35
|
function getMockSignature(ownerSet) {
|
|
@@ -65,20 +75,20 @@ function getMockSignature(ownerSet) {
|
|
|
65
75
|
function getValidator(owners) {
|
|
66
76
|
switch (owners.type) {
|
|
67
77
|
case 'ecdsa':
|
|
68
|
-
return getOwnableValidator(owners.threshold ?? 1, owners.accounts.map((account) => account.address));
|
|
78
|
+
return getOwnableValidator(owners.threshold ?? 1, owners.accounts.map((account) => account.address), owners.module);
|
|
69
79
|
case 'passkey':
|
|
70
|
-
return getWebAuthnValidator({
|
|
71
|
-
pubKey:
|
|
72
|
-
authenticatorId:
|
|
73
|
-
});
|
|
80
|
+
return getWebAuthnValidator(owners.threshold ?? 1, owners.accounts.map((account) => ({
|
|
81
|
+
pubKey: account.publicKey,
|
|
82
|
+
authenticatorId: account.id,
|
|
83
|
+
})));
|
|
74
84
|
case 'multi-factor': {
|
|
75
85
|
return getMultiFactorValidator(owners.threshold ?? 1, owners.validators);
|
|
76
86
|
}
|
|
77
87
|
}
|
|
78
88
|
}
|
|
79
|
-
function getOwnableValidator(threshold, owners) {
|
|
89
|
+
function getOwnableValidator(threshold, owners, address) {
|
|
80
90
|
return {
|
|
81
|
-
address: OWNABLE_VALIDATOR_ADDRESS,
|
|
91
|
+
address: address ?? OWNABLE_VALIDATOR_ADDRESS,
|
|
82
92
|
initData: (0, viem_1.encodeAbiParameters)([
|
|
83
93
|
{ name: 'threshold', type: 'uint256' },
|
|
84
94
|
{ name: 'owners', type: 'address[]' },
|
|
@@ -91,29 +101,33 @@ function getOwnableValidator(threshold, owners) {
|
|
|
91
101
|
type: common_1.MODULE_TYPE_ID_VALIDATOR,
|
|
92
102
|
};
|
|
93
103
|
}
|
|
94
|
-
function getWebAuthnValidator(
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
104
|
+
function getWebAuthnValidator(threshold, webAuthnCredentials, address) {
|
|
105
|
+
function getPublicKey(webAuthnCredential) {
|
|
106
|
+
if (typeof webAuthnCredential.pubKey === 'string' ||
|
|
107
|
+
webAuthnCredential.pubKey instanceof Uint8Array) {
|
|
108
|
+
// It's a P256Credential
|
|
109
|
+
const { x, y, prefix } = parsePublicKey(webAuthnCredential.pubKey);
|
|
110
|
+
if (prefix && prefix !== 4) {
|
|
111
|
+
throw new Error('Only uncompressed public keys are supported');
|
|
112
|
+
}
|
|
113
|
+
return {
|
|
114
|
+
x,
|
|
115
|
+
y,
|
|
116
|
+
};
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
// It's already a PublicKey
|
|
120
|
+
return webAuthnCredential.pubKey;
|
|
106
121
|
}
|
|
107
122
|
}
|
|
108
|
-
|
|
109
|
-
// It's already a PublicKey
|
|
110
|
-
pubKeyX = webAuthnCredential.pubKey.x;
|
|
111
|
-
pubKeyY = webAuthnCredential.pubKey.y;
|
|
112
|
-
}
|
|
123
|
+
const publicKeys = webAuthnCredentials.map(getPublicKey);
|
|
113
124
|
return {
|
|
114
|
-
address: WEBAUTHN_VALIDATOR_ADDRESS,
|
|
125
|
+
address: address ?? WEBAUTHN_VALIDATOR_ADDRESS,
|
|
115
126
|
initData: (0, viem_1.encodeAbiParameters)([
|
|
127
|
+
{ name: 'threshold', type: 'uint256' },
|
|
116
128
|
{
|
|
129
|
+
name: 'credentials',
|
|
130
|
+
type: 'tuple[]',
|
|
117
131
|
components: [
|
|
118
132
|
{
|
|
119
133
|
name: 'pubKeyX',
|
|
@@ -123,19 +137,19 @@ function getWebAuthnValidator(webAuthnCredential) {
|
|
|
123
137
|
name: 'pubKeyY',
|
|
124
138
|
type: 'uint256',
|
|
125
139
|
},
|
|
140
|
+
{
|
|
141
|
+
name: 'requireUV',
|
|
142
|
+
type: 'bool',
|
|
143
|
+
},
|
|
126
144
|
],
|
|
127
|
-
type: 'tuple',
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
type: 'bytes32',
|
|
131
|
-
name: 'authenticatorIdHash',
|
|
132
145
|
},
|
|
133
146
|
], [
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
147
|
+
BigInt(threshold),
|
|
148
|
+
publicKeys.map((publicKey) => ({
|
|
149
|
+
pubKeyX: publicKey.x,
|
|
150
|
+
pubKeyY: publicKey.y,
|
|
151
|
+
requireUV: false,
|
|
152
|
+
})),
|
|
139
153
|
]),
|
|
140
154
|
deInitData: '0x',
|
|
141
155
|
additionalContext: '0x',
|
|
@@ -216,3 +230,12 @@ function parsePublicKey(publicKey) {
|
|
|
216
230
|
y: BigInt((0, viem_1.bytesToHex)(y)),
|
|
217
231
|
};
|
|
218
232
|
}
|
|
233
|
+
function supportsEip712(validator) {
|
|
234
|
+
switch (validator.address.toLowerCase()) {
|
|
235
|
+
case OWNABLE_BETA_VALIDATOR_ADDRESS: // Ownable Validator V1-beta
|
|
236
|
+
case OWNABLE_V0_VALIDATOR_ADDRESS: // Ownable Validator V0
|
|
237
|
+
return false;
|
|
238
|
+
default:
|
|
239
|
+
return true;
|
|
240
|
+
}
|
|
241
|
+
}
|
|
@@ -14,7 +14,7 @@ const core_1 = require("./core");
|
|
|
14
14
|
});
|
|
15
15
|
(0, vitest_1.expect)(validator.type).toEqual(common_1.MODULE_TYPE_ID_VALIDATOR);
|
|
16
16
|
(0, vitest_1.expect)((0, viem_1.isAddress)(validator.address)).toEqual(true);
|
|
17
|
-
(0, vitest_1.expect)(validator.address).toEqual('
|
|
17
|
+
(0, vitest_1.expect)(validator.address).toEqual('0x000000000013fdb5234e4e3162a810f54d9f7e98');
|
|
18
18
|
(0, vitest_1.expect)(validator.initData).toEqual('0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001000000000000000000000000f6c02c78ded62973b43bfa523b247da099486936');
|
|
19
19
|
});
|
|
20
20
|
(0, vitest_1.test)('ECDSA: two addresses', () => {
|
|
@@ -24,7 +24,7 @@ const core_1 = require("./core");
|
|
|
24
24
|
});
|
|
25
25
|
(0, vitest_1.expect)(validator.type).toEqual(common_1.MODULE_TYPE_ID_VALIDATOR);
|
|
26
26
|
(0, vitest_1.expect)((0, viem_1.isAddress)(validator.address)).toEqual(true);
|
|
27
|
-
(0, vitest_1.expect)(validator.address).toEqual('
|
|
27
|
+
(0, vitest_1.expect)(validator.address).toEqual('0x000000000013fdb5234e4e3162a810f54d9f7e98');
|
|
28
28
|
(0, vitest_1.expect)(validator.initData).toEqual('0x0000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da099486936');
|
|
29
29
|
});
|
|
30
30
|
(0, vitest_1.test)('ECDSA: three addresses, custom threshold', () => {
|
|
@@ -35,18 +35,18 @@ const core_1 = require("./core");
|
|
|
35
35
|
});
|
|
36
36
|
(0, vitest_1.expect)(validator.type).toEqual(common_1.MODULE_TYPE_ID_VALIDATOR);
|
|
37
37
|
(0, vitest_1.expect)((0, viem_1.isAddress)(validator.address)).toEqual(true);
|
|
38
|
-
(0, vitest_1.expect)(validator.address).toEqual('
|
|
38
|
+
(0, vitest_1.expect)(validator.address).toEqual('0x000000000013fdb5234e4e3162a810f54d9f7e98');
|
|
39
39
|
(0, vitest_1.expect)(validator.initData).toEqual('0x0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000030000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000c27b7578151c5ef713c62c65db09763d57ac3596000000000000000000000000f6c02c78ded62973b43bfa523b247da099486936');
|
|
40
40
|
});
|
|
41
41
|
(0, vitest_1.test)('Passkey', () => {
|
|
42
42
|
const validator = (0, core_1.getValidator)({
|
|
43
43
|
type: 'passkey',
|
|
44
|
-
|
|
44
|
+
accounts: [consts_1.passkeyAccount],
|
|
45
45
|
});
|
|
46
46
|
(0, vitest_1.expect)(validator.type).toEqual(common_1.MODULE_TYPE_ID_VALIDATOR);
|
|
47
47
|
(0, vitest_1.expect)((0, viem_1.isAddress)(validator.address)).toEqual(true);
|
|
48
|
-
(0, vitest_1.expect)(validator.address).toEqual('
|
|
49
|
-
(0, vitest_1.expect)(validator.initData).toEqual('
|
|
48
|
+
(0, vitest_1.expect)(validator.address).toEqual('0x0000000000578c4cb0e472a5462da43c495c3f33');
|
|
49
|
+
(0, vitest_1.expect)(validator.initData).toEqual('0x000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d10000000000000000000000000000000000000000000000000000000000000000');
|
|
50
50
|
});
|
|
51
51
|
});
|
|
52
52
|
(0, vitest_1.describe)('Mock Signature', () => {
|
|
@@ -67,7 +67,7 @@ const core_1 = require("./core");
|
|
|
67
67
|
(0, vitest_1.test)('Passkey', () => {
|
|
68
68
|
const signature = (0, core_1.getMockSignature)({
|
|
69
69
|
type: 'passkey',
|
|
70
|
-
|
|
70
|
+
accounts: [consts_1.passkeyAccount],
|
|
71
71
|
});
|
|
72
72
|
// Should have the proper schema
|
|
73
73
|
(0, viem_1.decodeAbiParameters)([
|
|
@@ -294,9 +294,9 @@ function getPolicyData(policy) {
|
|
|
294
294
|
case 'time-frame': {
|
|
295
295
|
return {
|
|
296
296
|
policy: TIME_FRAME_POLICY_ADDRESS,
|
|
297
|
-
initData: (0, viem_1.encodePacked)(['
|
|
298
|
-
|
|
299
|
-
|
|
297
|
+
initData: (0, viem_1.encodePacked)(['uint48', 'uint48'], [
|
|
298
|
+
Math.floor(policy.validUntil / 1000),
|
|
299
|
+
Math.floor(policy.validAfter / 1000),
|
|
300
300
|
]),
|
|
301
301
|
};
|
|
302
302
|
}
|
|
@@ -15,7 +15,7 @@ const smart_sessions_2 = require("./smart-sessions");
|
|
|
15
15
|
type: 'ecdsa',
|
|
16
16
|
accounts: [consts_1.accountA, consts_1.accountB],
|
|
17
17
|
},
|
|
18
|
-
})).toBe('
|
|
18
|
+
})).toBe('0xd3b39024e437b4cac278e33965b9a9326e81ee46bd45d890adbfc8eb45412fa1');
|
|
19
19
|
});
|
|
20
20
|
(0, vitest_1.test)('with salt', () => {
|
|
21
21
|
(0, vitest_1.expect)((0, smart_sessions_2.getPermissionId)({
|
|
@@ -24,7 +24,7 @@ const smart_sessions_2 = require("./smart-sessions");
|
|
|
24
24
|
accounts: [consts_1.accountA, consts_1.accountB],
|
|
25
25
|
},
|
|
26
26
|
salt: '0x97340e1cfff3319c76ef22b2bc9d3231071d550125d68c9d4a8972823f166320',
|
|
27
|
-
})).toBe('
|
|
27
|
+
})).toBe('0xeb47b4699298a847a0f6fb7365e56aefcc95630e7d0e3d9ca5917620c7dc3d08');
|
|
28
28
|
});
|
|
29
29
|
});
|
|
30
30
|
(0, vitest_1.describe)('Smart Session Validator', () => {
|
|
@@ -34,7 +34,6 @@ const smart_sessions_2 = require("./smart-sessions");
|
|
|
34
34
|
type: 'ecdsa',
|
|
35
35
|
accounts: [consts_1.accountA],
|
|
36
36
|
},
|
|
37
|
-
rhinestoneApiKey: consts_1.MOCK_API_KEY,
|
|
38
37
|
})).toBeNull();
|
|
39
38
|
});
|
|
40
39
|
(0, vitest_1.test)('empty session list', () => {
|
|
@@ -43,7 +42,6 @@ const smart_sessions_2 = require("./smart-sessions");
|
|
|
43
42
|
type: 'ecdsa',
|
|
44
43
|
accounts: [consts_1.accountA],
|
|
45
44
|
},
|
|
46
|
-
rhinestoneApiKey: consts_1.MOCK_API_KEY,
|
|
47
45
|
sessions: [],
|
|
48
46
|
})).not.toBeNull();
|
|
49
47
|
});
|
|
@@ -53,7 +51,6 @@ const smart_sessions_2 = require("./smart-sessions");
|
|
|
53
51
|
type: 'ecdsa',
|
|
54
52
|
accounts: [consts_1.accountA],
|
|
55
53
|
},
|
|
56
|
-
rhinestoneApiKey: consts_1.MOCK_API_KEY,
|
|
57
54
|
sessions: [
|
|
58
55
|
{
|
|
59
56
|
owners: {
|
|
@@ -217,10 +214,10 @@ const smart_sessions_2 = require("./smart-sessions");
|
|
|
217
214
|
});
|
|
218
215
|
(0, vitest_1.describe)('Encode Smart Session Signature', () => {
|
|
219
216
|
(0, vitest_1.test)('use mode', () => {
|
|
220
|
-
const permissionId = '
|
|
217
|
+
const permissionId = '0xd3b39024e437b4cac278e33965b9a9326e81ee46bd45d890adbfc8eb45412fa1';
|
|
221
218
|
const signature = '0xabcdef';
|
|
222
219
|
const sessionSignature = (0, smart_sessions_2.encodeSmartSessionSignature)(smart_sessions_2.SMART_SESSION_MODE_USE, permissionId, signature);
|
|
223
|
-
(0, vitest_1.expect)(sessionSignature).toEqual('
|
|
220
|
+
(0, vitest_1.expect)(sessionSignature).toEqual('0x00d3b39024e437b4cac278e33965b9a9326e81ee46bd45d890adbfc8eb45412fa1abcdef');
|
|
224
221
|
});
|
|
225
222
|
});
|
|
226
223
|
});
|
|
@@ -2,18 +2,18 @@ import { type Address } from 'viem';
|
|
|
2
2
|
import type { IntentCost, IntentInput, IntentOpStatus, IntentResult, IntentRoute, Portfolio, SignedIntentOp } from './types';
|
|
3
3
|
export declare class Orchestrator {
|
|
4
4
|
private serverUrl;
|
|
5
|
-
private apiKey
|
|
6
|
-
constructor(serverUrl: string, apiKey
|
|
5
|
+
private apiKey?;
|
|
6
|
+
constructor(serverUrl: string, apiKey?: string);
|
|
7
7
|
getPortfolio(userAddress: Address, filter?: {
|
|
8
8
|
chainIds?: number[];
|
|
9
9
|
tokens?: {
|
|
10
10
|
[chainId: number]: Address[];
|
|
11
11
|
};
|
|
12
12
|
}): Promise<Portfolio>;
|
|
13
|
-
getMaxTokenAmount(userAddress: Address, destinationChainId: number, destinationTokenAddress: Address, destinationGasUnits: bigint): Promise<bigint>;
|
|
13
|
+
getMaxTokenAmount(userAddress: Address, destinationChainId: number, destinationTokenAddress: Address, destinationGasUnits: bigint, sponsored: boolean): Promise<bigint>;
|
|
14
14
|
getIntentCost(input: IntentInput): Promise<IntentCost>;
|
|
15
15
|
getIntentRoute(input: IntentInput): Promise<IntentRoute>;
|
|
16
|
-
submitIntent(
|
|
16
|
+
submitIntent(signedIntentOpUnformatted: SignedIntentOp, dryRun: boolean): Promise<IntentResult>;
|
|
17
17
|
getIntentOpStatus(intentId: bigint): Promise<IntentOpStatus>;
|
|
18
18
|
private parseError;
|
|
19
19
|
private parseErrorMessage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../orchestrator/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAuB,MAAM,MAAM,CAAA;AAexD,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EAET,cAAc,EACf,MAAM,SAAS,CAAA;AAGhB,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAQ;
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../orchestrator/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,EAAuB,MAAM,MAAM,CAAA;AAexD,OAAO,KAAK,EACV,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,SAAS,EAET,cAAc,EACf,MAAM,SAAS,CAAA;AAGhB,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,MAAM,CAAC,CAAQ;gBAEX,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAKxC,YAAY,CAChB,WAAW,EAAE,OAAO,EACpB,MAAM,CAAC,EAAE;QACP,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;QACnB,MAAM,CAAC,EAAE;YACP,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,EAAE,CAAA;SAC7B,CAAA;KACF,GACA,OAAO,CAAC,SAAS,CAAC;IAmDf,iBAAiB,CACrB,WAAW,EAAE,OAAO,EACpB,kBAAkB,EAAE,MAAM,EAC1B,uBAAuB,EAAE,OAAO,EAChC,mBAAmB,EAAE,MAAM,EAC3B,SAAS,EAAE,OAAO,GACjB,OAAO,CAAC,MAAM,CAAC;IAqDZ,aAAa,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAqBtD,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAqBxD,YAAY,CAChB,yBAAyB,EAAE,cAAc,EACzC,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,YAAY,CAAC;IA2BlB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAoBlE,OAAO,CAAC,UAAU;IA0ElB,OAAO,CAAC,iBAAiB;CAmD1B"}
|