@rhinestone/sdk 1.0.0-alpha.9 → 1.0.0-beta.38

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/dist/src/accounts/error.d.ts +38 -3
  2. package/dist/src/accounts/error.d.ts.map +1 -1
  3. package/dist/src/accounts/error.js +55 -7
  4. package/dist/src/accounts/index.d.ts +30 -15
  5. package/dist/src/accounts/index.d.ts.map +1 -1
  6. package/dist/src/accounts/index.js +284 -140
  7. package/dist/src/accounts/index.test.js +3 -5
  8. package/dist/src/accounts/json-rpc/index.d.ts +5 -0
  9. package/dist/src/accounts/json-rpc/index.d.ts.map +1 -0
  10. package/dist/src/accounts/json-rpc/index.js +16 -0
  11. package/dist/src/accounts/json-rpc/index.test.d.ts.map +1 -0
  12. package/dist/src/accounts/json-rpc/index.test.js +16 -0
  13. package/dist/src/accounts/json-rpc/providers.d.ts +4 -0
  14. package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -0
  15. package/dist/src/accounts/json-rpc/providers.js +14 -0
  16. package/dist/src/accounts/json-rpc/providers.test.d.ts +2 -0
  17. package/dist/src/accounts/json-rpc/providers.test.d.ts.map +1 -0
  18. package/dist/src/accounts/json-rpc/providers.test.js +15 -0
  19. package/dist/src/accounts/kernel.d.ts +4 -3
  20. package/dist/src/accounts/kernel.d.ts.map +1 -1
  21. package/dist/src/accounts/kernel.js +32 -6
  22. package/dist/src/accounts/kernel.test.js +41 -19
  23. package/dist/src/accounts/nexus.d.ts +11 -4
  24. package/dist/src/accounts/nexus.d.ts.map +1 -1
  25. package/dist/src/accounts/nexus.js +182 -25
  26. package/dist/src/accounts/nexus.test.js +44 -18
  27. package/dist/src/accounts/safe.d.ts +2 -2
  28. package/dist/src/accounts/safe.d.ts.map +1 -1
  29. package/dist/src/accounts/safe.js +88 -58
  30. package/dist/src/accounts/safe.test.js +40 -14
  31. package/dist/src/accounts/signing/common.d.ts +27 -0
  32. package/dist/src/accounts/signing/common.d.ts.map +1 -0
  33. package/dist/src/accounts/signing/common.js +145 -0
  34. package/dist/src/accounts/signing/message.d.ts +5 -0
  35. package/dist/src/accounts/signing/message.d.ts.map +1 -0
  36. package/dist/src/accounts/signing/message.js +47 -0
  37. package/dist/src/accounts/signing/passkeys.d.ts +36 -0
  38. package/dist/src/accounts/signing/passkeys.d.ts.map +1 -0
  39. package/dist/src/accounts/signing/passkeys.js +125 -0
  40. package/dist/src/accounts/signing/passkeys.test.d.ts +2 -0
  41. package/dist/src/accounts/signing/passkeys.test.d.ts.map +1 -0
  42. package/dist/src/accounts/signing/passkeys.test.js +88 -0
  43. package/dist/src/accounts/signing/typedData.d.ts +5 -0
  44. package/dist/src/accounts/signing/typedData.d.ts.map +1 -0
  45. package/dist/src/accounts/signing/typedData.js +35 -0
  46. package/dist/src/accounts/startale.d.ts +2 -2
  47. package/dist/src/accounts/startale.d.ts.map +1 -1
  48. package/dist/src/accounts/startale.js +3 -3
  49. package/dist/src/accounts/startale.test.js +9 -14
  50. package/dist/src/accounts/utils.d.ts +4 -4
  51. package/dist/src/accounts/utils.d.ts.map +1 -1
  52. package/dist/src/accounts/utils.js +3 -40
  53. package/dist/src/accounts/walletClient.d.ts +7 -0
  54. package/dist/src/accounts/walletClient.d.ts.map +1 -0
  55. package/dist/src/accounts/walletClient.js +38 -0
  56. package/dist/src/actions/compact.d.ts +13 -0
  57. package/dist/src/actions/compact.d.ts.map +1 -0
  58. package/dist/src/actions/compact.js +210 -0
  59. package/dist/src/actions/ecdsa.d.ts +35 -0
  60. package/dist/src/actions/ecdsa.d.ts.map +1 -0
  61. package/dist/src/actions/ecdsa.js +114 -0
  62. package/dist/src/actions/ecdsa.test.d.ts +2 -0
  63. package/dist/src/actions/ecdsa.test.d.ts.map +1 -0
  64. package/dist/src/actions/ecdsa.test.js +99 -0
  65. package/dist/src/actions/index.d.ts +23 -38
  66. package/dist/src/actions/index.d.ts.map +1 -1
  67. package/dist/src/actions/index.js +29 -294
  68. package/dist/src/actions/mfa.d.ts +37 -0
  69. package/dist/src/actions/mfa.d.ts.map +1 -0
  70. package/dist/src/actions/mfa.js +133 -0
  71. package/dist/src/actions/passkeys.d.ts +37 -0
  72. package/dist/src/actions/passkeys.d.ts.map +1 -0
  73. package/dist/src/actions/passkeys.js +129 -0
  74. package/dist/src/actions/passkeys.test.d.ts +2 -0
  75. package/dist/src/actions/passkeys.test.d.ts.map +1 -0
  76. package/dist/src/actions/passkeys.test.js +54 -0
  77. package/dist/src/actions/recovery.d.ts +33 -0
  78. package/dist/src/actions/recovery.d.ts.map +1 -0
  79. package/dist/src/actions/recovery.js +193 -0
  80. package/dist/src/actions/recovery.test.d.ts +2 -0
  81. package/dist/src/actions/recovery.test.d.ts.map +1 -0
  82. package/dist/src/actions/recovery.test.js +168 -0
  83. package/dist/src/actions/smart-session.d.ts +6 -0
  84. package/dist/src/actions/smart-session.d.ts.map +1 -1
  85. package/dist/src/actions/smart-session.js +6 -0
  86. package/dist/src/errors/index.d.ts +5 -0
  87. package/dist/src/errors/index.d.ts.map +1 -0
  88. package/dist/src/errors/index.js +35 -0
  89. package/dist/src/execution/compact.d.ts +150 -7
  90. package/dist/src/execution/compact.d.ts.map +1 -1
  91. package/dist/src/execution/compact.js +112 -95
  92. package/dist/src/execution/error.d.ts +2 -9
  93. package/dist/src/execution/error.d.ts.map +1 -1
  94. package/dist/src/execution/error.js +4 -13
  95. package/dist/src/execution/index.d.ts +34 -22
  96. package/dist/src/execution/index.d.ts.map +1 -1
  97. package/dist/src/execution/index.js +62 -42
  98. package/dist/src/execution/permit2.d.ts +148 -0
  99. package/dist/src/execution/permit2.d.ts.map +1 -0
  100. package/dist/src/execution/permit2.js +282 -0
  101. package/dist/src/execution/smart-session.d.ts +3 -3
  102. package/dist/src/execution/smart-session.d.ts.map +1 -1
  103. package/dist/src/execution/types.d.ts +35 -0
  104. package/dist/src/execution/types.d.ts.map +1 -0
  105. package/dist/src/execution/types.js +2 -0
  106. package/dist/src/execution/utils.d.ts +36 -27
  107. package/dist/src/execution/utils.d.ts.map +1 -1
  108. package/dist/src/execution/utils.js +357 -103
  109. package/dist/src/index.d.ts +41 -22
  110. package/dist/src/index.d.ts.map +1 -1
  111. package/dist/src/index.js +199 -65
  112. package/dist/src/modules/common.d.ts +10 -4
  113. package/dist/src/modules/common.d.ts.map +1 -1
  114. package/dist/src/modules/common.js +22 -1
  115. package/dist/src/modules/index.d.ts +4 -18
  116. package/dist/src/modules/index.d.ts.map +1 -1
  117. package/dist/src/modules/index.js +15 -63
  118. package/dist/src/modules/index.test.js +9 -26
  119. package/dist/src/modules/omni-account.d.ts +2 -1
  120. package/dist/src/modules/omni-account.d.ts.map +1 -1
  121. package/dist/src/modules/omni-account.js +3 -1
  122. package/dist/src/modules/read.d.ts.map +1 -1
  123. package/dist/src/modules/read.js +4 -0
  124. package/dist/src/modules/validators/core.d.ts +5 -3
  125. package/dist/src/modules/validators/core.d.ts.map +1 -1
  126. package/dist/src/modules/validators/core.js +64 -41
  127. package/dist/src/modules/validators/core.test.js +7 -7
  128. package/dist/src/modules/validators/smart-sessions.js +3 -3
  129. package/dist/src/modules/validators/smart-sessions.test.js +4 -7
  130. package/dist/src/orchestrator/client.d.ts +4 -4
  131. package/dist/src/orchestrator/client.d.ts.map +1 -1
  132. package/dist/src/orchestrator/client.js +30 -15
  133. package/dist/src/orchestrator/index.d.ts +2 -3
  134. package/dist/src/orchestrator/index.d.ts.map +1 -1
  135. package/dist/src/orchestrator/index.js +1 -3
  136. package/dist/src/orchestrator/registry.d.ts +1 -23
  137. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  138. package/dist/src/orchestrator/registry.js +37 -33
  139. package/dist/src/orchestrator/registry.test.js +7 -7
  140. package/dist/src/orchestrator/types.d.ts +97 -29
  141. package/dist/src/orchestrator/types.d.ts.map +1 -1
  142. package/dist/src/orchestrator/utils.d.ts +1 -3
  143. package/dist/src/orchestrator/utils.d.ts.map +1 -1
  144. package/dist/src/orchestrator/utils.js +0 -102
  145. package/dist/src/types.d.ts +74 -10
  146. package/dist/src/types.d.ts.map +1 -1
  147. package/package.json +72 -1
  148. package/dist/src/actions/index.test.d.ts.map +0 -1
  149. package/dist/src/actions/index.test.js +0 -302
  150. package/dist/src/orchestrator/registry.json +0 -365
  151. /package/dist/src/{actions → accounts/json-rpc}/index.test.d.ts +0 -0
@@ -1,39 +1,58 @@
1
- import type { Address, Chain, Hex } from 'viem';
1
+ import type { Address, Chain, HashTypedDataParameters, Hex, SignableMessage, SignedAuthorizationList, TypedData } from 'viem';
2
2
  import type { UserOperationReceipt } from 'viem/account-abstraction';
3
- import { AccountError, Eip7702AccountMustHaveEoaError, Eip7702NotSupportedForAccountError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, isAccountError, SigningNotSupportedForAccountError, SignMessageNotSupportedByAccountError, SmartSessionsNotEnabledError } from './accounts';
4
- import { createTransport } from './accounts/utils';
5
- import { addOwner, changeMultiFactorThreshold, changeThreshold, disableEcdsa, disableMultiFactor, disablePasskeys, enableEcdsa, enableMultiFactor, enablePasskeys, encodeSmartSessionSignature, recover, removeOwner, removeSubValidator, setSubValidator, setUpRecovery } from './actions';
6
- import type { TransactionResult } from './execution';
7
- import { ExecutionError, IntentFailedError, isExecutionError, OrderPathRequiredForIntentsError, SessionChainRequiredError, SourceChainsNotAvailableForUserOpFlowError, UserOperationRequiredForSmartSessionsError } from './execution';
3
+ import { walletClientToAccount } from './accounts/walletClient';
4
+ import { encodeSmartSessionSignature } from './actions/smart-session';
5
+ import { type TransactionResult, type TransactionStatus, type UserOperationResult } from './execution';
6
+ import { type BatchPermit2Result, checkERC20AllowanceDirect, getPermit2Address, type MultiChainPermit2Config, type MultiChainPermit2Result, signPermit2Batch, signPermit2Sequential } from './execution/permit2';
8
7
  import { type SessionDetails } from './execution/smart-session';
9
- import { type IntentData, type PreparedTransactionData, type SignedTransactionData } from './execution/utils';
10
- import { AuthenticationRequiredError, InsufficientBalanceError, type IntentCost, type IntentInput, IntentNotFoundError, type IntentOp, type IntentOpStatus, type IntentResult, type IntentRoute, InvalidApiKeyError, InvalidIntentSignatureError, isOrchestratorError, NoPathFoundError, OnlyOneTargetTokenAmountCanBeUnsetError, OrchestratorError, type Portfolio, type SettlementSystem, type SignedIntentOp, TokenNotSupportedError, UnsupportedChainError, UnsupportedChainIdError, UnsupportedTokenError } from './orchestrator';
11
- import type { Call, RhinestoneAccountConfig, Session, Transaction } from './types';
8
+ import { type IntentRoute, type PreparedTransactionData, type PreparedUserOperationData, type SignedTransactionData, type SignedUserOperationData } from './execution/utils';
9
+ import { getSupportedTokens, getTokenAddress, type IntentCost, type IntentInput, type IntentOp, type IntentOpStatus, type Portfolio, type SettlementSystem, type SignedIntentOp } from './orchestrator';
10
+ import type { AccountProviderConfig, AccountType, BundlerConfig, Call, CallInput, MultiFactorValidatorConfig, OwnableValidatorConfig, OwnerSet, PaymasterConfig, Policy, ProviderConfig, Recovery, RhinestoneAccountConfig, Session, SignerSet, TokenRequest, TokenSymbol, Transaction, UniversalActionPolicyParamCondition, UserOperationTransaction, WebauthnValidatorConfig } from './types';
12
11
  interface RhinestoneAccount {
13
12
  config: RhinestoneAccountConfig;
14
- deploy: (chain: Chain, session?: Session) => Promise<void>;
13
+ deploy: (chain: Chain, session?: Session) => Promise<boolean>;
14
+ isDeployed: (chain: Chain) => Promise<boolean>;
15
+ setup: (chain: Chain) => Promise<boolean>;
16
+ signEip7702InitData: () => Promise<Hex>;
15
17
  prepareTransaction: (transaction: Transaction) => Promise<PreparedTransactionData>;
16
18
  signTransaction: (preparedTransaction: PreparedTransactionData) => Promise<SignedTransactionData>;
17
- submitTransaction: (signedTransaction: SignedTransactionData) => Promise<TransactionResult>;
19
+ signAuthorizations: (preparedTransaction: PreparedTransactionData) => Promise<SignedAuthorizationList>;
20
+ signMessage: (message: SignableMessage, chain: Chain, signers: SignerSet | undefined) => Promise<Hex>;
21
+ signTypedData: <typedData extends TypedData | Record<string, unknown> = TypedData, primaryType extends keyof typedData | 'EIP712Domain' = keyof typedData>(parameters: HashTypedDataParameters<typedData, primaryType>, chain: Chain, signers: SignerSet | undefined) => Promise<Hex>;
22
+ submitTransaction: (signedTransaction: SignedTransactionData, authorizations?: SignedAuthorizationList) => Promise<TransactionResult>;
18
23
  sendTransaction: (transaction: Transaction) => Promise<TransactionResult>;
19
- waitForExecution: (result: TransactionResult, acceptsPreconfirmations?: boolean) => Promise<IntentOpStatus | UserOperationReceipt>;
24
+ prepareUserOperation: (transaction: UserOperationTransaction) => Promise<PreparedUserOperationData>;
25
+ signUserOperation: (preparedUserOperation: PreparedUserOperationData) => Promise<SignedUserOperationData>;
26
+ submitUserOperation: (signedUserOperation: SignedUserOperationData) => Promise<UserOperationResult>;
27
+ sendUserOperation: (transaction: UserOperationTransaction) => Promise<UserOperationResult>;
28
+ waitForExecution(result: TransactionResult, acceptsPreconfirmations?: boolean): Promise<TransactionStatus>;
29
+ waitForExecution(result: UserOperationResult, acceptsPreconfirmations?: boolean): Promise<UserOperationReceipt>;
20
30
  getAddress: () => Address;
21
31
  getPortfolio: (onTestnets?: boolean) => Promise<Portfolio>;
22
- getMaxSpendableAmount: (chain: Chain, tokenAddress: Address, gasUnits: bigint) => Promise<bigint>;
32
+ getMaxSpendableAmount: (chain: Chain, tokenAddress: Address, gasUnits: bigint, sponsored?: boolean) => Promise<bigint>;
23
33
  getSessionDetails: (sessions: Session[], sessionIndex: number, signature?: Hex) => Promise<SessionDetails>;
24
34
  getOwners: (chain: Chain) => Promise<{
25
35
  accounts: Address[];
26
36
  threshold: number;
27
37
  } | null>;
28
38
  getValidators: (chain: Chain) => Promise<Address[]>;
39
+ checkERC20Allowance: (tokenAddress: Address, chain: Chain) => Promise<bigint>;
29
40
  }
30
- /**
31
- * Initialize a Rhinestone account
32
- * Note: accounts are deployed onchain only when the first transaction is sent.
33
- * @param config Account config (e.g. implementation vendor, owner signers, smart sessions)
34
- * @returns account
35
- */
36
- declare function createRhinestoneAccount(config: RhinestoneAccountConfig): Promise<RhinestoneAccount>;
37
- export { createRhinestoneAccount, createTransport, addOwner, changeMultiFactorThreshold, changeThreshold, disableEcdsa, disableMultiFactor, disablePasskeys, enableEcdsa, enableMultiFactor, enablePasskeys, encodeSmartSessionSignature, recover, removeOwner, removeSubValidator, setSubValidator, setUpRecovery, isAccountError, AccountError, Eip7702AccountMustHaveEoaError, ExistingEip7702AccountsNotSupportedError, FactoryArgsNotAvailableError, SmartSessionsNotEnabledError, SigningNotSupportedForAccountError, SignMessageNotSupportedByAccountError, Eip7702NotSupportedForAccountError, isExecutionError, IntentFailedError, ExecutionError, SourceChainsNotAvailableForUserOpFlowError, UserOperationRequiredForSmartSessionsError, OrderPathRequiredForIntentsError, SessionChainRequiredError, isOrchestratorError, AuthenticationRequiredError, InsufficientBalanceError, InvalidApiKeyError, InvalidIntentSignatureError, NoPathFoundError, OnlyOneTargetTokenAmountCanBeUnsetError, OrchestratorError, IntentNotFoundError, TokenNotSupportedError, UnsupportedChainError, UnsupportedChainIdError, UnsupportedTokenError, };
38
- export type { RhinestoneAccount, Session, Call, IntentData, PreparedTransactionData, SignedTransactionData, TransactionResult, IntentCost, IntentInput, IntentOp, IntentOpStatus, IntentResult, IntentRoute, SettlementSystem, SignedIntentOp, Portfolio, };
41
+ declare class RhinestoneSDK {
42
+ private apiKey?;
43
+ private endpointUrl?;
44
+ private provider?;
45
+ private bundler?;
46
+ private paymaster?;
47
+ constructor(options?: {
48
+ apiKey?: string;
49
+ endpointUrl?: string;
50
+ provider?: ProviderConfig;
51
+ bundler?: BundlerConfig;
52
+ paymaster?: PaymasterConfig;
53
+ });
54
+ createAccount(config: RhinestoneAccountConfig): Promise<RhinestoneAccount>;
55
+ }
56
+ export { RhinestoneSDK, walletClientToAccount, encodeSmartSessionSignature, getSupportedTokens, getTokenAddress, checkERC20AllowanceDirect, getPermit2Address, signPermit2Batch, signPermit2Sequential, };
57
+ export type { RhinestoneAccount, AccountType, RhinestoneAccountConfig, AccountProviderConfig, ProviderConfig, BundlerConfig, PaymasterConfig, Transaction, TokenSymbol, CallInput, Call, TokenRequest, OwnerSet, OwnableValidatorConfig, WebauthnValidatorConfig, MultiFactorValidatorConfig, SignerSet, Session, Recovery, Policy, UniversalActionPolicyParamCondition, PreparedTransactionData, SignedTransactionData, TransactionResult, PreparedUserOperationData, SignedUserOperationData, UserOperationResult, IntentCost, IntentInput, IntentOp, IntentOpStatus, IntentRoute, SettlementSystem, SignedIntentOp, Portfolio, MultiChainPermit2Config, MultiChainPermit2Result, BatchPermit2Result, };
39
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"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"}
package/dist/src/index.js CHANGED
@@ -1,60 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnsupportedTokenError = exports.UnsupportedChainIdError = exports.UnsupportedChainError = exports.TokenNotSupportedError = exports.IntentNotFoundError = exports.OrchestratorError = exports.OnlyOneTargetTokenAmountCanBeUnsetError = exports.NoPathFoundError = exports.InvalidIntentSignatureError = exports.InvalidApiKeyError = exports.InsufficientBalanceError = exports.AuthenticationRequiredError = exports.isOrchestratorError = exports.SessionChainRequiredError = exports.OrderPathRequiredForIntentsError = exports.UserOperationRequiredForSmartSessionsError = exports.SourceChainsNotAvailableForUserOpFlowError = exports.ExecutionError = exports.IntentFailedError = exports.isExecutionError = exports.Eip7702NotSupportedForAccountError = exports.SignMessageNotSupportedByAccountError = exports.SigningNotSupportedForAccountError = exports.SmartSessionsNotEnabledError = exports.FactoryArgsNotAvailableError = exports.ExistingEip7702AccountsNotSupportedError = exports.Eip7702AccountMustHaveEoaError = exports.AccountError = exports.isAccountError = exports.setUpRecovery = exports.setSubValidator = exports.removeSubValidator = exports.removeOwner = exports.recover = exports.encodeSmartSessionSignature = exports.enablePasskeys = exports.enableMultiFactor = exports.enableEcdsa = exports.disablePasskeys = exports.disableMultiFactor = exports.disableEcdsa = exports.changeThreshold = exports.changeMultiFactorThreshold = exports.addOwner = exports.createTransport = void 0;
4
- exports.createRhinestoneAccount = createRhinestoneAccount;
3
+ exports.signPermit2Sequential = exports.signPermit2Batch = exports.getPermit2Address = exports.checkERC20AllowanceDirect = exports.getTokenAddress = exports.getSupportedTokens = exports.encodeSmartSessionSignature = exports.walletClientToAccount = exports.RhinestoneSDK = void 0;
5
4
  const accounts_1 = require("./accounts");
6
- Object.defineProperty(exports, "AccountError", { enumerable: true, get: function () { return accounts_1.AccountError; } });
7
- Object.defineProperty(exports, "Eip7702AccountMustHaveEoaError", { enumerable: true, get: function () { return accounts_1.Eip7702AccountMustHaveEoaError; } });
8
- Object.defineProperty(exports, "Eip7702NotSupportedForAccountError", { enumerable: true, get: function () { return accounts_1.Eip7702NotSupportedForAccountError; } });
9
- Object.defineProperty(exports, "ExistingEip7702AccountsNotSupportedError", { enumerable: true, get: function () { return accounts_1.ExistingEip7702AccountsNotSupportedError; } });
10
- Object.defineProperty(exports, "FactoryArgsNotAvailableError", { enumerable: true, get: function () { return accounts_1.FactoryArgsNotAvailableError; } });
11
- Object.defineProperty(exports, "isAccountError", { enumerable: true, get: function () { return accounts_1.isAccountError; } });
12
- Object.defineProperty(exports, "SigningNotSupportedForAccountError", { enumerable: true, get: function () { return accounts_1.SigningNotSupportedForAccountError; } });
13
- Object.defineProperty(exports, "SignMessageNotSupportedByAccountError", { enumerable: true, get: function () { return accounts_1.SignMessageNotSupportedByAccountError; } });
14
- Object.defineProperty(exports, "SmartSessionsNotEnabledError", { enumerable: true, get: function () { return accounts_1.SmartSessionsNotEnabledError; } });
15
- const utils_1 = require("./accounts/utils");
16
- Object.defineProperty(exports, "createTransport", { enumerable: true, get: function () { return utils_1.createTransport; } });
17
- const actions_1 = require("./actions");
18
- Object.defineProperty(exports, "addOwner", { enumerable: true, get: function () { return actions_1.addOwner; } });
19
- Object.defineProperty(exports, "changeMultiFactorThreshold", { enumerable: true, get: function () { return actions_1.changeMultiFactorThreshold; } });
20
- Object.defineProperty(exports, "changeThreshold", { enumerable: true, get: function () { return actions_1.changeThreshold; } });
21
- Object.defineProperty(exports, "disableEcdsa", { enumerable: true, get: function () { return actions_1.disableEcdsa; } });
22
- Object.defineProperty(exports, "disableMultiFactor", { enumerable: true, get: function () { return actions_1.disableMultiFactor; } });
23
- Object.defineProperty(exports, "disablePasskeys", { enumerable: true, get: function () { return actions_1.disablePasskeys; } });
24
- Object.defineProperty(exports, "enableEcdsa", { enumerable: true, get: function () { return actions_1.enableEcdsa; } });
25
- Object.defineProperty(exports, "enableMultiFactor", { enumerable: true, get: function () { return actions_1.enableMultiFactor; } });
26
- Object.defineProperty(exports, "enablePasskeys", { enumerable: true, get: function () { return actions_1.enablePasskeys; } });
27
- Object.defineProperty(exports, "encodeSmartSessionSignature", { enumerable: true, get: function () { return actions_1.encodeSmartSessionSignature; } });
28
- Object.defineProperty(exports, "recover", { enumerable: true, get: function () { return actions_1.recover; } });
29
- Object.defineProperty(exports, "removeOwner", { enumerable: true, get: function () { return actions_1.removeOwner; } });
30
- Object.defineProperty(exports, "removeSubValidator", { enumerable: true, get: function () { return actions_1.removeSubValidator; } });
31
- Object.defineProperty(exports, "setSubValidator", { enumerable: true, get: function () { return actions_1.setSubValidator; } });
32
- Object.defineProperty(exports, "setUpRecovery", { enumerable: true, get: function () { return actions_1.setUpRecovery; } });
5
+ const walletClient_1 = require("./accounts/walletClient");
6
+ Object.defineProperty(exports, "walletClientToAccount", { enumerable: true, get: function () { return walletClient_1.walletClientToAccount; } });
7
+ const smart_session_1 = require("./actions/smart-session");
8
+ Object.defineProperty(exports, "encodeSmartSessionSignature", { enumerable: true, get: function () { return smart_session_1.encodeSmartSessionSignature; } });
33
9
  const execution_1 = require("./execution");
34
- Object.defineProperty(exports, "ExecutionError", { enumerable: true, get: function () { return execution_1.ExecutionError; } });
35
- Object.defineProperty(exports, "IntentFailedError", { enumerable: true, get: function () { return execution_1.IntentFailedError; } });
36
- Object.defineProperty(exports, "isExecutionError", { enumerable: true, get: function () { return execution_1.isExecutionError; } });
37
- Object.defineProperty(exports, "OrderPathRequiredForIntentsError", { enumerable: true, get: function () { return execution_1.OrderPathRequiredForIntentsError; } });
38
- Object.defineProperty(exports, "SessionChainRequiredError", { enumerable: true, get: function () { return execution_1.SessionChainRequiredError; } });
39
- Object.defineProperty(exports, "SourceChainsNotAvailableForUserOpFlowError", { enumerable: true, get: function () { return execution_1.SourceChainsNotAvailableForUserOpFlowError; } });
40
- Object.defineProperty(exports, "UserOperationRequiredForSmartSessionsError", { enumerable: true, get: function () { return execution_1.UserOperationRequiredForSmartSessionsError; } });
41
- const smart_session_1 = require("./execution/smart-session");
42
- const utils_2 = require("./execution/utils");
10
+ const permit2_1 = require("./execution/permit2");
11
+ Object.defineProperty(exports, "checkERC20AllowanceDirect", { enumerable: true, get: function () { return permit2_1.checkERC20AllowanceDirect; } });
12
+ Object.defineProperty(exports, "getPermit2Address", { enumerable: true, get: function () { return permit2_1.getPermit2Address; } });
13
+ Object.defineProperty(exports, "signPermit2Batch", { enumerable: true, get: function () { return permit2_1.signPermit2Batch; } });
14
+ Object.defineProperty(exports, "signPermit2Sequential", { enumerable: true, get: function () { return permit2_1.signPermit2Sequential; } });
15
+ const smart_session_2 = require("./execution/smart-session");
16
+ const utils_1 = require("./execution/utils");
43
17
  const modules_1 = require("./modules");
44
18
  const orchestrator_1 = require("./orchestrator");
45
- Object.defineProperty(exports, "AuthenticationRequiredError", { enumerable: true, get: function () { return orchestrator_1.AuthenticationRequiredError; } });
46
- Object.defineProperty(exports, "InsufficientBalanceError", { enumerable: true, get: function () { return orchestrator_1.InsufficientBalanceError; } });
47
- Object.defineProperty(exports, "IntentNotFoundError", { enumerable: true, get: function () { return orchestrator_1.IntentNotFoundError; } });
48
- Object.defineProperty(exports, "InvalidApiKeyError", { enumerable: true, get: function () { return orchestrator_1.InvalidApiKeyError; } });
49
- Object.defineProperty(exports, "InvalidIntentSignatureError", { enumerable: true, get: function () { return orchestrator_1.InvalidIntentSignatureError; } });
50
- Object.defineProperty(exports, "isOrchestratorError", { enumerable: true, get: function () { return orchestrator_1.isOrchestratorError; } });
51
- Object.defineProperty(exports, "NoPathFoundError", { enumerable: true, get: function () { return orchestrator_1.NoPathFoundError; } });
52
- Object.defineProperty(exports, "OnlyOneTargetTokenAmountCanBeUnsetError", { enumerable: true, get: function () { return orchestrator_1.OnlyOneTargetTokenAmountCanBeUnsetError; } });
53
- Object.defineProperty(exports, "OrchestratorError", { enumerable: true, get: function () { return orchestrator_1.OrchestratorError; } });
54
- Object.defineProperty(exports, "TokenNotSupportedError", { enumerable: true, get: function () { return orchestrator_1.TokenNotSupportedError; } });
55
- Object.defineProperty(exports, "UnsupportedChainError", { enumerable: true, get: function () { return orchestrator_1.UnsupportedChainError; } });
56
- Object.defineProperty(exports, "UnsupportedChainIdError", { enumerable: true, get: function () { return orchestrator_1.UnsupportedChainIdError; } });
57
- Object.defineProperty(exports, "UnsupportedTokenError", { enumerable: true, get: function () { return orchestrator_1.UnsupportedTokenError; } });
19
+ Object.defineProperty(exports, "getSupportedTokens", { enumerable: true, get: function () { return orchestrator_1.getSupportedTokens; } });
20
+ Object.defineProperty(exports, "getTokenAddress", { enumerable: true, get: function () { return orchestrator_1.getTokenAddress; } });
58
21
  /**
59
22
  * Initialize a Rhinestone account
60
23
  * Note: accounts are deployed onchain only when the first transaction is sent.
@@ -62,32 +25,144 @@ Object.defineProperty(exports, "UnsupportedTokenError", { enumerable: true, get:
62
25
  * @returns account
63
26
  */
64
27
  async function createRhinestoneAccount(config) {
28
+ // Sanity check for existing (externally created) accounts
29
+ // Ensures we decode the initdata correctly
30
+ (0, accounts_1.checkAddress)(config);
31
+ // Validate that owners field is provided for non-EOA accounts
32
+ if (config.account?.type !== 'eoa' && !config.owners) {
33
+ throw new accounts_1.OwnersFieldRequiredError();
34
+ }
35
+ /**
36
+ * Deploys the account on a given chain
37
+ * @param chain Chain to deploy the account on
38
+ * @param session Session to deploy the account on (optional)
39
+ */
65
40
  function deploy(chain, session) {
66
41
  return (0, accounts_1.deploy)(config, chain, session);
67
42
  }
43
+ /**
44
+ * Checks if the account is deployed on a given chain
45
+ * @param chain Chain to check if the account is deployed on
46
+ * @returns true if the account is deployed, false otherwise
47
+ */
48
+ function isDeployed(chain) {
49
+ return (0, accounts_1.isDeployed)(config, chain);
50
+ }
51
+ /**
52
+ * Sets up the existing account on a given chain
53
+ * by installing the missing modules (if any).
54
+ * @param chain Chain to set up the account on
55
+ */
56
+ function setup(chain) {
57
+ return (0, accounts_1.setup)(config, chain);
58
+ }
59
+ /**
60
+ * Prepare and sign the EIP-7702 account initialization data
61
+ * @returns init data signature
62
+ */
63
+ function signEip7702InitData() {
64
+ return (0, accounts_1.signEip7702InitData)(config);
65
+ }
66
+ /**
67
+ * Prepare a transaction data
68
+ * @param transaction Transaction to prepare
69
+ * @returns prepared transaction data
70
+ */
68
71
  function prepareTransaction(transaction) {
69
- return (0, utils_2.prepareTransaction)(config, transaction);
72
+ return (0, utils_1.prepareTransaction)(config, transaction);
70
73
  }
74
+ /**
75
+ * Sign a transaction
76
+ * @param preparedTransaction Prepared transaction data
77
+ * @returns signed transaction data
78
+ * @see {@link prepareTransaction} to prepare the transaction data for signing
79
+ */
71
80
  function signTransaction(preparedTransaction) {
72
- return (0, utils_2.signTransaction)(config, preparedTransaction);
81
+ return (0, utils_1.signTransaction)(config, preparedTransaction);
73
82
  }
74
- function submitTransaction(signedTransaction) {
75
- return (0, utils_2.submitTransaction)(config, signedTransaction);
83
+ /**
84
+ * Sign the required EIP-7702 authorizations for a transaction
85
+ * @param preparedTransaction Prepared transaction data
86
+ * @returns signed authorizations
87
+ * @see {@link prepareTransaction} to prepare the transaction data for signing
88
+ */
89
+ function signAuthorizations(preparedTransaction) {
90
+ return (0, utils_1.signAuthorizations)(config, preparedTransaction);
91
+ }
92
+ /**
93
+ * Sign a message (EIP-191)
94
+ * @param message Message to sign
95
+ * @param chain Chain to sign the message on
96
+ * @param signers Signers to use for signing
97
+ * @returns signature
98
+ */
99
+ function signMessage(message, chain, signers) {
100
+ return (0, utils_1.signMessage)(config, message, chain, signers);
101
+ }
102
+ /**
103
+ * Sign a typed data (EIP-712)
104
+ * @param parameters Typed data parameters
105
+ * @param chain Chain to sign the typed data on
106
+ * @param signers Signers to use for signing
107
+ * @returns signature
108
+ */
109
+ function signTypedData(parameters, chain, signers) {
110
+ return (0, utils_1.signTypedData)(config, parameters, chain, signers);
111
+ }
112
+ /**
113
+ * Submit a transaction
114
+ * @param signedTransaction Signed transaction data
115
+ * @param authorizations EIP-7702 authorizations to submit (optional)
116
+ * @returns transaction result object (a UserOp hash)
117
+ * @see {@link signTransaction} to sign the transaction data
118
+ * @see {@link signAuthorizations} to sign the required EIP-7702 authorizations
119
+ * @see {@link dryRun} true when intent is not executed onchain (internal use only)
120
+ */
121
+ function submitTransaction(signedTransaction, authorizations, dryRun) {
122
+ return (0, utils_1.submitTransaction)(config, signedTransaction, authorizations ?? [], dryRun);
123
+ }
124
+ /**
125
+ * Prepare a user operation data
126
+ * @param transaction User operation to prepare
127
+ * @returns prepared user operation data
128
+ */
129
+ function prepareUserOperation(transaction) {
130
+ return (0, utils_1.prepareUserOperation)(config, transaction);
131
+ }
132
+ /**
133
+ * Sign a user operation
134
+ * @param preparedUserOperation Prepared user operation data
135
+ * @returns signed user operation data
136
+ * @see {@link prepareUserOperation} to prepare the user operation data for signing
137
+ */
138
+ function signUserOperation(preparedUserOperation) {
139
+ return (0, utils_1.signUserOperation)(config, preparedUserOperation);
140
+ }
141
+ /**
142
+ * Submit a transaction
143
+ * @param signedTransaction Signed transaction data
144
+ * @returns transaction result object (a UserOp hash)
145
+ * @see {@link signUserOperation} to sign the user operation data
146
+ */
147
+ function submitUserOperation(signedUserOperation) {
148
+ return (0, utils_1.submitUserOperation)(config, signedUserOperation);
76
149
  }
77
150
  /**
78
151
  * Sign and send a transaction
79
152
  * @param transaction Transaction to send
80
- * @returns transaction result object (an intent ID or a UserOp hash)
153
+ * @returns transaction result object (an intent ID)
81
154
  */
82
155
  function sendTransaction(transaction) {
83
156
  return (0, execution_1.sendTransaction)(config, transaction);
84
157
  }
85
158
  /**
86
- * Wait for the transaction execution onchain
87
- * @param result transaction result object
88
- * @param acceptsPreconfirmations whether to accept preconfirmations from relayers before the transaction lands onchain (enabled by default)
89
- * @returns intent result or a UserOp receipt
159
+ * Sign and send a user operation
160
+ * @param transaction User operation to send
161
+ * @returns user operation result object (a UserOp hash)
90
162
  */
163
+ function sendUserOperation(transaction) {
164
+ return (0, execution_1.sendUserOperation)(config, transaction);
165
+ }
91
166
  function waitForExecution(result, acceptsPreconfirmations = true) {
92
167
  return (0, execution_1.waitForExecution)(config, result, acceptsPreconfirmations);
93
168
  }
@@ -113,28 +188,60 @@ async function createRhinestoneAccount(config) {
113
188
  * @param gasUnits Gas cost estimate for the transaction execution
114
189
  * @returns Maximum spendable amount in absolute units
115
190
  */
116
- function getMaxSpendableAmount(chain, tokenAddress, gasUnits) {
117
- return (0, execution_1.getMaxSpendableAmount)(config, chain, tokenAddress, gasUnits);
118
- }
119
- function getSessionDetails(sessions, sessionIndex, signature) {
120
- return (0, smart_session_1.getSessionDetails)(config, sessions, sessionIndex, signature);
191
+ function getMaxSpendableAmount(chain, tokenAddress, gasUnits, sponsored = false) {
192
+ return (0, execution_1.getMaxSpendableAmount)(config, chain, tokenAddress, gasUnits, sponsored);
121
193
  }
194
+ /**
195
+ * Get account owners (ECDSA)
196
+ * @param chain Chain to get the owners on
197
+ * @returns Account owners
198
+ */
122
199
  function getOwners(chain) {
123
200
  const account = getAddress();
124
201
  return (0, modules_1.getOwners)(account, chain, config.provider);
125
202
  }
203
+ /**
204
+ * Get account validator modules
205
+ * @param chain Chain to get the validators on
206
+ * @returns List of account validators
207
+ */
126
208
  function getValidators(chain) {
127
209
  const accountType = config.account?.type || 'nexus';
128
210
  const account = getAddress();
129
211
  return (0, modules_1.getValidators)(accountType, account, chain, config.provider);
130
212
  }
213
+ function getSessionDetails(sessions, sessionIndex, signature) {
214
+ return (0, smart_session_2.getSessionDetails)(config, sessions, sessionIndex, signature);
215
+ }
216
+ /**
217
+ * Check ERC20 allowance for the account owner and token (using Permit2 as spender)
218
+ * @param tokenAddress The token contract address
219
+ * @param chain The chain to check the allowance on
220
+ * @returns The allowance amount
221
+ */
222
+ function checkERC20Allowance(tokenAddress, chain) {
223
+ if (!config.provider) {
224
+ throw new Error('Provider configuration is required');
225
+ }
226
+ return (0, permit2_1.checkERC20Allowance)(tokenAddress, chain, config);
227
+ }
131
228
  return {
132
229
  config,
133
230
  deploy,
231
+ isDeployed,
232
+ setup,
233
+ signEip7702InitData,
134
234
  prepareTransaction,
135
235
  signTransaction,
236
+ signAuthorizations,
237
+ signMessage,
238
+ signTypedData,
136
239
  submitTransaction,
240
+ prepareUserOperation,
241
+ signUserOperation,
242
+ submitUserOperation,
137
243
  sendTransaction,
244
+ sendUserOperation,
138
245
  waitForExecution,
139
246
  getAddress,
140
247
  getPortfolio,
@@ -142,5 +249,32 @@ async function createRhinestoneAccount(config) {
142
249
  getSessionDetails,
143
250
  getOwners,
144
251
  getValidators,
252
+ checkERC20Allowance,
145
253
  };
146
254
  }
255
+ class RhinestoneSDK {
256
+ apiKey;
257
+ endpointUrl;
258
+ provider;
259
+ bundler;
260
+ paymaster;
261
+ constructor(options) {
262
+ this.apiKey = options?.apiKey;
263
+ this.endpointUrl = options?.endpointUrl;
264
+ this.provider = options?.provider;
265
+ this.bundler = options?.bundler;
266
+ this.paymaster = options?.paymaster;
267
+ }
268
+ createAccount(config) {
269
+ const rhinestoneConfig = {
270
+ ...config,
271
+ apiKey: this.apiKey,
272
+ endpointUrl: this.endpointUrl,
273
+ provider: this.provider,
274
+ bundler: this.bundler,
275
+ paymaster: this.paymaster,
276
+ };
277
+ return createRhinestoneAccount(rhinestoneConfig);
278
+ }
279
+ }
280
+ exports.RhinestoneSDK = RhinestoneSDK;
@@ -1,16 +1,22 @@
1
1
  import type { Address, Hex } from 'viem';
2
- type ModuleType = typeof MODULE_TYPE_ID_VALIDATOR | typeof MODULE_TYPE_ID_EXECUTOR | typeof MODULE_TYPE_ID_FALLBACK | typeof MODULE_TYPE_ID_HOOK;
2
+ type ModuleTypeId = typeof MODULE_TYPE_ID_VALIDATOR | typeof MODULE_TYPE_ID_EXECUTOR | typeof MODULE_TYPE_ID_FALLBACK | typeof MODULE_TYPE_ID_HOOK;
3
+ type ModuleType = typeof MODULE_TYPE_VALIDATOR | typeof MODULE_TYPE_EXECUTOR | typeof MODULE_TYPE_FALLBACK | typeof MODULE_TYPE_HOOK;
3
4
  interface Module {
4
5
  address: Address;
5
6
  initData: Hex;
6
7
  deInitData: Hex;
7
8
  additionalContext: Hex;
8
- type: ModuleType;
9
+ type: ModuleTypeId;
9
10
  }
10
11
  declare const MODULE_TYPE_ID_VALIDATOR = 1n;
11
12
  declare const MODULE_TYPE_ID_EXECUTOR = 2n;
12
13
  declare const MODULE_TYPE_ID_FALLBACK = 3n;
13
14
  declare const MODULE_TYPE_ID_HOOK = 4n;
14
- export { MODULE_TYPE_ID_VALIDATOR, MODULE_TYPE_ID_EXECUTOR, MODULE_TYPE_ID_FALLBACK, MODULE_TYPE_ID_HOOK, };
15
- export type { Module, ModuleType };
15
+ declare const MODULE_TYPE_VALIDATOR = "validator";
16
+ declare const MODULE_TYPE_EXECUTOR = "executor";
17
+ declare const MODULE_TYPE_FALLBACK = "fallback";
18
+ declare const MODULE_TYPE_HOOK = "hook";
19
+ declare function toModuleTypeId(type: ModuleType): ModuleTypeId;
20
+ export { MODULE_TYPE_ID_VALIDATOR, MODULE_TYPE_ID_EXECUTOR, MODULE_TYPE_ID_FALLBACK, MODULE_TYPE_ID_HOOK, MODULE_TYPE_VALIDATOR, MODULE_TYPE_EXECUTOR, MODULE_TYPE_FALLBACK, MODULE_TYPE_HOOK, toModuleTypeId, };
21
+ export type { Module, ModuleType, ModuleTypeId };
16
22
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../modules/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC,KAAK,UAAU,GACX,OAAO,wBAAwB,GAC/B,OAAO,uBAAuB,GAC9B,OAAO,uBAAuB,GAC9B,OAAO,mBAAmB,CAAA;AAE9B,UAAU,MAAM;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,GAAG,CAAA;IACb,UAAU,EAAE,GAAG,CAAA;IACf,iBAAiB,EAAE,GAAG,CAAA;IACtB,IAAI,EAAE,UAAU,CAAA;CACjB;AAED,QAAA,MAAM,wBAAwB,KAAK,CAAA;AACnC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,mBAAmB,KAAK,CAAA;AAE9B,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,GACpB,CAAA;AACD,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,CAAA"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../modules/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC,KAAK,YAAY,GACb,OAAO,wBAAwB,GAC/B,OAAO,uBAAuB,GAC9B,OAAO,uBAAuB,GAC9B,OAAO,mBAAmB,CAAA;AAE9B,KAAK,UAAU,GACX,OAAO,qBAAqB,GAC5B,OAAO,oBAAoB,GAC3B,OAAO,oBAAoB,GAC3B,OAAO,gBAAgB,CAAA;AAE3B,UAAU,MAAM;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,GAAG,CAAA;IACb,UAAU,EAAE,GAAG,CAAA;IACf,iBAAiB,EAAE,GAAG,CAAA;IACtB,IAAI,EAAE,YAAY,CAAA;CACnB;AAED,QAAA,MAAM,wBAAwB,KAAK,CAAA;AACnC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,mBAAmB,KAAK,CAAA;AAE9B,QAAA,MAAM,qBAAqB,cAAc,CAAA;AACzC,QAAA,MAAM,oBAAoB,aAAa,CAAA;AACvC,QAAA,MAAM,oBAAoB,aAAa,CAAA;AACvC,QAAA,MAAM,gBAAgB,SAAS,CAAA;AAE/B,iBAAS,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAWtD;AAED,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,GACf,CAAA;AACD,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MODULE_TYPE_ID_HOOK = exports.MODULE_TYPE_ID_FALLBACK = exports.MODULE_TYPE_ID_EXECUTOR = exports.MODULE_TYPE_ID_VALIDATOR = void 0;
3
+ exports.MODULE_TYPE_HOOK = exports.MODULE_TYPE_FALLBACK = exports.MODULE_TYPE_EXECUTOR = exports.MODULE_TYPE_VALIDATOR = exports.MODULE_TYPE_ID_HOOK = exports.MODULE_TYPE_ID_FALLBACK = exports.MODULE_TYPE_ID_EXECUTOR = exports.MODULE_TYPE_ID_VALIDATOR = void 0;
4
+ exports.toModuleTypeId = toModuleTypeId;
4
5
  const MODULE_TYPE_ID_VALIDATOR = 1n;
5
6
  exports.MODULE_TYPE_ID_VALIDATOR = MODULE_TYPE_ID_VALIDATOR;
6
7
  const MODULE_TYPE_ID_EXECUTOR = 2n;
@@ -9,3 +10,23 @@ const MODULE_TYPE_ID_FALLBACK = 3n;
9
10
  exports.MODULE_TYPE_ID_FALLBACK = MODULE_TYPE_ID_FALLBACK;
10
11
  const MODULE_TYPE_ID_HOOK = 4n;
11
12
  exports.MODULE_TYPE_ID_HOOK = MODULE_TYPE_ID_HOOK;
13
+ const MODULE_TYPE_VALIDATOR = 'validator';
14
+ exports.MODULE_TYPE_VALIDATOR = MODULE_TYPE_VALIDATOR;
15
+ const MODULE_TYPE_EXECUTOR = 'executor';
16
+ exports.MODULE_TYPE_EXECUTOR = MODULE_TYPE_EXECUTOR;
17
+ const MODULE_TYPE_FALLBACK = 'fallback';
18
+ exports.MODULE_TYPE_FALLBACK = MODULE_TYPE_FALLBACK;
19
+ const MODULE_TYPE_HOOK = 'hook';
20
+ exports.MODULE_TYPE_HOOK = MODULE_TYPE_HOOK;
21
+ function toModuleTypeId(type) {
22
+ switch (type) {
23
+ case MODULE_TYPE_VALIDATOR:
24
+ return MODULE_TYPE_ID_VALIDATOR;
25
+ case MODULE_TYPE_EXECUTOR:
26
+ return MODULE_TYPE_ID_EXECUTOR;
27
+ case MODULE_TYPE_FALLBACK:
28
+ return MODULE_TYPE_ID_FALLBACK;
29
+ case MODULE_TYPE_HOOK:
30
+ return MODULE_TYPE_ID_HOOK;
31
+ }
32
+ }
@@ -1,23 +1,9 @@
1
- import { type Chain, type Hex } from 'viem';
2
- import type { RhinestoneAccountConfig } from '../types';
1
+ import { type Chain } from 'viem';
2
+ import type { RhinestoneAccountConfig, RhinestoneConfig } from '../types';
3
3
  import { type Module } from './common';
4
4
  import { HOOK_ADDRESS } from './omni-account';
5
5
  import { getOwners, getValidators } from './read';
6
6
  import { getOwnerValidator } from './validators';
7
- interface WebAuthnData {
8
- authenticatorData: Hex;
9
- clientDataJSON: string;
10
- typeIndex: number | bigint;
11
- }
12
- interface WebauthnValidatorSignature {
13
- webauthn: WebAuthnData;
14
- signature: WebauthnSignature | Hex | Uint8Array;
15
- usePrecompiled?: boolean;
16
- }
17
- interface WebauthnSignature {
18
- r: bigint;
19
- s: bigint;
20
- }
21
7
  interface ModeleSetup {
22
8
  validators: Module[];
23
9
  executors: Module[];
@@ -25,7 +11,7 @@ interface ModeleSetup {
25
11
  hooks: Module[];
26
12
  }
27
13
  declare function getSetup(config: RhinestoneAccountConfig): ModeleSetup;
28
- declare function getWebauthnValidatorSignature({ webauthn, signature, usePrecompiled, }: WebauthnValidatorSignature): `0x${string}`;
14
+ declare function getIntentExecutor(config: RhinestoneConfig): Module;
29
15
  declare function isRip7212SupportedNetwork(chain: Chain): boolean;
30
- export { HOOK_ADDRESS, getSetup, getOwnerValidator, getWebauthnValidatorSignature, getOwners, getValidators, isRip7212SupportedNetwork, };
16
+ export { HOOK_ADDRESS, getSetup, getOwnerValidator, getOwners, getIntentExecutor, getValidators, isRip7212SupportedNetwork, };
31
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,KAAK,EAEV,KAAK,GAAG,EAET,MAAM,MAAM,CAAA;AAWb,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAEvD,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAA;AACtE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAA4B,MAAM,cAAc,CAAA;AAM1E,UAAU,YAAY;IACpB,iBAAiB,EAAE,GAAG,CAAA;IACtB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,MAAM,GAAG,MAAM,CAAA;CAC3B;AAED,UAAU,0BAA0B;IAClC,QAAQ,EAAE,YAAY,CAAA;IACtB,SAAS,EAAE,iBAAiB,GAAG,GAAG,GAAG,UAAU,CAAA;IAC/C,cAAc,CAAC,EAAE,OAAO,CAAA;CACzB;AAED,UAAU,iBAAiB;IACzB,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,iBAAS,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,WAAW,CAwD9D;AAED,iBAAS,6BAA6B,CAAC,EACrC,QAAQ,EACR,SAAS,EACT,cAAsB,GACvB,EAAE,0BAA0B,iBA6C5B;AAED,iBAAS,yBAAyB,CAAC,KAAK,EAAE,KAAK,WAY9C;AAaD,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,6BAA6B,EAC7B,SAAS,EACT,aAAa,EACb,yBAAyB,GAC1B,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,KAAK,EAAuB,MAAM,MAAM,CAAA;AAWpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEzE,OAAO,EAGL,KAAK,MAAM,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,YAAY,EAGb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAA4B,MAAM,cAAc,CAAA;AAM1E,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,iBAAS,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,WAAW,CAiD9D;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAW3D;AAED,iBAAS,yBAAyB,CAAC,KAAK,EAAE,KAAK,WAW9C;AAED,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,yBAAyB,GAC1B,CAAA"}