@rhinestone/sdk 1.0.28 → 1.0.30

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.
@@ -0,0 +1,19 @@
1
+ import type { Address, Chain } from 'viem';
2
+ import type { AccountProviderConfig, RhinestoneSDKConfig } from '../types';
3
+ /**
4
+ * Deploy smart accounts for multiple users from a backend using a sponsor wallet.
5
+ * The sponsor pays for gas, but users own and control their accounts.
6
+ */
7
+ declare function deployAccountsForOwners(params: {
8
+ sponsorAccount: import('viem').Account;
9
+ ownerAddresses: Address[];
10
+ accountConfig: AccountProviderConfig;
11
+ chain: Chain;
12
+ sdkConfig?: RhinestoneSDKConfig;
13
+ sponsored?: boolean;
14
+ }): Promise<Array<{
15
+ owner: Address;
16
+ account: Address;
17
+ }>>;
18
+ export { deployAccountsForOwners };
19
+ //# sourceMappingURL=deployment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deployment.d.ts","sourceRoot":"","sources":["../../../actions/deployment.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAO,MAAM,MAAM,CAAA;AAQ/C,OAAO,KAAK,EACV,qBAAqB,EAErB,mBAAmB,EACpB,MAAM,UAAU,CAAA;AAyCjB;;;GAGG;AACH,iBAAe,uBAAuB,CAAC,MAAM,EAAE;IAC7C,cAAc,EAAE,OAAO,MAAM,EAAE,OAAO,CAAA;IACtC,cAAc,EAAE,OAAO,EAAE,CAAA;IACzB,aAAa,EAAE,qBAAqB,CAAA;IACpC,KAAK,EAAE,KAAK,CAAA;IACZ,SAAS,CAAC,EAAE,mBAAmB,CAAA;IAC/B,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,GAAG,OAAO,CAAC,KAAK,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC,CAmDvD;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAA"}
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deployAccountsForOwners = deployAccountsForOwners;
4
+ const viem_1 = require("viem");
5
+ const accounts_1 = require("../accounts");
6
+ const utils_1 = require("../accounts/utils");
7
+ async function deployWithCustomFactory(sponsorConfig, chain, factoryArgs) {
8
+ const sponsorOwners = sponsorConfig.owners;
9
+ if (!sponsorOwners ||
10
+ sponsorOwners.type !== 'ecdsa' ||
11
+ sponsorOwners.accounts.length === 0) {
12
+ throw new Error('Sponsor must have an ECDSA account');
13
+ }
14
+ const sponsorAccount = sponsorOwners.accounts[0];
15
+ if (!('signTransaction' in sponsorAccount)) {
16
+ throw new Error('Sponsor account must be able to sign transactions');
17
+ }
18
+ const publicClient = (0, viem_1.createPublicClient)({
19
+ chain,
20
+ transport: (0, utils_1.createTransport)(chain, sponsorConfig.provider),
21
+ });
22
+ const walletClient = (0, viem_1.createWalletClient)({
23
+ account: sponsorAccount,
24
+ chain,
25
+ transport: (0, utils_1.createTransport)(chain, sponsorConfig.provider),
26
+ });
27
+ const hash = await walletClient.sendTransaction({
28
+ to: factoryArgs.factory,
29
+ data: factoryArgs.factoryData,
30
+ value: 0n,
31
+ });
32
+ await publicClient.waitForTransactionReceipt({ hash });
33
+ }
34
+ /**
35
+ * Deploy smart accounts for multiple users from a backend using a sponsor wallet.
36
+ * The sponsor pays for gas, but users own and control their accounts.
37
+ */
38
+ async function deployAccountsForOwners(params) {
39
+ const { sponsorAccount, ownerAddresses, accountConfig, chain, sdkConfig } = params;
40
+ const results = [];
41
+ for (const ownerAddress of ownerAddresses) {
42
+ const ownerAccountRef = {
43
+ address: ownerAddress,
44
+ type: 'json-rpc',
45
+ };
46
+ const userConfig = {
47
+ account: accountConfig,
48
+ owners: {
49
+ type: 'ecdsa',
50
+ accounts: [ownerAccountRef],
51
+ threshold: 1,
52
+ },
53
+ ...sdkConfig,
54
+ };
55
+ const accountAddress = (0, accounts_1.getAddress)(userConfig);
56
+ const isAlreadyDeployed = await (0, accounts_1.isDeployed)(userConfig, chain);
57
+ if (isAlreadyDeployed) {
58
+ results.push({ owner: ownerAddress, account: accountAddress });
59
+ continue;
60
+ }
61
+ const sponsorConfig = {
62
+ account: accountConfig,
63
+ owners: {
64
+ type: 'ecdsa',
65
+ accounts: [sponsorAccount],
66
+ threshold: 1,
67
+ },
68
+ ...sdkConfig,
69
+ };
70
+ const initCode = (0, accounts_1.getInitCode)(userConfig);
71
+ if (!initCode || !('factory' in initCode)) {
72
+ throw new Error('Failed to get init code for account deployment');
73
+ }
74
+ await deployWithCustomFactory(sponsorConfig, chain, initCode);
75
+ results.push({ owner: ownerAddress, account: accountAddress });
76
+ }
77
+ return results;
78
+ }
@@ -1,3 +1,4 @@
1
+ import type { RhinestoneAccount } from '../index';
1
2
  import type { LazyCallInput, ModuleInput } from '../types';
2
3
  /**
3
4
  * Install a custom module
@@ -11,5 +12,6 @@ declare function installModule(module: ModuleInput): LazyCallInput;
11
12
  * @returns Calls to uninstall the module
12
13
  */
13
14
  declare function uninstallModule(module: ModuleInput): LazyCallInput;
14
- export { installModule, uninstallModule };
15
+ declare function deploy(account: RhinestoneAccount): LazyCallInput;
16
+ export { installModule, uninstallModule, deploy };
15
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE1D;;;;GAIG;AACH,iBAAS,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CAOzD;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CAO3D;AAYD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../actions/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE1D;;;;GAIG;AACH,iBAAS,aAAa,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CAOzD;AAED;;;;GAIG;AACH,iBAAS,eAAe,CAAC,MAAM,EAAE,WAAW,GAAG,aAAa,CAO3D;AAYD,iBAAS,MAAM,CAAC,OAAO,EAAE,iBAAiB,GAAG,aAAa,CAUzD;AAED,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,EAAE,CAAA"}
@@ -2,6 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.installModule = installModule;
4
4
  exports.uninstallModule = uninstallModule;
5
+ exports.deploy = deploy;
5
6
  const accounts_1 = require("../accounts");
6
7
  const common_1 = require("../modules/common");
7
8
  /**
@@ -39,3 +40,14 @@ function getModule(module) {
39
40
  additionalContext: module.additionalContext ?? '0x',
40
41
  };
41
42
  }
43
+ function deploy(account) {
44
+ const initData = account.getInitData();
45
+ return {
46
+ async resolve() {
47
+ return {
48
+ to: initData.factory,
49
+ data: initData.factoryData,
50
+ };
51
+ },
52
+ };
53
+ }
@@ -1,12 +1,13 @@
1
1
  import type { Address, Chain, HashTypedDataParameters, Hex, SignableMessage, SignedAuthorizationList, TypedData } from 'viem';
2
2
  import type { UserOperationReceipt } from 'viem/account-abstraction';
3
3
  import { walletClientToAccount, wrapParaAccount } from './accounts/walletClient';
4
+ import { deployAccountsForOwners } from './actions/deployment';
4
5
  import { type TransactionResult, type TransactionStatus, type UserOperationResult } from './execution';
5
6
  import { type BatchPermit2Result, checkERC20AllowanceDirect, getPermit2Address, type MultiChainPermit2Config, type MultiChainPermit2Result, signPermit2Batch, signPermit2Sequential } from './execution/permit2';
6
7
  import { type SessionDetails } from './execution/smart-session';
7
8
  import { type IntentRoute, type PreparedTransactionData, type PreparedUserOperationData, type SignedTransactionData, type SignedUserOperationData } from './execution/utils';
8
9
  import { type ApprovalRequired, getAllSupportedChainsAndTokens, getSupportedTokens, getTokenAddress, type IntentCost, type IntentInput, type IntentOp, type IntentOpStatus, type Portfolio, type SettlementLayer, type SignedIntentOp, type TokenRequirements, type WrapRequired } from './orchestrator';
9
- import type { AccountProviderConfig, AccountType, BundlerConfig, Call, CallInput, MultiFactorValidatorConfig, OwnableValidatorConfig, OwnerSet, PaymasterConfig, Policy, ProviderConfig, Recovery, RhinestoneAccountConfig, RhinestoneSDKConfig, Session, SignerSet, TokenRequest, TokenSymbol, Transaction, UniversalActionPolicyParamCondition, UserOperationTransaction, WebauthnValidatorConfig } from './types';
10
+ import type { AccountProviderConfig, AccountType, BundlerConfig, Call, CallInput, MultiFactorValidatorConfig, OwnableValidatorConfig, OwnerSet, PaymasterConfig, Policy, ProviderConfig, Recovery, RhinestoneAccountConfig, RhinestoneConfig, RhinestoneSDKConfig, Session, SignerSet, TokenRequest, TokenSymbol, Transaction, UniversalActionPolicyParamCondition, UserOperationTransaction, WebauthnValidatorConfig } from './types';
10
11
  interface RhinestoneAccount {
11
12
  config: RhinestoneAccountConfig;
12
13
  deploy: (chain: Chain, params?: {
@@ -15,6 +16,10 @@ interface RhinestoneAccount {
15
16
  }) => Promise<boolean>;
16
17
  isDeployed: (chain: Chain) => Promise<boolean>;
17
18
  setup: (chain: Chain) => Promise<boolean>;
19
+ getInitData(): {
20
+ factory: Address;
21
+ factoryData: Hex;
22
+ };
18
23
  signEip7702InitData: () => Promise<Hex>;
19
24
  prepareTransaction: (transaction: Transaction) => Promise<PreparedTransactionData>;
20
25
  signTransaction: (preparedTransaction: PreparedTransactionData) => Promise<SignedTransactionData>;
@@ -40,6 +45,13 @@ interface RhinestoneAccount {
40
45
  getValidators: (chain: Chain) => Promise<Address[]>;
41
46
  checkERC20Allowance: (tokenAddress: Address, chain: Chain) => Promise<bigint>;
42
47
  }
48
+ /**
49
+ * Initialize a Rhinestone account
50
+ * Note: accounts are deployed onchain only when the first transaction is sent.
51
+ * @param config Account config (e.g. implementation vendor, owner signers, smart sessions)
52
+ * @returns account
53
+ */
54
+ declare function createRhinestoneAccount(config: RhinestoneConfig): Promise<RhinestoneAccount>;
43
55
  declare class RhinestoneSDK {
44
56
  private apiKey?;
45
57
  private endpointUrl?;
@@ -53,6 +65,6 @@ declare class RhinestoneSDK {
53
65
  status: IntentOpStatus["status"];
54
66
  }>;
55
67
  }
56
- export { RhinestoneSDK, walletClientToAccount, wrapParaAccount, getSupportedTokens, getTokenAddress, getAllSupportedChainsAndTokens, checkERC20AllowanceDirect, getPermit2Address, signPermit2Batch, signPermit2Sequential, };
68
+ export { RhinestoneSDK, createRhinestoneAccount, deployAccountsForOwners, walletClientToAccount, wrapParaAccount, getSupportedTokens, getTokenAddress, getAllSupportedChainsAndTokens, checkERC20AllowanceDirect, getPermit2Address, signPermit2Batch, signPermit2Sequential, };
57
69
  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, SettlementLayer, SignedIntentOp, Portfolio, TokenRequirements, WrapRequired, ApprovalRequired, MultiChainPermit2Config, MultiChainPermit2Result, BatchPermit2Result, };
58
70
  //# 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,10 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.signPermit2Sequential = exports.signPermit2Batch = exports.getPermit2Address = exports.checkERC20AllowanceDirect = exports.getAllSupportedChainsAndTokens = exports.getTokenAddress = exports.getSupportedTokens = exports.wrapParaAccount = exports.walletClientToAccount = exports.RhinestoneSDK = void 0;
3
+ exports.signPermit2Sequential = exports.signPermit2Batch = exports.getPermit2Address = exports.checkERC20AllowanceDirect = exports.getAllSupportedChainsAndTokens = exports.getTokenAddress = exports.getSupportedTokens = exports.wrapParaAccount = exports.walletClientToAccount = exports.deployAccountsForOwners = exports.RhinestoneSDK = void 0;
4
+ exports.createRhinestoneAccount = createRhinestoneAccount;
4
5
  const accounts_1 = require("./accounts");
5
6
  const walletClient_1 = require("./accounts/walletClient");
6
7
  Object.defineProperty(exports, "walletClientToAccount", { enumerable: true, get: function () { return walletClient_1.walletClientToAccount; } });
7
8
  Object.defineProperty(exports, "wrapParaAccount", { enumerable: true, get: function () { return walletClient_1.wrapParaAccount; } });
9
+ const deployment_1 = require("./actions/deployment");
10
+ Object.defineProperty(exports, "deployAccountsForOwners", { enumerable: true, get: function () { return deployment_1.deployAccountsForOwners; } });
8
11
  const execution_1 = require("./execution");
9
12
  const permit2_1 = require("./execution/permit2");
10
13
  Object.defineProperty(exports, "checkERC20AllowanceDirect", { enumerable: true, get: function () { return permit2_1.checkERC20AllowanceDirect; } });
@@ -56,6 +59,23 @@ async function createRhinestoneAccount(config) {
56
59
  function setup(chain) {
57
60
  return (0, accounts_1.setup)(config, chain);
58
61
  }
62
+ /**
63
+ * Get the account initialization data. Used for deploying the account onchain.
64
+ * @returns factory address and factory data
65
+ */
66
+ function getInitData() {
67
+ const initData = (0, accounts_1.getInitCode)(config);
68
+ if (!initData) {
69
+ throw new accounts_1.FactoryArgsNotAvailableError();
70
+ }
71
+ if (!('factory' in initData)) {
72
+ throw new accounts_1.FactoryArgsNotAvailableError();
73
+ }
74
+ return {
75
+ factory: initData.factory,
76
+ factoryData: initData.factoryData,
77
+ };
78
+ }
59
79
  /**
60
80
  * Prepare and sign the EIP-7702 account initialization data
61
81
  * @returns init data signature
@@ -250,6 +270,7 @@ async function createRhinestoneAccount(config) {
250
270
  getOwners,
251
271
  getValidators,
252
272
  checkERC20Allowance,
273
+ getInitData,
253
274
  };
254
275
  }
255
276
  class RhinestoneSDK {
@@ -1,4 +1,4 @@
1
- import type { Address, Hex } from 'viem';
1
+ import type { Account, Address, Hex } from 'viem';
2
2
  import { getSetup as experimental_getModuleSetup } from '../modules';
3
3
  import type { AccountProviderConfig, OwnerSet } from '../types';
4
4
  declare function experimental_getRhinestoneInitData(config: {
@@ -12,5 +12,6 @@ declare function experimental_getRhinestoneInitData(config: {
12
12
  } | {
13
13
  address: Address;
14
14
  };
15
- export { experimental_getModuleSetup, experimental_getRhinestoneInitData };
15
+ declare function toViewOnlyAccount(address: Address): Account;
16
+ export { experimental_getModuleSetup, experimental_getRhinestoneInitData, toViewOnlyAccount, };
16
17
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAExC,OAAO,EAAE,QAAQ,IAAI,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAE/D,iBAAS,kCAAkC,CAAC,MAAM,EAAE;IAClD,OAAO,CAAC,EAAE,qBAAqB,CAAA;IAC/B,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB,GACG;IACE,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,GAAG,CAAA;IAChB,uBAAuB,EAAE,OAAO,CAAA;CACjC,GACD;IACE,OAAO,EAAE,OAAO,CAAA;CACjB,CAmBJ;AAED,OAAO,EAAE,2BAA2B,EAAE,kCAAkC,EAAE,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAGjD,OAAO,EAAE,QAAQ,IAAI,2BAA2B,EAAE,MAAM,YAAY,CAAA;AACpE,OAAO,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAE/D,iBAAS,kCAAkC,CAAC,MAAM,EAAE;IAClD,OAAO,CAAC,EAAE,qBAAqB,CAAA;IAC/B,MAAM,CAAC,EAAE,QAAQ,CAAA;CAClB,GACG;IACE,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,GAAG,CAAA;IAChB,uBAAuB,EAAE,OAAO,CAAA;CACjC,GACD;IACE,OAAO,EAAE,OAAO,CAAA;CACjB,CAmBJ;AAED,iBAAS,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAgBpD;AAED,OAAO,EACL,2BAA2B,EAC3B,kCAAkC,EAClC,iBAAiB,GAClB,CAAA"}
@@ -2,15 +2,17 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.experimental_getModuleSetup = void 0;
4
4
  exports.experimental_getRhinestoneInitData = experimental_getRhinestoneInitData;
5
- const accounts_1 = require("../accounts");
5
+ exports.toViewOnlyAccount = toViewOnlyAccount;
6
+ const accounts_1 = require("viem/accounts");
7
+ const accounts_2 = require("../accounts");
6
8
  const modules_1 = require("../modules");
7
9
  Object.defineProperty(exports, "experimental_getModuleSetup", { enumerable: true, get: function () { return modules_1.getSetup; } });
8
10
  function experimental_getRhinestoneInitData(config) {
9
- const initCode = (0, accounts_1.getInitCode)(config);
11
+ const initCode = (0, accounts_2.getInitCode)(config);
10
12
  if (!initCode) {
11
13
  throw new Error('Init code not available');
12
14
  }
13
- const address = (0, accounts_1.getAddress)(config);
15
+ const address = (0, accounts_2.getAddress)(config);
14
16
  if ('factory' in initCode) {
15
17
  const { factory, factoryData } = initCode;
16
18
  return {
@@ -26,3 +28,18 @@ function experimental_getRhinestoneInitData(config) {
26
28
  };
27
29
  }
28
30
  }
31
+ function toViewOnlyAccount(address) {
32
+ const signingError = new Error('Signing is not supported for view-only accounts');
33
+ return (0, accounts_1.toAccount)({
34
+ address,
35
+ signMessage: async () => {
36
+ throw signingError;
37
+ },
38
+ signTypedData: async () => {
39
+ throw signingError;
40
+ },
41
+ signTransaction: async () => {
42
+ throw signingError;
43
+ },
44
+ });
45
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rhinestone/sdk",
3
- "version": "1.0.28",
3
+ "version": "1.0.30",
4
4
  "description": "End-to-end chain abstraction and modularity toolkit",
5
5
  "author": {
6
6
  "name": "Rhinestone",