@rhinestone/sdk 2.0.0-beta.4 → 2.0.0-beta.41
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 +2 -9
- package/dist/src/accounts/error.d.ts.map +1 -1
- package/dist/src/accounts/error.js +5 -11
- package/dist/src/accounts/hca.d.ts +25 -0
- package/dist/src/accounts/hca.d.ts.map +1 -0
- package/dist/src/accounts/hca.js +148 -0
- package/dist/src/accounts/index.d.ts +23 -10
- package/dist/src/accounts/index.d.ts.map +1 -1
- package/dist/src/accounts/index.js +170 -79
- package/dist/src/accounts/kernel.d.ts +1 -2
- package/dist/src/accounts/kernel.d.ts.map +1 -1
- package/dist/src/accounts/kernel.js +1 -8
- package/dist/src/accounts/nexus.d.ts +3 -2
- package/dist/src/accounts/nexus.d.ts.map +1 -1
- package/dist/src/accounts/nexus.js +33 -8
- package/dist/src/accounts/safe.d.ts +1 -2
- package/dist/src/accounts/safe.d.ts.map +1 -1
- package/dist/src/accounts/safe.js +3 -9
- package/dist/src/accounts/signing/common.d.ts +10 -4
- package/dist/src/accounts/signing/common.d.ts.map +1 -1
- package/dist/src/accounts/signing/common.js +48 -46
- package/dist/src/accounts/signing/message.d.ts.map +1 -1
- package/dist/src/accounts/signing/message.js +1 -4
- package/dist/src/accounts/signing/typedData.d.ts.map +1 -1
- package/dist/src/accounts/signing/typedData.js +1 -4
- package/dist/src/accounts/startale.d.ts +1 -2
- package/dist/src/accounts/startale.d.ts.map +1 -1
- package/dist/src/accounts/startale.js +6 -9
- package/dist/src/actions/ecdsa.js +5 -5
- package/dist/src/actions/index.js +2 -2
- package/dist/src/actions/mfa.js +2 -2
- package/dist/src/actions/passkeys.js +2 -2
- package/dist/src/actions/smart-sessions.d.ts +29 -5
- package/dist/src/actions/smart-sessions.d.ts.map +1 -1
- package/dist/src/actions/smart-sessions.js +38 -10
- package/dist/src/errors/index.d.ts +6 -4
- package/dist/src/errors/index.d.ts.map +1 -1
- package/dist/src/errors/index.js +6 -6
- package/dist/src/execution/error.d.ts +42 -11
- package/dist/src/execution/error.d.ts.map +1 -1
- package/dist/src/execution/error.js +53 -15
- package/dist/src/execution/index.d.ts +18 -18
- package/dist/src/execution/index.d.ts.map +1 -1
- package/dist/src/execution/index.js +27 -42
- package/dist/src/execution/utils.d.ts +55 -14
- package/dist/src/execution/utils.d.ts.map +1 -1
- package/dist/src/execution/utils.js +629 -82
- package/dist/src/index.d.ts +270 -38
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +89 -116
- package/dist/src/jwt-server/jcs.d.ts +1 -1
- package/dist/src/jwt-server/jcs.js +4 -2
- package/dist/src/modules/index.d.ts.map +1 -1
- package/dist/src/modules/index.js +0 -5
- package/dist/src/modules/read.d.ts +3 -2
- package/dist/src/modules/read.d.ts.map +1 -1
- package/dist/src/modules/read.js +52 -4
- package/dist/src/modules/validators/core.d.ts +6 -6
- package/dist/src/modules/validators/core.d.ts.map +1 -1
- package/dist/src/modules/validators/core.js +42 -39
- package/dist/src/modules/validators/cross-chain-permits.d.ts +21 -0
- package/dist/src/modules/validators/cross-chain-permits.d.ts.map +1 -0
- package/dist/src/modules/validators/cross-chain-permits.js +111 -0
- package/dist/src/modules/validators/permissions.d.ts +1 -0
- package/dist/src/modules/validators/permissions.d.ts.map +1 -1
- package/dist/src/modules/validators/permissions.js +192 -18
- package/dist/src/modules/validators/policies/claim/arbiters.d.ts +22 -0
- package/dist/src/modules/validators/policies/claim/arbiters.d.ts.map +1 -0
- package/dist/src/modules/validators/policies/claim/arbiters.js +57 -0
- package/dist/src/modules/validators/smart-sessions.d.ts +38 -9
- package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
- package/dist/src/modules/validators/smart-sessions.js +509 -92
- package/dist/src/orchestrator/caip2.d.ts +16 -3
- package/dist/src/orchestrator/caip2.d.ts.map +1 -1
- package/dist/src/orchestrator/caip2.js +38 -6
- package/dist/src/orchestrator/client.d.ts +2 -1
- package/dist/src/orchestrator/client.d.ts.map +1 -1
- package/dist/src/orchestrator/client.js +50 -24
- package/dist/src/orchestrator/consts.d.ts +1 -1
- package/dist/src/orchestrator/consts.d.ts.map +1 -1
- package/dist/src/orchestrator/consts.js +1 -1
- package/dist/src/orchestrator/destinations.d.ts +24 -0
- package/dist/src/orchestrator/destinations.d.ts.map +1 -0
- package/dist/src/orchestrator/destinations.js +59 -0
- package/dist/src/orchestrator/error.d.ts +95 -5
- package/dist/src/orchestrator/error.d.ts.map +1 -1
- package/dist/src/orchestrator/error.js +260 -4
- package/dist/src/orchestrator/index.d.ts +7 -5
- package/dist/src/orchestrator/index.d.ts.map +1 -1
- package/dist/src/orchestrator/index.js +4 -3
- package/dist/src/orchestrator/registry.d.ts +2 -1
- package/dist/src/orchestrator/registry.d.ts.map +1 -1
- package/dist/src/orchestrator/registry.js +13 -0
- package/dist/src/orchestrator/types.d.ts +92 -29
- package/dist/src/orchestrator/types.d.ts.map +1 -1
- package/dist/src/orchestrator/types.js +1 -5
- package/dist/src/orchestrator/wire.d.ts +30 -0
- package/dist/src/orchestrator/wire.d.ts.map +1 -0
- package/dist/src/orchestrator/wire.gen.d.ts +4290 -0
- package/dist/src/orchestrator/wire.gen.d.ts.map +1 -0
- package/dist/src/orchestrator/wire.gen.js +1 -0
- package/dist/src/orchestrator/wire.js +1 -0
- package/dist/src/smart-sessions/index.d.ts +6 -0
- package/dist/src/smart-sessions/index.d.ts.map +1 -0
- package/dist/src/smart-sessions/index.js +7 -0
- package/dist/src/types.d.ts +299 -31
- package/dist/src/types.d.ts.map +1 -1
- package/dist/src/utils/index.d.ts +59 -0
- package/dist/src/utils/index.d.ts.map +1 -1
- package/dist/src/utils/index.js +59 -0
- package/package.json +5 -9
- package/dist/src/actions/recovery.d.ts +0 -33
- package/dist/src/actions/recovery.d.ts.map +0 -1
- package/dist/src/actions/recovery.js +0 -189
|
@@ -22,13 +22,6 @@ declare class Eip7702AccountMustHaveEoaError extends AccountError {
|
|
|
22
22
|
traceId?: string;
|
|
23
23
|
});
|
|
24
24
|
}
|
|
25
|
-
declare class ExistingEip7702AccountsNotSupportedError extends AccountError {
|
|
26
|
-
constructor(params?: {
|
|
27
|
-
context?: any;
|
|
28
|
-
errorType?: string;
|
|
29
|
-
traceId?: string;
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
25
|
declare class EoaAccountMustHaveAccountError extends AccountError {
|
|
33
26
|
constructor(params?: {
|
|
34
27
|
context?: any;
|
|
@@ -43,7 +36,7 @@ declare class FactoryArgsNotAvailableError extends AccountError {
|
|
|
43
36
|
traceId?: string;
|
|
44
37
|
});
|
|
45
38
|
}
|
|
46
|
-
declare class
|
|
39
|
+
declare class DefaultValidatorAlreadyInitializedError extends AccountError {
|
|
47
40
|
constructor(params?: {
|
|
48
41
|
context?: any;
|
|
49
42
|
errorType?: string;
|
|
@@ -110,5 +103,5 @@ declare class Eip712DomainNotAvailableError extends AccountError {
|
|
|
110
103
|
constructor(message: string);
|
|
111
104
|
}
|
|
112
105
|
declare function isAccountError(error: Error): error is AccountError;
|
|
113
|
-
export { isAccountError, AccountError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError,
|
|
106
|
+
export { isAccountError, AccountError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, EoaAccountMustHaveAccountError, FactoryArgsNotAvailableError, DefaultValidatorAlreadyInitializedError, SigningNotSupportedForAccountError, Eip7702NotSupportedForAccountError, AccountConfigurationNotSupportedError, WalletClientNoConnectedAccountError, ModuleInstallationNotSupportedError, EoaSigningNotSupportedError, EoaSigningMethodNotConfiguredError, OwnersFieldRequiredError, };
|
|
114
107
|
//# sourceMappingURL=error.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../accounts/error.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,cAAM,YAAa,SAAQ,KAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;IACjC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAQ;IACnC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAQ;gBAErB,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;IAQD,IAAI,OAAO,WAEV;IAED,IAAI,OAAO,QAEV;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,OAAO,WAEV;CACF;AAED,cAAM,8BAA+B,SAAQ,YAAY;gBAC3C,MAAM,CAAC,EAAE;QACnB,OAAO,CAAC,EAAE,GAAG,CAAA;QACb,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,OAAO,CAAC,EAAE,MAAM,CAAA;KACjB;CAMF;AAED,cAAM,
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../accounts/error.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,14 +31,6 @@ class Eip7702AccountMustHaveEoaError extends AccountError {
|
|
|
31
31
|
});
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
|
-
class ExistingEip7702AccountsNotSupportedError extends AccountError {
|
|
35
|
-
constructor(params) {
|
|
36
|
-
super({
|
|
37
|
-
message: 'Existing EIP-7702 accounts are not yet supported',
|
|
38
|
-
...params,
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
34
|
class EoaAccountMustHaveAccountError extends AccountError {
|
|
43
35
|
constructor(params) {
|
|
44
36
|
super({
|
|
@@ -55,10 +47,10 @@ class FactoryArgsNotAvailableError extends AccountError {
|
|
|
55
47
|
});
|
|
56
48
|
}
|
|
57
49
|
}
|
|
58
|
-
class
|
|
50
|
+
class DefaultValidatorAlreadyInitializedError extends AccountError {
|
|
59
51
|
constructor(params) {
|
|
60
52
|
super({
|
|
61
|
-
message: '
|
|
53
|
+
message: 'ECDSA is already enabled on this account. Use `addOwner` / `removeOwner` / `changeThreshold` to manage owners instead of `enable`.',
|
|
62
54
|
...params,
|
|
63
55
|
});
|
|
64
56
|
}
|
|
@@ -149,8 +141,10 @@ function getAccountName(account) {
|
|
|
149
141
|
return 'Nexus';
|
|
150
142
|
case 'startale':
|
|
151
143
|
return 'Startale';
|
|
144
|
+
case 'hca':
|
|
145
|
+
return 'HCA';
|
|
152
146
|
case 'eoa':
|
|
153
147
|
return 'EOA';
|
|
154
148
|
}
|
|
155
149
|
}
|
|
156
|
-
export { isAccountError, AccountError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError,
|
|
150
|
+
export { isAccountError, AccountError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, EoaAccountMustHaveAccountError, FactoryArgsNotAvailableError, DefaultValidatorAlreadyInitializedError, SigningNotSupportedForAccountError, Eip7702NotSupportedForAccountError, AccountConfigurationNotSupportedError, WalletClientNoConnectedAccountError, ModuleInstallationNotSupportedError, EoaSigningNotSupportedError, EoaSigningMethodNotConfiguredError, OwnersFieldRequiredError, };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Address, Chain, Hex, PublicClient } from 'viem';
|
|
2
|
+
import type { Module } from '../modules/common.js';
|
|
3
|
+
import { ENS_HCA_MODULE } from '../modules/validators/core.js';
|
|
4
|
+
import type { OwnerSet, RhinestoneAccountConfig } from '../types.js';
|
|
5
|
+
import type { ValidatorConfig } from './utils.js';
|
|
6
|
+
declare function getDeployArgs(config: RhinestoneAccountConfig): {
|
|
7
|
+
factory: `0x${string}`;
|
|
8
|
+
factoryData: `0x${string}`;
|
|
9
|
+
salt: "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
10
|
+
implementation: `0x${string}`;
|
|
11
|
+
initializationCallData: `0x${string}`;
|
|
12
|
+
} | null;
|
|
13
|
+
declare function getAddress(config: RhinestoneAccountConfig): `0x${string}`;
|
|
14
|
+
declare function getEip712Domain(config: RhinestoneAccountConfig, chain: Chain): {
|
|
15
|
+
name: string;
|
|
16
|
+
version: string;
|
|
17
|
+
chainId: number;
|
|
18
|
+
verifyingContract: `0x${string}`;
|
|
19
|
+
salt: "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
20
|
+
};
|
|
21
|
+
declare function getInstallData(module: Module): `0x${string}`;
|
|
22
|
+
declare function packSignature(signature: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex): Promise<`0x${string}`>;
|
|
23
|
+
declare function getSmartAccount(client: PublicClient, address: Address, owners: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<import("viem/_types/account-abstraction").SmartAccount<import("viem/_types/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">>>;
|
|
24
|
+
export { ENS_HCA_MODULE, getEip712Domain, getInstallData, getAddress, packSignature, getDeployArgs, getSmartAccount, };
|
|
25
|
+
//# sourceMappingURL=hca.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hca.d.ts","sourceRoot":"","sources":["../../../accounts/hca.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAa7D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,EAAE,cAAc,EAAqB,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAUjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAc9C,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;SAsFrD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAalD;AAmDD,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK;;;;;;EAarE;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBAErC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAQvE;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,oKAUlC;AAED,OAAO,EACL,cAAc,EACd,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,GAChB,CAAA"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { concat, decodeAbiParameters, decodeFunctionData, encodeFunctionData, encodePacked, keccak256, pad, parseAbi, slice, zeroHash, } from 'viem';
|
|
2
|
+
import { ENS_HCA_MODULE, getOwnerValidator } from '../modules/validators/core.js';
|
|
3
|
+
import { AccountConfigurationNotSupportedError, Eip712DomainNotAvailableError, } from './error.js';
|
|
4
|
+
import { getInstallData as getNexusInstallData, getSmartAccount as getNexusSmartAccount, packSignature as packNexusSignature, } from './nexus.js';
|
|
5
|
+
const HCA_IMPLEMENTATION_ADDRESS = '0x7c2cC1e499a87ab480Df154e05164cD56D05d570';
|
|
6
|
+
const HCA_FACTORY_ADDRESS = '0x358680728dedb552adaa9f5eb5d4395b291cf943';
|
|
7
|
+
// HCA inherits Nexus's EIP-712 domain (verified on-chain via eip712Domain()).
|
|
8
|
+
const HCA_VERSION = '1.2.0';
|
|
9
|
+
// Solady CREATE3 proxy bytecode hash
|
|
10
|
+
const CREATE3_PROXY_HASH = '0x21c35dbe1b344a2488cf3321d6ce542f8e9f305544ff09e4993a62319a497c1f';
|
|
11
|
+
function getDeployArgs(config) {
|
|
12
|
+
// HCA accounts are locked to their initial configuration and block module
|
|
13
|
+
// installation, so sessions and extra modules can never be installed.
|
|
14
|
+
// Reject them on every path (including externally-provided initData)
|
|
15
|
+
// rather than silently dropping them.
|
|
16
|
+
if (config.experimental_sessions?.enabled ||
|
|
17
|
+
(config.modules && config.modules.length > 0)) {
|
|
18
|
+
throw new AccountConfigurationNotSupportedError('HCA accounts cannot install sessions or additional modules', 'hca');
|
|
19
|
+
}
|
|
20
|
+
if (config.owners && config.owners.type !== 'ens') {
|
|
21
|
+
throw new AccountConfigurationNotSupportedError('HCA accounts require ENS owners', 'hca');
|
|
22
|
+
}
|
|
23
|
+
const factory = config.account?.type === 'hca' && config.account.factory
|
|
24
|
+
? config.account.factory
|
|
25
|
+
: HCA_FACTORY_ADDRESS;
|
|
26
|
+
if (config.initData) {
|
|
27
|
+
if (!('factory' in config.initData)) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
const { factory, factoryData } = config.initData;
|
|
31
|
+
try {
|
|
32
|
+
const decoded = decodeFunctionData({
|
|
33
|
+
abi: parseAbi(['function createAccount(bytes)']),
|
|
34
|
+
data: factoryData,
|
|
35
|
+
});
|
|
36
|
+
const moduleInitData = decoded.args[0];
|
|
37
|
+
const initializationCallData = encodeFunctionData({
|
|
38
|
+
abi: parseAbi(['function initializeAccount(bytes)']),
|
|
39
|
+
functionName: 'initializeAccount',
|
|
40
|
+
args: [moduleInitData],
|
|
41
|
+
});
|
|
42
|
+
return {
|
|
43
|
+
factory,
|
|
44
|
+
factoryData,
|
|
45
|
+
salt: zeroHash,
|
|
46
|
+
implementation: HCA_IMPLEMENTATION_ADDRESS,
|
|
47
|
+
initializationCallData,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (!config.owners) {
|
|
55
|
+
throw new AccountConfigurationNotSupportedError('HCA accounts require ENS owners', 'hca');
|
|
56
|
+
}
|
|
57
|
+
const ownerValidator = getOwnerValidator(config);
|
|
58
|
+
const moduleInitData = ownerValidator.initData;
|
|
59
|
+
// Factory takes module initData directly: abi.encode(threshold, owners[])
|
|
60
|
+
// It internally calls module.getOwnerFromInitData(initData) to derive the CREATE3 salt,
|
|
61
|
+
// then deploys the proxy with the stored implementation
|
|
62
|
+
const factoryData = encodeFunctionData({
|
|
63
|
+
abi: parseAbi(['function createAccount(bytes)']),
|
|
64
|
+
functionName: 'createAccount',
|
|
65
|
+
args: [moduleInitData],
|
|
66
|
+
});
|
|
67
|
+
const initializationCallData = encodeFunctionData({
|
|
68
|
+
abi: parseAbi(['function initializeAccount(bytes)']),
|
|
69
|
+
functionName: 'initializeAccount',
|
|
70
|
+
args: [moduleInitData],
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
factory,
|
|
74
|
+
factoryData,
|
|
75
|
+
salt: zeroHash,
|
|
76
|
+
implementation: HCA_IMPLEMENTATION_ADDRESS,
|
|
77
|
+
initializationCallData,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
function getAddress(config) {
|
|
81
|
+
const deployArgs = getDeployArgs(config);
|
|
82
|
+
if (!deployArgs) {
|
|
83
|
+
if (config.initData?.address) {
|
|
84
|
+
return config.initData.address;
|
|
85
|
+
}
|
|
86
|
+
throw new Error('Cannot derive address: deploy args not available');
|
|
87
|
+
}
|
|
88
|
+
// Always derive deterministically from the factory data so a mismatched
|
|
89
|
+
// initData.address is caught by checkAddress instead of being trusted.
|
|
90
|
+
const primaryOwner = getPrimaryOwnerFromFactoryData(deployArgs.factoryData);
|
|
91
|
+
return predictCreate3Address(deployArgs.factory, primaryOwner);
|
|
92
|
+
}
|
|
93
|
+
// The factory derives the CREATE3 salt from getOwnerFromInitData(initData),
|
|
94
|
+
// which returns owners[0] of the validator init data. getOwnerValidator sorts
|
|
95
|
+
// owners by lowercased address, so owners[0] is the salt owner the factory uses.
|
|
96
|
+
function getPrimaryOwnerFromFactoryData(factoryData) {
|
|
97
|
+
const { args } = decodeFunctionData({
|
|
98
|
+
abi: parseAbi(['function createAccount(bytes)']),
|
|
99
|
+
data: factoryData,
|
|
100
|
+
});
|
|
101
|
+
const [, owners] = decodeAbiParameters([
|
|
102
|
+
{ type: 'uint256' },
|
|
103
|
+
{
|
|
104
|
+
type: 'tuple[]',
|
|
105
|
+
components: [
|
|
106
|
+
{ name: 'addr', type: 'address' },
|
|
107
|
+
{ name: 'expiration', type: 'uint48' },
|
|
108
|
+
],
|
|
109
|
+
},
|
|
110
|
+
], args[0]);
|
|
111
|
+
return owners[0].addr;
|
|
112
|
+
}
|
|
113
|
+
// Solady CREATE3 address derivation:
|
|
114
|
+
// 1. salt = bytes32(bytes20(primaryOwner)) — right-padded
|
|
115
|
+
// 2. proxy = CREATE2(factory, salt, CREATE3_PROXY_HASH)
|
|
116
|
+
// 3. account = CREATE(proxy, nonce=1) = keccak256(0xd694 ++ proxy ++ 0x01)
|
|
117
|
+
function predictCreate3Address(factory, primaryOwner) {
|
|
118
|
+
// salt = bytes32(bytes20(owner)) — address right-padded to 32 bytes
|
|
119
|
+
const salt = pad(primaryOwner, { size: 32, dir: 'right' });
|
|
120
|
+
// CREATE2: proxy address
|
|
121
|
+
const proxyHash = keccak256(encodePacked(['bytes1', 'address', 'bytes32', 'bytes32'], ['0xff', factory, salt, CREATE3_PROXY_HASH]));
|
|
122
|
+
const proxyAddress = slice(proxyHash, 12, 32);
|
|
123
|
+
// CREATE with nonce 1: RLP([proxy, 1]) = 0xd694 ++ proxy ++ 0x01
|
|
124
|
+
const accountHash = keccak256(concat(['0xd694', proxyAddress, '0x01']));
|
|
125
|
+
return slice(accountHash, 12, 32);
|
|
126
|
+
}
|
|
127
|
+
function getEip712Domain(config, chain) {
|
|
128
|
+
if (config.initData) {
|
|
129
|
+
throw new Eip712DomainNotAvailableError('Existing HCA accounts are not yet supported');
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
name: 'Nexus',
|
|
133
|
+
version: HCA_VERSION,
|
|
134
|
+
chainId: chain.id,
|
|
135
|
+
verifyingContract: getAddress(config),
|
|
136
|
+
salt: zeroHash,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
function getInstallData(module) {
|
|
140
|
+
return getNexusInstallData(module);
|
|
141
|
+
}
|
|
142
|
+
async function packSignature(signature, validator, transformSignature = (signature) => signature) {
|
|
143
|
+
return packNexusSignature(signature, validator, transformSignature, ENS_HCA_MODULE);
|
|
144
|
+
}
|
|
145
|
+
async function getSmartAccount(client, address, owners, validatorAddress, sign) {
|
|
146
|
+
return getNexusSmartAccount(client, address, owners, validatorAddress, sign, ENS_HCA_MODULE);
|
|
147
|
+
}
|
|
148
|
+
export { ENS_HCA_MODULE, getEip712Domain, getInstallData, getAddress, packSignature, getDeployArgs, getSmartAccount, };
|
|
@@ -1,18 +1,19 @@
|
|
|
1
|
-
import { type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type TypedData } from 'viem';
|
|
2
|
-
import type {
|
|
1
|
+
import { type Account, type Address, type Chain, type HashTypedDataParameters, type Hex, type PublicClient, type TypedData } from 'viem';
|
|
2
|
+
import type { WebAuthnAccount } from 'viem/account-abstraction';
|
|
3
|
+
import { type Module } from '../modules/common.js';
|
|
3
4
|
import type { ResolvedSessionSignerSet } from '../modules/validators/smart-sessions.js';
|
|
4
|
-
import type { AccountProviderConfig, Call,
|
|
5
|
-
import { AccountConfigurationNotSupportedError, AccountError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError,
|
|
5
|
+
import type { AccountProviderConfig, Call, RhinestoneConfig, SignerSet } from '../types.js';
|
|
6
|
+
import { AccountConfigurationNotSupportedError, AccountError, DefaultValidatorAlreadyInitializedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, FactoryArgsNotAvailableError, isAccountError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, WalletClientNoConnectedAccountError } from './error.js';
|
|
6
7
|
import { type ValidatorConfig } from './utils.js';
|
|
7
8
|
type InternalSignerSet = SignerSet | ResolvedSessionSignerSet;
|
|
8
9
|
declare function getInitCode(config: RhinestoneConfig): {
|
|
9
|
-
address:
|
|
10
|
+
address: Address;
|
|
10
11
|
} | {
|
|
11
12
|
factory: `0x${string}`;
|
|
12
13
|
factoryData: `0x${string}`;
|
|
13
14
|
} | undefined;
|
|
14
15
|
declare function getV0InitCode(config: RhinestoneConfig): {
|
|
15
|
-
address:
|
|
16
|
+
address: Address;
|
|
16
17
|
} | {
|
|
17
18
|
factory: `0x${string}`;
|
|
18
19
|
factoryData: `0x${string}`;
|
|
@@ -30,12 +31,25 @@ declare function getEip712Domain(config: RhinestoneConfig, chain: Chain): {
|
|
|
30
31
|
salt: "0x0000000000000000000000000000000000000000000000000000000000000000";
|
|
31
32
|
};
|
|
32
33
|
declare function getModuleInstallationCalls(config: RhinestoneConfig, module: Module): Call[];
|
|
33
|
-
declare function
|
|
34
|
+
declare function getValidatorInstallationCalls(config: RhinestoneConfig, chain: Chain, module: Module): Promise<Call[]>;
|
|
35
|
+
declare function getModuleUninstallationCalls(config: RhinestoneConfig, chain: Chain, module: Module): Promise<Call[]>;
|
|
34
36
|
declare function getAddress(config: RhinestoneConfig): `0x${string}`;
|
|
35
37
|
declare function checkAddress(config: RhinestoneConfig): boolean;
|
|
38
|
+
declare function packAccountSignature(config: RhinestoneConfig, signature: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
|
|
36
39
|
declare function getEip1271Signature(config: RhinestoneConfig, signers: InternalSignerSet | undefined, chain: Chain, validator: ValidatorConfig, hash: Hex, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
|
|
37
40
|
declare function getEmissarySignature(config: RhinestoneConfig, signers: InternalSignerSet | undefined, chain: Chain, hash: Hex, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
|
|
38
41
|
declare function getTypedDataPackedSignature<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(config: RhinestoneConfig, signers: InternalSignerSet | undefined, chain: Chain, validator: ValidatorConfig, parameters: HashTypedDataParameters<typedData, primaryType>, transformSignature?: (signature: Hex) => Hex): Promise<Hex>;
|
|
42
|
+
declare function getOwnerEcdsaSignature<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(config: RhinestoneConfig, chain: Chain, parameters: HashTypedDataParameters<typedData, primaryType>, owner: Account, module: Address | undefined, validatorSupportsEip712: boolean): Promise<Hex>;
|
|
43
|
+
declare function getOwnerPasskeySignature<typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(config: RhinestoneConfig, parameters: HashTypedDataParameters<typedData, primaryType>, owner: WebAuthnAccount, validatorSupportsEip712: boolean): Promise<{
|
|
44
|
+
webauthn: {
|
|
45
|
+
authenticatorData: Hex;
|
|
46
|
+
clientDataJSON: string;
|
|
47
|
+
challengeIndex?: number | undefined;
|
|
48
|
+
typeIndex?: number | undefined;
|
|
49
|
+
userVerificationRequired?: boolean | undefined;
|
|
50
|
+
};
|
|
51
|
+
signature: Hex;
|
|
52
|
+
}>;
|
|
39
53
|
declare function isDeployed(config: RhinestoneConfig, chain: Chain): Promise<boolean>;
|
|
40
54
|
declare function deploy(config: RhinestoneConfig, chain: Chain, params?: {
|
|
41
55
|
sponsored?: boolean;
|
|
@@ -43,9 +57,8 @@ declare function deploy(config: RhinestoneConfig, chain: Chain, params?: {
|
|
|
43
57
|
}): Promise<boolean>;
|
|
44
58
|
declare function setup(config: RhinestoneConfig, chain: Chain): Promise<boolean>;
|
|
45
59
|
declare function toErc6492Signature(config: RhinestoneConfig, signature: Hex, chain: Chain): Promise<Hex>;
|
|
46
|
-
declare function getSmartAccount(config: RhinestoneConfig, client: PublicClient, chain: Chain): Promise<import("viem/
|
|
47
|
-
declare function getGuardianSmartAccount(config: RhinestoneConfig, 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>;
|
|
60
|
+
declare function getSmartAccount(config: RhinestoneConfig, client: PublicClient, chain: Chain): Promise<import("viem/account-abstraction").SmartAccount<import("viem/account-abstraction").SmartAccountImplementation<import("viem").Abi, "0.7">> | undefined>;
|
|
48
61
|
declare function is7702(config: RhinestoneConfig): boolean;
|
|
49
62
|
declare function getAccountProvider(config: RhinestoneConfig): AccountProviderConfig;
|
|
50
|
-
export { getEip712Domain, getModuleInstallationCalls, getModuleUninstallationCalls, getAddress, checkAddress, getAccountProvider, getInitCode, getV0InitCode, signEip7702InitData, getEip7702InitCall, is7702, isDeployed, deploy, setup, toErc6492Signature, getSmartAccount,
|
|
63
|
+
export { getEip712Domain, getModuleInstallationCalls, getValidatorInstallationCalls, getModuleUninstallationCalls, getAddress, checkAddress, getAccountProvider, getInitCode, getV0InitCode, signEip7702InitData, getEip7702InitCall, is7702, isDeployed, deploy, setup, toErc6492Signature, getSmartAccount, getEip1271Signature, getEmissarySignature, getOwnerEcdsaSignature, getOwnerPasskeySignature, getTypedDataPackedSignature, packAccountSignature, isAccountError, AccountError, AccountConfigurationNotSupportedError, DefaultValidatorAlreadyInitializedError, Eip712DomainNotAvailableError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, EoaAccountMustHaveAccountError, EoaSigningMethodNotConfiguredError, EoaSigningNotSupportedError, FactoryArgsNotAvailableError, ModuleInstallationNotSupportedError, OwnersFieldRequiredError, SigningNotSupportedForAccountError, WalletClientNoConnectedAccountError, };
|
|
51
64
|
//# 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,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../accounts/index.ts"],"names":[],"mappings":"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"}
|