@rhinestone/sdk 1.0.0-alpha.2 → 1.0.0-alpha.21
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/custom.d.ts +18 -0
- package/dist/src/accounts/custom.d.ts.map +1 -0
- package/dist/src/accounts/custom.js +121 -0
- package/dist/src/accounts/custom.test.d.ts +2 -0
- package/dist/src/accounts/custom.test.d.ts.map +1 -0
- package/dist/src/accounts/custom.test.js +64 -0
- package/dist/src/accounts/error.d.ts.map +1 -1
- package/dist/src/accounts/error.js +2 -0
- package/dist/src/accounts/index.d.ts +22 -13
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +192 -186
- package/dist/src/accounts/index.test.js +3 -3
- 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 +2 -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 +9 -10
- package/dist/src/accounts/kernel.d.ts.map +1 -1
- package/dist/src/accounts/kernel.js +3 -14
- package/dist/src/accounts/kernel.test.js +10 -15
- package/dist/src/accounts/nexus.d.ts +14 -13
- package/dist/src/accounts/nexus.d.ts.map +1 -1
- package/dist/src/accounts/nexus.js +121 -93
- package/dist/src/accounts/nexus.test.js +13 -14
- package/dist/src/accounts/safe.d.ts +5 -7
- package/dist/src/accounts/safe.d.ts.map +1 -1
- package/dist/src/accounts/safe.js +25 -35
- package/dist/src/accounts/safe.test.js +9 -10
- 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 +142 -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 +29 -0
- package/dist/src/accounts/signing/passkeys.d.ts.map +1 -0
- package/dist/src/accounts/signing/passkeys.js +90 -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 +73 -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 +20 -0
- package/dist/src/accounts/startale.d.ts.map +1 -0
- package/dist/src/accounts/startale.js +100 -0
- package/dist/src/accounts/startale.test.d.ts +2 -0
- package/dist/src/accounts/startale.test.d.ts.map +1 -0
- package/dist/src/accounts/startale.test.js +96 -0
- package/dist/src/accounts/utils.d.ts +2 -1
- package/dist/src/accounts/utils.d.ts.map +1 -1
- package/dist/src/accounts/utils.js +7 -0
- package/dist/src/actions/index.d.ts +145 -7
- package/dist/src/actions/index.d.ts.map +1 -1
- package/dist/src/actions/index.js +373 -23
- package/dist/src/actions/index.test.js +35 -17
- package/dist/src/actions/smart-session.d.ts +8 -2
- package/dist/src/actions/smart-session.d.ts.map +1 -1
- package/dist/src/actions/smart-session.js +6 -0
- package/dist/src/execution/compact.d.ts +130 -3
- package/dist/src/execution/compact.d.ts.map +1 -1
- package/dist/src/execution/compact.js +94 -1
- 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 +3 -4
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +35 -80
- package/dist/src/execution/smart-session.d.ts +1 -1
- package/dist/src/execution/smart-session.d.ts.map +1 -1
- package/dist/src/execution/smart-session.js +12 -17
- package/dist/src/execution/utils.d.ts +19 -14
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +222 -97
- package/dist/src/index.d.ts +17 -15
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +108 -21
- package/dist/src/modules/index.d.ts +3 -22
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +5 -65
- package/dist/src/modules/index.test.js +3 -17
- package/dist/src/modules/omni-account.d.ts +2 -4
- package/dist/src/modules/omni-account.d.ts.map +1 -1
- package/dist/src/modules/omni-account.js +4 -8
- package/dist/src/modules/read.d.ts +5 -6
- package/dist/src/modules/read.d.ts.map +1 -1
- package/dist/src/modules/read.js +7 -37
- package/dist/src/modules/validators/core.d.ts +8 -8
- package/dist/src/modules/validators/core.d.ts.map +1 -1
- package/dist/src/modules/validators/core.js +126 -42
- package/dist/src/modules/validators/core.test.js +7 -7
- package/dist/src/modules/validators/smart-sessions.d.ts +3 -3
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +10 -9
- package/dist/src/modules/validators/smart-sessions.test.js +4 -4
- package/dist/src/orchestrator/client.d.ts +5 -3
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +159 -95
- package/dist/src/orchestrator/consts.d.ts +3 -2
- package/dist/src/orchestrator/consts.d.ts.map +1 -1
- package/dist/src/orchestrator/consts.js +4 -2
- package/dist/src/orchestrator/index.d.ts +3 -4
- package/dist/src/orchestrator/index.d.ts.map +1 -1
- package/dist/src/orchestrator/index.js +1 -9
- package/dist/src/orchestrator/registry.d.ts +10 -13
- package/dist/src/orchestrator/registry.d.ts.map +1 -1
- package/dist/src/orchestrator/registry.js +75 -395
- package/dist/src/orchestrator/registry.test.d.ts.map +1 -0
- package/dist/src/orchestrator/registry.test.js +137 -0
- package/dist/src/orchestrator/types.d.ts +78 -16
- 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 +69 -26
- package/dist/src/types.d.ts.map +1 -1
- package/dist/test/consts.d.ts +2 -2
- package/dist/test/consts.d.ts.map +1 -1
- package/package.json +2 -1
- package/dist/src/actions/registry.d.ts +0 -7
- package/dist/src/actions/registry.d.ts.map +0 -1
- package/dist/src/actions/registry.js +0 -7
- package/dist/src/actions/registry.test.d.ts.map +0 -1
- package/dist/src/actions/registry.test.js +0 -25
- package/dist/src/modules/registry.d.ts +0 -13
- package/dist/src/modules/registry.d.ts.map +0 -1
- package/dist/src/modules/registry.js +0 -67
- /package/dist/src/{actions → orchestrator}/registry.test.d.ts +0 -0
|
@@ -1,52 +1,89 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.WEBAUTHN_VALIDATOR_ADDRESS = exports.OWNABLE_VALIDATOR_ADDRESS = void 0;
|
|
3
|
+
exports.OWNABLE_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;
|
|
7
|
+
exports.getMultiFactorValidator = getMultiFactorValidator;
|
|
7
8
|
exports.getSocialRecoveryValidator = getSocialRecoveryValidator;
|
|
8
9
|
exports.getValidator = getValidator;
|
|
9
10
|
exports.getMockSignature = getMockSignature;
|
|
10
11
|
const viem_1 = require("viem");
|
|
11
12
|
const common_1 = require("../common");
|
|
12
|
-
const OWNABLE_VALIDATOR_ADDRESS = '
|
|
13
|
+
const OWNABLE_VALIDATOR_ADDRESS = '0x000000000013fdB5234E4E3162a810F54d9f7E98';
|
|
13
14
|
exports.OWNABLE_VALIDATOR_ADDRESS = OWNABLE_VALIDATOR_ADDRESS;
|
|
14
|
-
const WEBAUTHN_VALIDATOR_ADDRESS = '
|
|
15
|
+
const WEBAUTHN_VALIDATOR_ADDRESS = '0x0000000000578c4cB0e472a5462da43C495C3F33';
|
|
15
16
|
exports.WEBAUTHN_VALIDATOR_ADDRESS = WEBAUTHN_VALIDATOR_ADDRESS;
|
|
16
17
|
const SOCIAL_RECOVERY_VALIDATOR_ADDRESS = '0xA04D053b3C8021e8D5bF641816c42dAA75D8b597';
|
|
18
|
+
const MULTI_FACTOR_VALIDATOR_ADDRESS = '0xf6bDf42c9BE18cEcA5C06c42A43DAf7FBbe7896b';
|
|
19
|
+
exports.MULTI_FACTOR_VALIDATOR_ADDRESS = MULTI_FACTOR_VALIDATOR_ADDRESS;
|
|
20
|
+
const OWNABLE_V0_VALIDATOR_ADDRESS = '0x2483DA3A338895199E5e538530213157e931Bf06';
|
|
21
|
+
exports.OWNABLE_V0_VALIDATOR_ADDRESS = OWNABLE_V0_VALIDATOR_ADDRESS;
|
|
17
22
|
const ECDSA_MOCK_SIGNATURE = '0x81d4b4981670cb18f99f0b4a66446df1bf5b204d24cfcb659bf38ba27a4359b5711649ec2423c5e1247245eba2964679b6a1dbb85c992ae40b9b00c6935b02ff1b';
|
|
18
|
-
const WEBAUTHN_MOCK_SIGNATURE = '
|
|
23
|
+
const WEBAUTHN_MOCK_SIGNATURE = '0x0000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001b9b86eb98fda3ed4d797d9e690588dfadf17b329a76a47cec935bebf92d7ddc80000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000001700000000000000000000000000000000000000000000000000000000000000019b2e9410bb6850f9f660a03d609d5a844fb96bcdc87a15139b03ee22c70f469100d2b865a215c3bf786387064effa8fcedcb1d625b5148f8a1236d5e3ff11acf000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d9763050000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000867b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22396a4546696a75684557724d34534f572d7443684a625545484550343456636a634a2d42716f3166544d38222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a38303830222c2263726f73734f726967696e223a66616c73657d0000000000000000000000000000000000000000000000000000';
|
|
19
24
|
function getOwnerValidator(config) {
|
|
20
25
|
return getValidator(config.owners);
|
|
21
26
|
}
|
|
22
27
|
function getMockSignature(ownerSet) {
|
|
23
28
|
switch (ownerSet.type) {
|
|
24
|
-
case 'ecdsa':
|
|
29
|
+
case 'ecdsa':
|
|
30
|
+
case 'ecdsa-v0': {
|
|
25
31
|
const owners = ownerSet.accounts.map((account) => account.address);
|
|
26
32
|
const signatures = owners.map(() => ECDSA_MOCK_SIGNATURE);
|
|
27
33
|
return (0, viem_1.concat)(signatures);
|
|
28
34
|
}
|
|
29
35
|
case 'passkey':
|
|
30
36
|
return WEBAUTHN_MOCK_SIGNATURE;
|
|
37
|
+
case 'multi-factor': {
|
|
38
|
+
const mockValidators = ownerSet.validators.map((validator, index) => {
|
|
39
|
+
const validatorModule = getValidator(validator);
|
|
40
|
+
const signature = getMockSignature(validator);
|
|
41
|
+
return {
|
|
42
|
+
packedValidatorAndId: (0, viem_1.encodePacked)(['bytes12', 'address'], [
|
|
43
|
+
(0, viem_1.pad)((0, viem_1.toHex)(index), {
|
|
44
|
+
size: 12,
|
|
45
|
+
}),
|
|
46
|
+
validatorModule.address,
|
|
47
|
+
]),
|
|
48
|
+
data: signature,
|
|
49
|
+
};
|
|
50
|
+
});
|
|
51
|
+
return (0, viem_1.encodeAbiParameters)([
|
|
52
|
+
{
|
|
53
|
+
components: [
|
|
54
|
+
{
|
|
55
|
+
internalType: 'bytes32',
|
|
56
|
+
name: 'packedValidatorAndId',
|
|
57
|
+
type: 'bytes32',
|
|
58
|
+
},
|
|
59
|
+
{ internalType: 'bytes', name: 'data', type: 'bytes' },
|
|
60
|
+
],
|
|
61
|
+
name: 'validators',
|
|
62
|
+
type: 'tuple[]',
|
|
63
|
+
},
|
|
64
|
+
], [mockValidators]);
|
|
65
|
+
}
|
|
31
66
|
}
|
|
32
67
|
}
|
|
33
68
|
function getValidator(owners) {
|
|
34
69
|
switch (owners.type) {
|
|
35
70
|
case 'ecdsa':
|
|
36
|
-
return getOwnableValidator(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
});
|
|
71
|
+
return getOwnableValidator(owners.threshold ?? 1, owners.accounts.map((account) => account.address));
|
|
72
|
+
case 'ecdsa-v0':
|
|
73
|
+
return getOwnableValidator(owners.threshold ?? 1, owners.accounts.map((account) => account.address), OWNABLE_V0_VALIDATOR_ADDRESS);
|
|
40
74
|
case 'passkey':
|
|
41
|
-
return getWebAuthnValidator({
|
|
42
|
-
pubKey:
|
|
43
|
-
authenticatorId:
|
|
44
|
-
});
|
|
75
|
+
return getWebAuthnValidator(owners.threshold ?? 1, owners.accounts.map((account) => ({
|
|
76
|
+
pubKey: account.publicKey,
|
|
77
|
+
authenticatorId: account.id,
|
|
78
|
+
})));
|
|
79
|
+
case 'multi-factor': {
|
|
80
|
+
return getMultiFactorValidator(owners.threshold ?? 1, owners.validators);
|
|
81
|
+
}
|
|
45
82
|
}
|
|
46
83
|
}
|
|
47
|
-
function getOwnableValidator(
|
|
84
|
+
function getOwnableValidator(threshold, owners, address) {
|
|
48
85
|
return {
|
|
49
|
-
address: OWNABLE_VALIDATOR_ADDRESS,
|
|
86
|
+
address: address ?? OWNABLE_VALIDATOR_ADDRESS,
|
|
50
87
|
initData: (0, viem_1.encodeAbiParameters)([
|
|
51
88
|
{ name: 'threshold', type: 'uint256' },
|
|
52
89
|
{ name: 'owners', type: 'address[]' },
|
|
@@ -59,29 +96,33 @@ function getOwnableValidator({ threshold, owners, }) {
|
|
|
59
96
|
type: common_1.MODULE_TYPE_ID_VALIDATOR,
|
|
60
97
|
};
|
|
61
98
|
}
|
|
62
|
-
function getWebAuthnValidator(
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
99
|
+
function getWebAuthnValidator(threshold, webAuthnCredentials) {
|
|
100
|
+
function getPublicKey(webAuthnCredential) {
|
|
101
|
+
if (typeof webAuthnCredential.pubKey === 'string' ||
|
|
102
|
+
webAuthnCredential.pubKey instanceof Uint8Array) {
|
|
103
|
+
// It's a P256Credential
|
|
104
|
+
const { x, y, prefix } = parsePublicKey(webAuthnCredential.pubKey);
|
|
105
|
+
if (prefix && prefix !== 4) {
|
|
106
|
+
throw new Error('Only uncompressed public keys are supported');
|
|
107
|
+
}
|
|
108
|
+
return {
|
|
109
|
+
x,
|
|
110
|
+
y,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
// It's already a PublicKey
|
|
115
|
+
return webAuthnCredential.pubKey;
|
|
74
116
|
}
|
|
75
117
|
}
|
|
76
|
-
|
|
77
|
-
// It's already a PublicKey
|
|
78
|
-
pubKeyX = webAuthnCredential.pubKey.x;
|
|
79
|
-
pubKeyY = webAuthnCredential.pubKey.y;
|
|
80
|
-
}
|
|
118
|
+
const publicKeys = webAuthnCredentials.map(getPublicKey);
|
|
81
119
|
return {
|
|
82
120
|
address: WEBAUTHN_VALIDATOR_ADDRESS,
|
|
83
121
|
initData: (0, viem_1.encodeAbiParameters)([
|
|
122
|
+
{ name: 'threshold', type: 'uint256' },
|
|
84
123
|
{
|
|
124
|
+
name: 'credentials',
|
|
125
|
+
type: 'tuple[]',
|
|
85
126
|
components: [
|
|
86
127
|
{
|
|
87
128
|
name: 'pubKeyX',
|
|
@@ -91,19 +132,62 @@ function getWebAuthnValidator(webAuthnCredential) {
|
|
|
91
132
|
name: 'pubKeyY',
|
|
92
133
|
type: 'uint256',
|
|
93
134
|
},
|
|
135
|
+
{
|
|
136
|
+
name: 'requireUV',
|
|
137
|
+
type: 'bool',
|
|
138
|
+
},
|
|
94
139
|
],
|
|
95
|
-
type: 'tuple',
|
|
96
|
-
},
|
|
97
|
-
{
|
|
98
|
-
type: 'bytes32',
|
|
99
|
-
name: 'authenticatorIdHash',
|
|
100
140
|
},
|
|
101
141
|
], [
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
142
|
+
BigInt(threshold),
|
|
143
|
+
publicKeys.map((publicKey) => ({
|
|
144
|
+
pubKeyX: publicKey.x,
|
|
145
|
+
pubKeyY: publicKey.y,
|
|
146
|
+
requireUV: false,
|
|
147
|
+
})),
|
|
148
|
+
]),
|
|
149
|
+
deInitData: '0x',
|
|
150
|
+
additionalContext: '0x',
|
|
151
|
+
type: common_1.MODULE_TYPE_ID_VALIDATOR,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function getMultiFactorValidator(threshold, validators) {
|
|
155
|
+
return {
|
|
156
|
+
address: MULTI_FACTOR_VALIDATOR_ADDRESS,
|
|
157
|
+
initData: (0, viem_1.encodePacked)(['uint8', 'bytes'], [
|
|
158
|
+
threshold,
|
|
159
|
+
(0, viem_1.encodeAbiParameters)([
|
|
160
|
+
{
|
|
161
|
+
components: [
|
|
162
|
+
{
|
|
163
|
+
internalType: 'bytes32',
|
|
164
|
+
name: 'packedValidatorAndId',
|
|
165
|
+
type: 'bytes32',
|
|
166
|
+
},
|
|
167
|
+
{ internalType: 'bytes', name: 'data', type: 'bytes' },
|
|
168
|
+
],
|
|
169
|
+
name: 'validators',
|
|
170
|
+
type: 'tuple[]',
|
|
171
|
+
},
|
|
172
|
+
], [
|
|
173
|
+
validators
|
|
174
|
+
.map((validator, index) => {
|
|
175
|
+
if (validator === null) {
|
|
176
|
+
return null;
|
|
177
|
+
}
|
|
178
|
+
const validatorModule = getValidator(validator);
|
|
179
|
+
return {
|
|
180
|
+
packedValidatorAndId: (0, viem_1.concat)([
|
|
181
|
+
(0, viem_1.pad)((0, viem_1.toHex)(index), {
|
|
182
|
+
size: 12,
|
|
183
|
+
}),
|
|
184
|
+
validatorModule.address,
|
|
185
|
+
]),
|
|
186
|
+
data: validatorModule.initData,
|
|
187
|
+
};
|
|
188
|
+
})
|
|
189
|
+
.filter((validator) => validator !== null),
|
|
190
|
+
]),
|
|
107
191
|
]),
|
|
108
192
|
deInitData: '0x',
|
|
109
193
|
additionalContext: '0x',
|
|
@@ -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)([
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Address, type Chain, type Hex, type PublicClient } from 'viem';
|
|
2
|
-
import type { AccountType, RhinestoneAccountConfig, Session } from '../../types';
|
|
2
|
+
import type { AccountType, ProviderConfig, RhinestoneAccountConfig, Session } from '../../types';
|
|
3
3
|
import { type Module } from '../common';
|
|
4
4
|
interface SessionData {
|
|
5
5
|
sessionValidator: Address;
|
|
@@ -82,8 +82,8 @@ declare const SMART_SESSIONS_VALIDATOR_ADDRESS: Address;
|
|
|
82
82
|
declare const SMART_SESSION_MODE_USE = "0x00";
|
|
83
83
|
declare const SMART_SESSION_MODE_ENABLE = "0x01";
|
|
84
84
|
declare const SMART_SESSION_MODE_UNSAFE_ENABLE = "0x02";
|
|
85
|
-
declare function getSessionData(chain: Chain, session: Session): Promise<SessionData>;
|
|
86
|
-
declare function getEnableSessionCall(chain: Chain, session: Session): Promise<{
|
|
85
|
+
declare function getSessionData(chain: Chain, session: Session, provider?: ProviderConfig): Promise<SessionData>;
|
|
86
|
+
declare function getEnableSessionCall(chain: Chain, session: Session, provider?: ProviderConfig): Promise<{
|
|
87
87
|
to: `0x${string}`;
|
|
88
88
|
data: `0x${string}`;
|
|
89
89
|
}>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/smart-sessions.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAKV,KAAK,GAAG,
|
|
1
|
+
{"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/smart-sessions.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ exports.getPermissionId = getPermissionId;
|
|
|
9
9
|
exports.isSessionEnabled = isSessionEnabled;
|
|
10
10
|
const solady_1 = require("solady");
|
|
11
11
|
const viem_1 = require("viem");
|
|
12
|
+
const utils_1 = require("../../accounts/utils");
|
|
12
13
|
const orchestrator_1 = require("../../orchestrator");
|
|
13
14
|
const smart_sessions_1 = require("../abi/smart-sessions");
|
|
14
15
|
const common_1 = require("../common");
|
|
@@ -36,8 +37,8 @@ const ACTION_CONDITION_GREATER_THAN_OR_EQUAL = 3;
|
|
|
36
37
|
const ACTION_CONDITION_LESS_THAN_OR_EQUAL = 4;
|
|
37
38
|
const ACTION_CONDITION_NOT_EQUAL = 5;
|
|
38
39
|
const ACTION_CONDITION_IN_RANGE = 6;
|
|
39
|
-
async function getSessionData(chain, session) {
|
|
40
|
-
const { appDomainSeparator, contentsType } = await getSessionAllowedERC7739Content(chain);
|
|
40
|
+
async function getSessionData(chain, session, provider) {
|
|
41
|
+
const { appDomainSeparator, contentsType } = await getSessionAllowedERC7739Content(chain, provider);
|
|
41
42
|
const allowedERC7739Content = [
|
|
42
43
|
{
|
|
43
44
|
appDomainSeparator,
|
|
@@ -46,8 +47,8 @@ async function getSessionData(chain, session) {
|
|
|
46
47
|
];
|
|
47
48
|
return getSmartSessionData(chain, session, allowedERC7739Content);
|
|
48
49
|
}
|
|
49
|
-
async function getEnableSessionCall(chain, session) {
|
|
50
|
-
const { appDomainSeparator, contentsType } = await getSessionAllowedERC7739Content(chain);
|
|
50
|
+
async function getEnableSessionCall(chain, session, provider) {
|
|
51
|
+
const { appDomainSeparator, contentsType } = await getSessionAllowedERC7739Content(chain, provider);
|
|
51
52
|
const allowedERC7739Content = [
|
|
52
53
|
{
|
|
53
54
|
appDomainSeparator,
|
|
@@ -90,10 +91,10 @@ function getOmniAccountActions(chain) {
|
|
|
90
91
|
];
|
|
91
92
|
return omniActions;
|
|
92
93
|
}
|
|
93
|
-
async function getSessionAllowedERC7739Content(chain) {
|
|
94
|
+
async function getSessionAllowedERC7739Content(chain, provider) {
|
|
94
95
|
const publicClient = (0, viem_1.createPublicClient)({
|
|
95
96
|
chain,
|
|
96
|
-
transport: (0,
|
|
97
|
+
transport: (0, utils_1.createTransport)(chain, provider),
|
|
97
98
|
});
|
|
98
99
|
const appDomainSeparator = await publicClient.readContract({
|
|
99
100
|
address: omni_account_1.HOOK_ADDRESS,
|
|
@@ -293,9 +294,9 @@ function getPolicyData(policy) {
|
|
|
293
294
|
case 'time-frame': {
|
|
294
295
|
return {
|
|
295
296
|
policy: TIME_FRAME_POLICY_ADDRESS,
|
|
296
|
-
initData: (0, viem_1.encodePacked)(['
|
|
297
|
-
|
|
298
|
-
|
|
297
|
+
initData: (0, viem_1.encodePacked)(['uint48', 'uint48'], [
|
|
298
|
+
Math.floor(policy.validUntil / 1000),
|
|
299
|
+
Math.floor(policy.validAfter / 1000),
|
|
299
300
|
]),
|
|
300
301
|
};
|
|
301
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', () => {
|
|
@@ -217,10 +217,10 @@ const smart_sessions_2 = require("./smart-sessions");
|
|
|
217
217
|
});
|
|
218
218
|
(0, vitest_1.describe)('Encode Smart Session Signature', () => {
|
|
219
219
|
(0, vitest_1.test)('use mode', () => {
|
|
220
|
-
const permissionId = '
|
|
220
|
+
const permissionId = '0xd3b39024e437b4cac278e33965b9a9326e81ee46bd45d890adbfc8eb45412fa1';
|
|
221
221
|
const signature = '0xabcdef';
|
|
222
222
|
const sessionSignature = (0, smart_sessions_2.encodeSmartSessionSignature)(smart_sessions_2.SMART_SESSION_MODE_USE, permissionId, signature);
|
|
223
|
-
(0, vitest_1.expect)(sessionSignature).toEqual('
|
|
223
|
+
(0, vitest_1.expect)(sessionSignature).toEqual('0x00d3b39024e437b4cac278e33965b9a9326e81ee46bd45d890adbfc8eb45412fa1abcdef');
|
|
224
224
|
});
|
|
225
225
|
});
|
|
226
226
|
});
|
|
@@ -2,19 +2,21 @@ 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
16
|
submitIntent(signedIntentOp: SignedIntentOp): Promise<IntentResult>;
|
|
17
|
+
simulateIntent(signedIntentOp: SignedIntentOp): Promise<IntentResult>;
|
|
17
18
|
getIntentOpStatus(intentId: bigint): Promise<IntentOpStatus>;
|
|
18
19
|
private parseError;
|
|
20
|
+
private parseErrorMessage;
|
|
19
21
|
}
|
|
20
22
|
//# sourceMappingURL=client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../orchestrator/client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,OAAO,
|
|
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,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAqBnE,cAAc,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC;IAqBrE,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAkBlE,OAAO,CAAC,UAAU;IA0ElB,OAAO,CAAC,iBAAiB;CAmD1B"}
|