@rhinestone/sdk 1.0.0-alpha.15 → 1.0.0-alpha.17
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/index.d.ts +1 -1
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +30 -0
- 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/safe.d.ts.map +1 -1
- package/dist/src/accounts/safe.js +2 -0
- package/dist/src/accounts/signing/common.d.ts.map +1 -1
- package/dist/src/accounts/signing/common.js +12 -3
- package/dist/src/accounts/utils.d.ts +3 -3
- package/dist/src/accounts/utils.d.ts.map +1 -1
- package/dist/src/accounts/utils.js +3 -40
- package/dist/src/actions/index.d.ts +1 -1
- package/dist/src/actions/index.d.ts.map +1 -1
- package/dist/src/actions/index.js +6 -3
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +0 -3
- package/dist/src/execution/utils.d.ts +3 -1
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +36 -7
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +11 -0
- package/dist/src/modules/read.d.ts.map +1 -1
- package/dist/src/modules/read.js +1 -0
- package/dist/src/modules/validators/core.d.ts +3 -2
- package/dist/src/modules/validators/core.d.ts.map +1 -1
- package/dist/src/modules/validators/core.js +9 -4
- package/dist/src/orchestrator/client.d.ts +1 -0
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +16 -0
- 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 +22 -24
- package/dist/src/orchestrator/registry.test.js +4 -4
- package/dist/src/orchestrator/types.d.ts +1 -6
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/types.d.ts +20 -4
- package/dist/src/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/src/orchestrator/registry.json +0 -365
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type Abi, type Address, type Hex, type PublicClient } from 'viem';
|
|
2
|
+
import { type SmartAccount, type SmartAccountImplementation } from 'viem/account-abstraction';
|
|
3
|
+
import type { Module } from '../modules/common';
|
|
4
|
+
import type { EnableSessionData } from '../modules/validators/smart-sessions';
|
|
5
|
+
import type { RhinestoneAccountConfig, Session } from '../types';
|
|
6
|
+
import { type ValidatorConfig } from './utils';
|
|
7
|
+
declare function getDeployArgs(config: RhinestoneAccountConfig): {
|
|
8
|
+
factory: Address;
|
|
9
|
+
factoryData: Hex;
|
|
10
|
+
};
|
|
11
|
+
declare function getInstallData(config: RhinestoneAccountConfig, module: Module): Hex[];
|
|
12
|
+
declare function getAddress(config: RhinestoneAccountConfig): Address;
|
|
13
|
+
declare function getPackedSignature(config: RhinestoneAccountConfig, signature: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex): Promise<`0x${string}`>;
|
|
14
|
+
declare function getSessionSmartAccount(config: RhinestoneAccountConfig, client: PublicClient, address: Address, session: Session, validatorAddress: Address, enableData: EnableSessionData | null): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
15
|
+
declare function getBaseSmartAccount(address: Address, client: PublicClient, validatorAddress: Address, getStubSignature: () => Promise<Hex>, signUserOperation: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, '0.7'>>>;
|
|
16
|
+
declare function getSmartAccount(config: RhinestoneAccountConfig, client: PublicClient, address: Address, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
|
|
17
|
+
export { getDeployArgs, getInstallData, getAddress, getPackedSignature, getSessionSmartAccount, getBaseSmartAccount, getSmartAccount, };
|
|
18
|
+
//# sourceMappingURL=custom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom.d.ts","sourceRoot":"","sources":["../../../accounts/custom.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EAEZ,KAAK,GAAG,EACR,KAAK,YAAY,EAClB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAEhF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;EAMrD;AAED,iBAAS,cAAc,CACrB,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,MAAM,GACb,GAAG,EAAE,CAMP;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAM5D;AAED,iBAAe,kBAAkB,CAC/B,MAAM,EAAE,uBAAuB,EAC/B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAWvE;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,iEAyBrC;AAED,iBAAe,mBAAmB,CAChC,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,YAAY,EACpB,gBAAgB,EAAE,OAAO,EACzB,gBAAgB,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EACpC,iBAAiB,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,GAC7C,OAAO,CAAC,YAAY,CAAC,0BAA0B,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,CAgE/D;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAelC;AAED,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,GAChB,CAAA"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDeployArgs = getDeployArgs;
|
|
4
|
+
exports.getInstallData = getInstallData;
|
|
5
|
+
exports.getAddress = getAddress;
|
|
6
|
+
exports.getPackedSignature = getPackedSignature;
|
|
7
|
+
exports.getSessionSmartAccount = getSessionSmartAccount;
|
|
8
|
+
exports.getBaseSmartAccount = getBaseSmartAccount;
|
|
9
|
+
exports.getSmartAccount = getSmartAccount;
|
|
10
|
+
const viem_1 = require("viem");
|
|
11
|
+
const account_abstraction_1 = require("viem/account-abstraction");
|
|
12
|
+
const utils_1 = require("./utils");
|
|
13
|
+
function getDeployArgs(config) {
|
|
14
|
+
if (!config.account || !config.account.custom) {
|
|
15
|
+
throw new Error('Account provider not found');
|
|
16
|
+
}
|
|
17
|
+
return config.account.custom.getDeployArgs();
|
|
18
|
+
}
|
|
19
|
+
function getInstallData(config, module) {
|
|
20
|
+
if (!config.account || !config.account.custom) {
|
|
21
|
+
throw new Error('Account provider not found');
|
|
22
|
+
}
|
|
23
|
+
return config.account.custom.getInstallData(module);
|
|
24
|
+
}
|
|
25
|
+
function getAddress(config) {
|
|
26
|
+
if (!config.account || !config.account.custom) {
|
|
27
|
+
throw new Error('Account provider not found');
|
|
28
|
+
}
|
|
29
|
+
return config.account.custom.getAddress();
|
|
30
|
+
}
|
|
31
|
+
async function getPackedSignature(config, signature, validator, transformSignature = (signature) => signature) {
|
|
32
|
+
if (!config.account || !config.account.custom) {
|
|
33
|
+
throw new Error('Account provider not found');
|
|
34
|
+
}
|
|
35
|
+
return config.account.custom.getPackedSignature(signature, validator, transformSignature);
|
|
36
|
+
}
|
|
37
|
+
async function getSessionSmartAccount(config, client, address, session, validatorAddress, enableData) {
|
|
38
|
+
return await getBaseSmartAccount(address, client, validatorAddress, async () => {
|
|
39
|
+
if (!config.account || !config.account.custom) {
|
|
40
|
+
throw new Error('Account provider not found');
|
|
41
|
+
}
|
|
42
|
+
return config.account.custom.getSessionStubSignature(session, enableData);
|
|
43
|
+
}, async (hash) => {
|
|
44
|
+
if (!config.account || !config.account.custom) {
|
|
45
|
+
throw new Error('Account provider not found');
|
|
46
|
+
}
|
|
47
|
+
return config.account.custom.signSessionUserOperation(session, enableData, hash);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
async function getBaseSmartAccount(address, client, validatorAddress, getStubSignature, signUserOperation) {
|
|
51
|
+
return await (0, account_abstraction_1.toSmartAccount)({
|
|
52
|
+
client,
|
|
53
|
+
entryPoint: {
|
|
54
|
+
abi: account_abstraction_1.entryPoint07Abi,
|
|
55
|
+
address: account_abstraction_1.entryPoint07Address,
|
|
56
|
+
version: '0.7',
|
|
57
|
+
},
|
|
58
|
+
async decodeCalls() {
|
|
59
|
+
throw new Error('Not implemented');
|
|
60
|
+
},
|
|
61
|
+
async encodeCalls(calls) {
|
|
62
|
+
return (0, utils_1.encode7579Calls)({
|
|
63
|
+
mode: {
|
|
64
|
+
type: calls.length > 1 ? 'batchcall' : 'call',
|
|
65
|
+
revertOnError: false,
|
|
66
|
+
selector: '0x',
|
|
67
|
+
context: '0x',
|
|
68
|
+
},
|
|
69
|
+
callData: calls,
|
|
70
|
+
});
|
|
71
|
+
},
|
|
72
|
+
async getAddress() {
|
|
73
|
+
return address;
|
|
74
|
+
},
|
|
75
|
+
async getFactoryArgs() {
|
|
76
|
+
return {};
|
|
77
|
+
},
|
|
78
|
+
async getNonce() {
|
|
79
|
+
const key = (0, viem_1.concat)([validatorAddress, '0x00000000']);
|
|
80
|
+
const nonce = await (0, utils_1.getAccountNonce)(client, {
|
|
81
|
+
address,
|
|
82
|
+
entryPointAddress: account_abstraction_1.entryPoint07Address,
|
|
83
|
+
key: BigInt(key),
|
|
84
|
+
});
|
|
85
|
+
return nonce;
|
|
86
|
+
},
|
|
87
|
+
async getStubSignature() {
|
|
88
|
+
return getStubSignature();
|
|
89
|
+
},
|
|
90
|
+
async signMessage() {
|
|
91
|
+
throw new Error('Not implemented');
|
|
92
|
+
},
|
|
93
|
+
async signTypedData() {
|
|
94
|
+
throw new Error('Not implemented');
|
|
95
|
+
},
|
|
96
|
+
async signUserOperation(parameters) {
|
|
97
|
+
const { chainId = client.chain?.id, ...userOperation } = parameters;
|
|
98
|
+
if (!chainId)
|
|
99
|
+
throw new Error('Chain id not found');
|
|
100
|
+
const hash = (0, account_abstraction_1.getUserOperationHash)({
|
|
101
|
+
userOperation: {
|
|
102
|
+
...userOperation,
|
|
103
|
+
sender: userOperation.sender ?? (await this.getAddress()),
|
|
104
|
+
signature: '0x',
|
|
105
|
+
},
|
|
106
|
+
entryPointAddress: account_abstraction_1.entryPoint07Address,
|
|
107
|
+
entryPointVersion: '0.7',
|
|
108
|
+
chainId: chainId,
|
|
109
|
+
});
|
|
110
|
+
return await signUserOperation(hash);
|
|
111
|
+
},
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
async function getSmartAccount(config, client, address, validatorAddress, sign) {
|
|
115
|
+
return getBaseSmartAccount(address, client, validatorAddress, async () => {
|
|
116
|
+
if (!config.account || !config.account.custom) {
|
|
117
|
+
throw new Error('Account provider not found');
|
|
118
|
+
}
|
|
119
|
+
return config.account.custom.getStubSignature();
|
|
120
|
+
}, sign);
|
|
121
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom.test.d.ts","sourceRoot":"","sources":["../../../accounts/custom.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const viem_1 = require("viem");
|
|
4
|
+
const account_abstraction_1 = require("viem/account-abstraction");
|
|
5
|
+
const accounts_1 = require("viem/accounts");
|
|
6
|
+
const chains_1 = require("viem/chains");
|
|
7
|
+
const vitest_1 = require("vitest");
|
|
8
|
+
const __1 = require("..");
|
|
9
|
+
(0, vitest_1.describe)('Custom Accounts', () => {
|
|
10
|
+
(0, vitest_1.describe)('Coinbase, account', async () => {
|
|
11
|
+
const client = (0, viem_1.createPublicClient)({
|
|
12
|
+
chain: chains_1.mainnet,
|
|
13
|
+
transport: (0, viem_1.http)(),
|
|
14
|
+
});
|
|
15
|
+
const owner = (0, accounts_1.privateKeyToAccount)((0, accounts_1.generatePrivateKey)());
|
|
16
|
+
const coinbaseAccount = await (0, account_abstraction_1.toCoinbaseSmartAccount)({
|
|
17
|
+
client,
|
|
18
|
+
owners: [owner],
|
|
19
|
+
});
|
|
20
|
+
(0, vitest_1.test)('Coinbase, getAddress', async () => {
|
|
21
|
+
const account = await (0, __1.createRhinestoneAccount)({
|
|
22
|
+
account: {
|
|
23
|
+
type: 'custom',
|
|
24
|
+
custom: {
|
|
25
|
+
getDeployArgs: () => {
|
|
26
|
+
return {
|
|
27
|
+
factory: '0x',
|
|
28
|
+
factoryData: '0x',
|
|
29
|
+
};
|
|
30
|
+
},
|
|
31
|
+
getInstallData: () => {
|
|
32
|
+
return [];
|
|
33
|
+
},
|
|
34
|
+
getAddress: () => {
|
|
35
|
+
return coinbaseAccount.address;
|
|
36
|
+
},
|
|
37
|
+
getPackedSignature: async () => {
|
|
38
|
+
throw new Error('Not implemented');
|
|
39
|
+
},
|
|
40
|
+
getSessionStubSignature: async () => {
|
|
41
|
+
throw new Error('Not implemented');
|
|
42
|
+
},
|
|
43
|
+
signSessionUserOperation: async () => {
|
|
44
|
+
throw new Error('Not implemented');
|
|
45
|
+
},
|
|
46
|
+
getStubSignature: async () => {
|
|
47
|
+
return coinbaseAccount.getStubSignature();
|
|
48
|
+
},
|
|
49
|
+
sign: async () => {
|
|
50
|
+
throw new Error('Not implemented');
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
},
|
|
54
|
+
owners: {
|
|
55
|
+
type: 'ecdsa-v0',
|
|
56
|
+
accounts: [owner],
|
|
57
|
+
threshold: 1,
|
|
58
|
+
},
|
|
59
|
+
rhinestoneApiKey: '',
|
|
60
|
+
});
|
|
61
|
+
(0, vitest_1.expect)(account.getAddress()).toEqual(coinbaseAccount.address);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
});
|
|
@@ -23,7 +23,7 @@ declare function deploy(config: RhinestoneAccountConfig, chain: Chain, session?:
|
|
|
23
23
|
declare function toErc6492Signature(config: RhinestoneAccountConfig, signature: Hex, chain: Chain): Promise<Hex>;
|
|
24
24
|
declare function getSmartAccount(config: RhinestoneAccountConfig, client: PublicClient, chain: Chain): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">>>;
|
|
25
25
|
declare function getSmartSessionSmartAccount(config: RhinestoneAccountConfig, client: PublicClient, chain: Chain, session: Session, enableData: EnableSessionData | null): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">>>;
|
|
26
|
-
declare function getGuardianSmartAccount(config: RhinestoneAccountConfig, client: PublicClient, chain: Chain, guardians: OwnerSet): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7"
|
|
26
|
+
declare function getGuardianSmartAccount(config: RhinestoneAccountConfig, client: PublicClient, chain: Chain, guardians: OwnerSet): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | undefined>;
|
|
27
27
|
declare function getAccountProvider(config: RhinestoneAccountConfig): AccountProviderConfig;
|
|
28
28
|
export { getModuleInstallationCalls, getModuleUninstallationCalls, getAddress, getAccountProvider, getInitCode, signEip7702InitData, getEip7702InitCall, isDeployed, deploy, toErc6492Signature, getSmartAccount, getSmartSessionSmartAccount, getGuardianSmartAccount, getPackedSignature, getTypedDataPackedSignature, isAccountError, AccountError, Eip7702AccountMustHaveEoaError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, SmartSessionsNotEnabledError, SigningNotSupportedForAccountError, SignMessageNotSupportedByAccountError, Eip7702NotSupportedForAccountError, };
|
|
29
29
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,KAAK,EAKV,KAAK,uBAAuB,EAC5B,KAAK,GAAG,EAER,KAAK,YAAY,EAEjB,KAAK,SAAS,EAEf,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EACV,qBAAqB,EACrB,IAAI,EACJ,QAAQ,EACR,uBAAuB,EACvB,OAAO,EACP,SAAS,EACV,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ const execution_1 = require("../execution");
|
|
|
21
21
|
const smart_session_1 = require("../execution/smart-session");
|
|
22
22
|
const validators_1 = require("../modules/validators");
|
|
23
23
|
const core_1 = require("../modules/validators/core");
|
|
24
|
+
const custom_1 = require("./custom");
|
|
24
25
|
const error_1 = require("./error");
|
|
25
26
|
Object.defineProperty(exports, "AccountError", { enumerable: true, get: function () { return error_1.AccountError; } });
|
|
26
27
|
Object.defineProperty(exports, "Eip7702AccountMustHaveEoaError", { enumerable: true, get: function () { return error_1.Eip7702AccountMustHaveEoaError; } });
|
|
@@ -54,6 +55,9 @@ function getDeployArgs(config) {
|
|
|
54
55
|
case 'startale': {
|
|
55
56
|
return (0, startale_1.getDeployArgs)(config);
|
|
56
57
|
}
|
|
58
|
+
case 'custom': {
|
|
59
|
+
return (0, custom_1.getDeployArgs)(config);
|
|
60
|
+
}
|
|
57
61
|
}
|
|
58
62
|
}
|
|
59
63
|
function getInitCode(config) {
|
|
@@ -86,6 +90,9 @@ async function signEip7702InitData(config) {
|
|
|
86
90
|
case 'startale': {
|
|
87
91
|
throw new Error(`7702 is not supported for account type ${account.type}`);
|
|
88
92
|
}
|
|
93
|
+
case 'custom': {
|
|
94
|
+
throw new Error('7702 is not supported for custom account');
|
|
95
|
+
}
|
|
89
96
|
}
|
|
90
97
|
}
|
|
91
98
|
async function getEip7702InitCall(config, signature) {
|
|
@@ -99,6 +106,9 @@ async function getEip7702InitCall(config, signature) {
|
|
|
99
106
|
case 'startale': {
|
|
100
107
|
throw new Error(`7702 is not supported for account type ${account.type}`);
|
|
101
108
|
}
|
|
109
|
+
case 'custom': {
|
|
110
|
+
throw new Error('7702 is not supported for custom account');
|
|
111
|
+
}
|
|
102
112
|
}
|
|
103
113
|
}
|
|
104
114
|
function getModuleInstallationCalls(config, module) {
|
|
@@ -118,6 +128,9 @@ function getModuleInstallationCalls(config, module) {
|
|
|
118
128
|
case 'startale': {
|
|
119
129
|
return [(0, startale_1.getInstallData)(module)];
|
|
120
130
|
}
|
|
131
|
+
case 'custom': {
|
|
132
|
+
return (0, custom_1.getInstallData)(config, module);
|
|
133
|
+
}
|
|
121
134
|
}
|
|
122
135
|
}
|
|
123
136
|
const installData = getInstallData();
|
|
@@ -178,6 +191,9 @@ function getAddress(config) {
|
|
|
178
191
|
case 'startale': {
|
|
179
192
|
return (0, startale_1.getAddress)(config);
|
|
180
193
|
}
|
|
194
|
+
case 'custom': {
|
|
195
|
+
return (0, custom_1.getAddress)(config);
|
|
196
|
+
}
|
|
181
197
|
}
|
|
182
198
|
}
|
|
183
199
|
// Signs and packs a signature to be EIP-1271 compatible
|
|
@@ -203,6 +219,10 @@ async function getPackedSignature(config, signers, chain, validator, hash, trans
|
|
|
203
219
|
const signature = await signFn(hash);
|
|
204
220
|
return (0, startale_1.packSignature)(signature, validator, transformSignature);
|
|
205
221
|
}
|
|
222
|
+
case 'custom': {
|
|
223
|
+
const signature = await signFn(hash);
|
|
224
|
+
return (0, custom_1.getPackedSignature)(config, signature, validator, transformSignature);
|
|
225
|
+
}
|
|
206
226
|
}
|
|
207
227
|
}
|
|
208
228
|
// Signs and packs a signature to be EIP-1271 compatible
|
|
@@ -216,6 +236,10 @@ async function getTypedDataPackedSignature(config, signers, chain, validator, pa
|
|
|
216
236
|
const signature = await signFn(parameters);
|
|
217
237
|
return (0, safe_1.packSignature)(signature, validator, transformSignature);
|
|
218
238
|
}
|
|
239
|
+
case 'custom': {
|
|
240
|
+
const signature = await signFn(parameters);
|
|
241
|
+
return (0, custom_1.getPackedSignature)(config, signature, validator, transformSignature);
|
|
242
|
+
}
|
|
219
243
|
case 'nexus': {
|
|
220
244
|
const signature = await signFn(parameters);
|
|
221
245
|
return (0, nexus_1.packSignature)(signature, validator, transformSignature);
|
|
@@ -318,6 +342,9 @@ async function getSmartAccount(config, client, chain) {
|
|
|
318
342
|
case 'startale': {
|
|
319
343
|
return (0, startale_1.getSmartAccount)(client, address, config.owners, ownerValidator.address, signFn);
|
|
320
344
|
}
|
|
345
|
+
case 'custom': {
|
|
346
|
+
return (0, custom_1.getSmartAccount)(config, client, address, ownerValidator.address, signFn);
|
|
347
|
+
}
|
|
321
348
|
}
|
|
322
349
|
}
|
|
323
350
|
async function getSmartSessionSmartAccount(config, client, chain, session, enableData) {
|
|
@@ -346,6 +373,9 @@ async function getSmartSessionSmartAccount(config, client, chain, session, enabl
|
|
|
346
373
|
case 'startale': {
|
|
347
374
|
return (0, startale_1.getSessionSmartAccount)(client, address, session, smartSessionValidator.address, enableData, signFn);
|
|
348
375
|
}
|
|
376
|
+
case 'custom': {
|
|
377
|
+
return (0, custom_1.getSessionSmartAccount)(config, client, address, session, smartSessionValidator.address, enableData);
|
|
378
|
+
}
|
|
349
379
|
}
|
|
350
380
|
}
|
|
351
381
|
async function getGuardianSmartAccount(config, client, chain, guardians) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../accounts/json-rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,EAAQ,KAAK,SAAS,EAAE,MAAM,MAAM,CAAA;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAGjD,iBAAS,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,EAAE,cAAc,GAAG,SAAS,CAc3E;AAED,OAAO,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTransport = createTransport;
|
|
4
|
+
const viem_1 = require("viem");
|
|
5
|
+
const providers_1 = require("./providers");
|
|
6
|
+
function createTransport(chain, provider) {
|
|
7
|
+
if (!provider) {
|
|
8
|
+
return (0, viem_1.http)();
|
|
9
|
+
}
|
|
10
|
+
switch (provider.type) {
|
|
11
|
+
case 'alchemy': {
|
|
12
|
+
const alchemyUrl = (0, providers_1.getAlchemyUrl)(chain.id, provider.apiKey);
|
|
13
|
+
return (0, viem_1.http)(alchemyUrl);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../accounts/json-rpc/index.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chains_1 = require("viem/chains");
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const index_1 = require("./index");
|
|
6
|
+
(0, vitest_1.describe)('JSON-RPC', () => {
|
|
7
|
+
(0, vitest_1.describe)('createTransport', () => {
|
|
8
|
+
(0, vitest_1.test)('Alchemy', () => {
|
|
9
|
+
const transport = (0, index_1.createTransport)(chains_1.base, {
|
|
10
|
+
type: 'alchemy',
|
|
11
|
+
apiKey: '123',
|
|
12
|
+
});
|
|
13
|
+
(0, vitest_1.expect)(transport).toBeDefined();
|
|
14
|
+
});
|
|
15
|
+
});
|
|
16
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.d.ts","sourceRoot":"","sources":["../../../../accounts/json-rpc/providers.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,iBAAS,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAStE;AAED,OAAO,EAAE,aAAa,EAAE,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getAlchemyUrl = getAlchemyUrl;
|
|
4
|
+
const shared_configs_1 = require("@rhinestone/shared-configs");
|
|
5
|
+
function getAlchemyUrl(chainId, apiKey) {
|
|
6
|
+
const urlTemplate = shared_configs_1.providers.Alchemy.url_template;
|
|
7
|
+
const chainParam = shared_configs_1.providers.Alchemy.chain_mapping[chainId];
|
|
8
|
+
if (!chainParam) {
|
|
9
|
+
throw new Error(`Unsupported chain: ${chainId}`);
|
|
10
|
+
}
|
|
11
|
+
return urlTemplate
|
|
12
|
+
.replace('{{chain_param}}', chainParam)
|
|
13
|
+
.replace('\$\{ALCHEMY_API_KEY\}', apiKey);
|
|
14
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providers.test.d.ts","sourceRoot":"","sources":["../../../../accounts/json-rpc/providers.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const chains_1 = require("viem/chains");
|
|
4
|
+
const vitest_1 = require("vitest");
|
|
5
|
+
const providers_1 = require("./providers");
|
|
6
|
+
(0, vitest_1.describe)('Providers', () => {
|
|
7
|
+
(0, vitest_1.describe)('Alchemy', () => {
|
|
8
|
+
(0, vitest_1.test)('Network', () => {
|
|
9
|
+
const mockApiKey = '123';
|
|
10
|
+
(0, vitest_1.expect)((0, providers_1.getAlchemyUrl)(chains_1.mainnet.id, mockApiKey)).toBe('https://eth-mainnet.g.alchemy.com/v2/123');
|
|
11
|
+
(0, vitest_1.expect)((0, providers_1.getAlchemyUrl)(chains_1.sepolia.id, mockApiKey)).toBe('https://eth-sepolia.g.alchemy.com/v2/123');
|
|
12
|
+
(0, vitest_1.expect)((0, providers_1.getAlchemyUrl)(chains_1.polygon.id, mockApiKey)).toBe('https://polygon-mainnet.g.alchemy.com/v2/123');
|
|
13
|
+
});
|
|
14
|
+
});
|
|
15
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EAIZ,KAAK,GAAG,EAER,KAAK,YAAY,EAIlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAC1E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAchF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAiErD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAalD;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAMvE;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,iEAWlC;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAyClC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAalC;
|
|
1
|
+
{"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EAIZ,KAAK,GAAG,EAER,KAAK,YAAY,EAIlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAC1E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAchF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAiErD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAalD;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAMvE;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,iEAWlC;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAyClC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAalC;AAoGD,OAAO,EACL,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,uBAAuB,GACxB,CAAA"}
|
|
@@ -211,6 +211,7 @@ function getOwners(config) {
|
|
|
211
211
|
const ownerSet = config.owners;
|
|
212
212
|
switch (ownerSet.type) {
|
|
213
213
|
case 'ecdsa':
|
|
214
|
+
case 'ecdsa-v0':
|
|
214
215
|
return ownerSet.accounts.map((account) => account.address);
|
|
215
216
|
case 'passkey':
|
|
216
217
|
return [NO_SAFE_OWNER_ADDRESS];
|
|
@@ -222,6 +223,7 @@ function getThreshold(config) {
|
|
|
222
223
|
const ownerSet = config.owners;
|
|
223
224
|
switch (ownerSet.type) {
|
|
224
225
|
case 'ecdsa':
|
|
226
|
+
case 'ecdsa-v0':
|
|
225
227
|
return ownerSet.threshold ? BigInt(ownerSet.threshold) : 1n;
|
|
226
228
|
case 'passkey':
|
|
227
229
|
return 1n;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACtC,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAG/D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAQtD,iBAAS,0BAA0B,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../accounts/signing/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAA;AACtC,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AACb,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAG/D,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAQtD,iBAAS,0BAA0B,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,CAiD/D;AAED,KAAK,gBAAgB,CAAC,CAAC,IAAI;IACzB,SAAS,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;IACxD,WAAW,EAAE,CACX,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,CAAC,KACN,OAAO,CAAC;QACX,QAAQ,EAAE,YAAY,CAAC,YAAY,CAAA;QACnC,SAAS,EAAE,GAAG,CAAA;KACf,CAAC,CAAA;CACH,CAAA;AAED,iBAAe,uBAAuB,CAAC,CAAC,EACtC,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,EAC5D,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CACR,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,KACN,OAAO,CAAC,GAAG,CAAC,GAChB,OAAO,CAAC,GAAG,CAAC,CA0Cd;AAED,iBAAe,eAAe,CAAC,CAAC,EAC9B,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,EACxC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EACT,QAAQ,EAAE,CACR,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,KACN,OAAO,CAAC,GAAG,CAAC,GAChB,OAAO,CAAC,GAAG,CAAC,CAKd;AAED,iBAAe,iBAAiB,CAAC,CAAC,EAChC,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,WAAW,CAAA;CAAE,EAC1C,MAAM,EAAE,CAAC,EACT,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,GACpC,OAAO,CAAC,GAAG,CAAC,CAOd;AAED,iBAAe,cAAc,CAAC,CAAC,EAC7B,OAAO,EAAE,SAAS,GAAG;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,EACtC,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,EACT,gBAAgB,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACrC,QAAQ,EAAE,CACR,OAAO,EAAE,SAAS,EAClB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,CAAC,KACN,OAAO,CAAC,GAAG,CAAC,GAChB,OAAO,CAAC,GAAG,CAAC,CA2Cd;AAED,OAAO,EACL,0BAA0B,EAC1B,uBAAuB,EACvB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,KAAK,gBAAgB,GACtB,CAAA"}
|
|
@@ -18,6 +18,13 @@ function convertOwnerSetToSignerSet(owners) {
|
|
|
18
18
|
accounts: owners.accounts,
|
|
19
19
|
};
|
|
20
20
|
}
|
|
21
|
+
case 'ecdsa-v0': {
|
|
22
|
+
return {
|
|
23
|
+
type: 'owner',
|
|
24
|
+
kind: 'ecdsa-v0',
|
|
25
|
+
accounts: owners.accounts,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
21
28
|
case 'passkey': {
|
|
22
29
|
return {
|
|
23
30
|
type: 'owner',
|
|
@@ -31,9 +38,10 @@ function convertOwnerSetToSignerSet(owners) {
|
|
|
31
38
|
kind: 'multi-factor',
|
|
32
39
|
validators: owners.validators.map((validator, index) => {
|
|
33
40
|
switch (validator.type) {
|
|
34
|
-
case 'ecdsa':
|
|
41
|
+
case 'ecdsa':
|
|
42
|
+
case 'ecdsa-v0': {
|
|
35
43
|
return {
|
|
36
|
-
type:
|
|
44
|
+
type: validator.type,
|
|
37
45
|
id: index,
|
|
38
46
|
accounts: validator.accounts,
|
|
39
47
|
};
|
|
@@ -98,7 +106,8 @@ async function signWithGuardians(signers, params, signingFunctions) {
|
|
|
98
106
|
}
|
|
99
107
|
async function signWithOwners(signers, chain, address, params, signingFunctions, signMain) {
|
|
100
108
|
switch (signers.kind) {
|
|
101
|
-
case 'ecdsa':
|
|
109
|
+
case 'ecdsa':
|
|
110
|
+
case 'ecdsa-v0': {
|
|
102
111
|
const signatures = await Promise.all(signers.accounts.map((account) => signingFunctions.signEcdsa(account, params)));
|
|
103
112
|
return (0, viem_1.concat)(signatures);
|
|
104
113
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import type { Address,
|
|
2
|
-
import type {
|
|
1
|
+
import type { Address, Client, Hex } from 'viem';
|
|
2
|
+
import type { RhinestoneAccountConfig } from '../types';
|
|
3
|
+
import { createTransport } from './json-rpc';
|
|
3
4
|
type CallType = 'call' | 'delegatecall' | 'batchcall';
|
|
4
5
|
interface ValidatorConfig {
|
|
5
6
|
address: Address;
|
|
@@ -27,7 +28,6 @@ interface GetAccountNonceParams {
|
|
|
27
28
|
declare function encode7579Calls<callType extends CallType>({ mode, callData, }: EncodeCallDataParams<callType>): Hex;
|
|
28
29
|
declare function getAccountNonce(client: Client, args: GetAccountNonceParams): Promise<bigint>;
|
|
29
30
|
declare function getBundlerClient(config: RhinestoneAccountConfig, client: Client): import("viem/account-abstraction").BundlerClient<import("viem").HttpTransport<undefined, false>, undefined, undefined, Client, undefined>;
|
|
30
|
-
declare function createTransport(chain: Chain, provider?: ProviderConfig): Transport;
|
|
31
31
|
export { encode7579Calls, getAccountNonce, getBundlerClient, createTransport };
|
|
32
32
|
export type { ValidatorConfig };
|
|
33
33
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../accounts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,
|
|
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;AAgBhD,OAAO,KAAK,EAGV,uBAAuB,EACxB,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAE5C,KAAK,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAA;AAErD,UAAU,eAAe;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,MAAM,EAAE,OAAO,CAAA;CAChB;AAED,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;AAkDD,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,6IA2CxE;AAyBD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,eAAe,EAAE,CAAA;AAC9E,YAAY,EAAE,eAAe,EAAE,CAAA"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createTransport = void 0;
|
|
3
4
|
exports.encode7579Calls = encode7579Calls;
|
|
4
5
|
exports.getAccountNonce = getAccountNonce;
|
|
5
6
|
exports.getBundlerClient = getBundlerClient;
|
|
6
|
-
exports.createTransport = createTransport;
|
|
7
7
|
const viem_1 = require("viem");
|
|
8
8
|
const account_abstraction_1 = require("viem/account-abstraction");
|
|
9
9
|
const actions_1 = require("viem/actions");
|
|
10
|
-
const chains_1 = require("viem/chains");
|
|
11
10
|
const utils_1 = require("viem/utils");
|
|
11
|
+
const json_rpc_1 = require("./json-rpc");
|
|
12
|
+
Object.defineProperty(exports, "createTransport", { enumerable: true, get: function () { return json_rpc_1.createTransport; } });
|
|
12
13
|
function parseCallType(callType) {
|
|
13
14
|
switch (callType) {
|
|
14
15
|
case 'call':
|
|
@@ -198,41 +199,3 @@ async function getGasPriceEstimate(bundlerUrl) {
|
|
|
198
199
|
maxPriorityFeePerGas: BigInt(json.result.fast.maxPriorityFeePerGas),
|
|
199
200
|
};
|
|
200
201
|
}
|
|
201
|
-
function createTransport(chain, provider) {
|
|
202
|
-
if (!provider) {
|
|
203
|
-
return (0, viem_1.http)();
|
|
204
|
-
}
|
|
205
|
-
switch (provider.type) {
|
|
206
|
-
case 'alchemy': {
|
|
207
|
-
const alchemyNetwork = getAlchemyNetworkName(chain.id);
|
|
208
|
-
const jsonRpcEndpoint = `https://${alchemyNetwork}.g.alchemy.com/v2/${provider.apiKey}`;
|
|
209
|
-
return (0, viem_1.http)(jsonRpcEndpoint);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
}
|
|
213
|
-
function getAlchemyNetworkName(chainId) {
|
|
214
|
-
switch (chainId) {
|
|
215
|
-
case chains_1.mainnet.id:
|
|
216
|
-
return 'eth-mainnet';
|
|
217
|
-
case chains_1.sepolia.id:
|
|
218
|
-
return 'eth-sepolia';
|
|
219
|
-
case chains_1.polygon.id:
|
|
220
|
-
return 'polygon-mainnet';
|
|
221
|
-
case chains_1.optimism.id:
|
|
222
|
-
return 'opt-mainnet';
|
|
223
|
-
case chains_1.optimismSepolia.id:
|
|
224
|
-
return 'opt-sepolia';
|
|
225
|
-
case chains_1.arbitrum.id:
|
|
226
|
-
return 'arb-mainnet';
|
|
227
|
-
case chains_1.arbitrumSepolia.id:
|
|
228
|
-
return 'arb-sepolia';
|
|
229
|
-
case chains_1.base.id:
|
|
230
|
-
return 'base-mainnet';
|
|
231
|
-
case chains_1.baseSepolia.id:
|
|
232
|
-
return 'base-sepolia';
|
|
233
|
-
case chains_1.zksync.id:
|
|
234
|
-
return 'zksync-mainnet';
|
|
235
|
-
case chains_1.soneium.id:
|
|
236
|
-
return 'soneium-mainnet';
|
|
237
|
-
}
|
|
238
|
-
}
|
|
@@ -109,7 +109,7 @@ declare function changePasskeyThreshold(newThreshold: number): Call;
|
|
|
109
109
|
* @param provider Provider to use for the recovery
|
|
110
110
|
* @returns Calls to recover ownership
|
|
111
111
|
*/
|
|
112
|
-
declare function recoverEcdsaOwnership(address: Address, newOwners: OwnableValidatorConfig, chain: Chain, provider?: ProviderConfig): Promise<Call[]>;
|
|
112
|
+
declare function recoverEcdsaOwnership(address: Address, newOwners: OwnableValidatorConfig, chain: Chain, provider?: ProviderConfig, validatorAddress?: Address): Promise<Call[]>;
|
|
113
113
|
/**
|
|
114
114
|
* Recover an account's ownership (Passkey)
|
|
115
115
|
* @param address Account address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EAGV,KAAK,GAAG,EAGT,MAAM,MAAM,CAAA;AAEb,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAA;AAM3C,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/index.ts"],"names":[],"mappings":"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"}
|