@charterlabs/rhinestone-sdk 0.2.9 → 0.3.1

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 (122) hide show
  1. package/dist/src/accounts/error.d.ts +8 -1
  2. package/dist/src/accounts/error.d.ts.map +1 -1
  3. package/dist/src/accounts/error.js +10 -1
  4. package/dist/src/accounts/index.d.ts +11 -11
  5. package/dist/src/accounts/index.d.ts.map +1 -1
  6. package/dist/src/accounts/index.js +71 -53
  7. package/dist/src/accounts/kernel.d.ts +3 -5
  8. package/dist/src/accounts/kernel.d.ts.map +1 -1
  9. package/dist/src/accounts/kernel.js +10 -18
  10. package/dist/src/accounts/kernel.test.js +10 -3
  11. package/dist/src/accounts/nexus.d.ts +5 -7
  12. package/dist/src/accounts/nexus.d.ts.map +1 -1
  13. package/dist/src/accounts/nexus.js +112 -59
  14. package/dist/src/accounts/nexus.test.js +10 -3
  15. package/dist/src/accounts/passport.d.ts +4 -7
  16. package/dist/src/accounts/passport.d.ts.map +1 -1
  17. package/dist/src/accounts/passport.js +0 -91
  18. package/dist/src/accounts/safe.d.ts +9 -4
  19. package/dist/src/accounts/safe.d.ts.map +1 -1
  20. package/dist/src/accounts/safe.js +110 -39
  21. package/dist/src/accounts/safe.test.js +10 -3
  22. package/dist/src/accounts/signing/common.d.ts +3 -3
  23. package/dist/src/accounts/signing/common.d.ts.map +1 -1
  24. package/dist/src/accounts/signing/common.js +36 -3
  25. package/dist/src/accounts/signing/message.js +2 -2
  26. package/dist/src/accounts/signing/typedData.d.ts.map +1 -1
  27. package/dist/src/accounts/signing/typedData.js +3 -3
  28. package/dist/src/accounts/startale.d.ts +2 -4
  29. package/dist/src/accounts/startale.d.ts.map +1 -1
  30. package/dist/src/accounts/startale.js +2 -5
  31. package/dist/src/accounts/utils.d.ts.map +1 -1
  32. package/dist/src/accounts/utils.js +10 -3
  33. package/dist/src/accounts/walletClient.d.ts.map +1 -1
  34. package/dist/src/accounts/walletClient.js +6 -0
  35. package/dist/src/actions/compact.d.ts +3 -2
  36. package/dist/src/actions/compact.d.ts.map +1 -1
  37. package/dist/src/actions/compact.js +1 -0
  38. package/dist/src/actions/deployment.d.ts +19 -0
  39. package/dist/src/actions/deployment.d.ts.map +1 -0
  40. package/dist/src/actions/deployment.js +78 -0
  41. package/dist/src/actions/index.d.ts +4 -11
  42. package/dist/src/actions/index.d.ts.map +1 -1
  43. package/dist/src/actions/index.js +12 -0
  44. package/dist/src/actions/smart-sessions.d.ts +7 -8
  45. package/dist/src/actions/smart-sessions.d.ts.map +1 -1
  46. package/dist/src/actions/smart-sessions.js +7 -4
  47. package/dist/src/errors/index.d.ts +2 -2
  48. package/dist/src/errors/index.d.ts.map +1 -1
  49. package/dist/src/errors/index.js +2 -1
  50. package/dist/src/execution/compact.d.ts +12 -17
  51. package/dist/src/execution/compact.d.ts.map +1 -1
  52. package/dist/src/execution/compact.js +10 -16
  53. package/dist/src/execution/index.d.ts +6 -6
  54. package/dist/src/execution/index.d.ts.map +1 -1
  55. package/dist/src/execution/index.js +16 -27
  56. package/dist/src/execution/permit2.d.ts +12 -17
  57. package/dist/src/execution/permit2.d.ts.map +1 -1
  58. package/dist/src/execution/permit2.js +10 -16
  59. package/dist/src/execution/singleChainOps.d.ts +15 -3
  60. package/dist/src/execution/singleChainOps.d.ts.map +1 -1
  61. package/dist/src/execution/singleChainOps.js +17 -3
  62. package/dist/src/execution/utils.d.ts +32 -10
  63. package/dist/src/execution/utils.d.ts.map +1 -1
  64. package/dist/src/execution/utils.js +121 -108
  65. package/dist/src/index.d.ts +23 -7
  66. package/dist/src/index.d.ts.map +1 -1
  67. package/dist/src/index.js +36 -6
  68. package/dist/src/modules/abi/smart-session-emissary.d.ts +696 -0
  69. package/dist/src/modules/abi/smart-session-emissary.d.ts.map +1 -0
  70. package/dist/src/modules/abi/smart-session-emissary.js +565 -0
  71. package/dist/src/modules/chain-abstraction.d.ts +5 -0
  72. package/dist/src/modules/chain-abstraction.d.ts.map +1 -0
  73. package/dist/src/modules/chain-abstraction.js +7 -0
  74. package/dist/src/modules/common.d.ts +10 -2
  75. package/dist/src/modules/common.d.ts.map +1 -1
  76. package/dist/src/modules/common.js +10 -0
  77. package/dist/src/modules/index.d.ts +3 -9
  78. package/dist/src/modules/index.d.ts.map +1 -1
  79. package/dist/src/modules/index.js +24 -8
  80. package/dist/src/modules/index.test.js +3 -9
  81. package/dist/src/modules/legacy.d.ts +10 -0
  82. package/dist/src/modules/legacy.d.ts.map +1 -0
  83. package/dist/src/modules/legacy.js +65 -0
  84. package/dist/src/modules/validators/core.d.ts.map +1 -1
  85. package/dist/src/modules/validators/core.js +2 -0
  86. package/dist/src/modules/validators/index.d.ts +2 -2
  87. package/dist/src/modules/validators/index.d.ts.map +1 -1
  88. package/dist/src/modules/validators/index.js +1 -6
  89. package/dist/src/modules/validators/smart-sessions.d.ts +105 -20
  90. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -1
  91. package/dist/src/modules/validators/smart-sessions.js +199 -435
  92. package/dist/src/orchestrator/client.d.ts +7 -3
  93. package/dist/src/orchestrator/client.d.ts.map +1 -1
  94. package/dist/src/orchestrator/client.js +3 -13
  95. package/dist/src/orchestrator/index.d.ts +2 -2
  96. package/dist/src/orchestrator/index.d.ts.map +1 -1
  97. package/dist/src/orchestrator/index.js +2 -1
  98. package/dist/src/orchestrator/registry.d.ts +2 -1
  99. package/dist/src/orchestrator/registry.d.ts.map +1 -1
  100. package/dist/src/orchestrator/registry.js +28 -8
  101. package/dist/src/orchestrator/registry.test.js +13 -0
  102. package/dist/src/orchestrator/types.d.ts +11 -12
  103. package/dist/src/orchestrator/types.d.ts.map +1 -1
  104. package/dist/src/orchestrator/types.js +1 -7
  105. package/dist/src/types.d.ts +47 -25
  106. package/dist/src/types.d.ts.map +1 -1
  107. package/dist/src/utils/index.d.ts +24 -1
  108. package/dist/src/utils/index.d.ts.map +1 -1
  109. package/dist/src/utils/index.js +58 -0
  110. package/dist/test/utils/utils.d.ts +5 -0
  111. package/dist/test/utils/utils.d.ts.map +1 -0
  112. package/dist/test/utils/utils.js +20 -0
  113. package/package.json +33 -3
  114. package/dist/src/execution/smart-session.d.ts +0 -13
  115. package/dist/src/execution/smart-session.d.ts.map +0 -1
  116. package/dist/src/execution/smart-session.js +0 -178
  117. package/dist/src/modules/omni-account.d.ts +0 -8
  118. package/dist/src/modules/omni-account.d.ts.map +0 -1
  119. package/dist/src/modules/omni-account.js +0 -13
  120. package/dist/src/modules/validators/smart-sessions.test.d.ts +0 -2
  121. package/dist/src/modules/validators/smart-sessions.test.d.ts.map +0 -1
  122. package/dist/src/modules/validators/smart-sessions.test.js +0 -222
@@ -7,7 +7,6 @@ exports.getDefaultValidatorAddress = getDefaultValidatorAddress;
7
7
  exports.packSignature = packSignature;
8
8
  exports.getDeployArgs = getDeployArgs;
9
9
  exports.getSmartAccount = getSmartAccount;
10
- exports.getSessionSmartAccount = getSessionSmartAccount;
11
10
  exports.getGuardianSmartAccount = getGuardianSmartAccount;
12
11
  exports.signEip7702InitData = signEip7702InitData;
13
12
  exports.getEip7702InitCall = getEip7702InitCall;
@@ -29,47 +28,23 @@ const NEXUS_K1_VALIDATOR = '0x00000004171351c442b202678c48d8ab5b321e8f';
29
28
  const NEXUS_CREATION_CODE = '0x60806040526102aa803803806100148161018c565b92833981016040828203126101885781516001600160a01b03811692909190838303610188576020810151906001600160401b03821161018857019281601f8501121561018857835161006e610069826101c5565b61018c565b9481865260208601936020838301011161018857815f926020809301865e8601015260017f90b772c2cb8a51aa7a8a65fc23543c6d022d5b3f8e2b92eed79fba7eef8293005d823b15610176577f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b031916821790557fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a282511561015e575f8091610146945190845af43d15610156573d91610137610069846101c5565b9283523d5f602085013e6101e0565b505b604051606b908161023f8239f35b6060916101e0565b50505034156101485763b398979f60e01b5f5260045ffd5b634c9c8ce360e01b5f5260045260245ffd5b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176101b157604052565b634e487b7160e01b5f52604160045260245ffd5b6001600160401b0381116101b157601f01601f191660200190565b9061020457508051156101f557805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580610235575b610215575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b1561020d56fe60806040523615605c575f8073ffffffffffffffffffffffffffffffffffffffff7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416368280378136915af43d5f803e156058573d5ff35b3d5ffd5b00fea164736f6c634300081b000a';
30
29
  function getDeployArgs(config) {
31
30
  if (config.initData) {
32
- const factoryData = (0, viem_1.decodeFunctionData)({
33
- abi: (0, viem_1.parseAbi)([
34
- 'function createAccount(address eoaOwner,uint256 index,address[] attesters,uint8 threshold)',
35
- ]),
36
- data: config.initData.factoryData,
37
- });
38
- if (factoryData.functionName !== 'createAccount') {
39
- throw new error_1.AccountConfigurationNotSupportedError('Invalid factory data', 'nexus');
31
+ if (!('factory' in config.initData)) {
32
+ return null;
40
33
  }
41
- const owner = factoryData.args[0];
42
- const index = factoryData.args[1];
43
- const attesters = factoryData.args[2];
44
- const threshold = factoryData.args[3];
45
- const salt = (0, viem_1.keccak256)((0, viem_1.encodePacked)(['address', 'uint256', 'address[]', 'uint8'], [owner, index, attesters, threshold]));
46
- const implementation = config.initData.factory === NEXUS_FACTORY_ADDRESS
47
- ? NEXUS_IMPLEMENTATION_ADDRESS
48
- : NEXUS_IMPLEMENTATION_1_0_0;
49
- const registry = viem_1.zeroAddress;
50
- const bootstrapData = (0, viem_1.encodeFunctionData)({
51
- abi: (0, viem_1.parseAbi)([
52
- 'function initNexusWithSingleValidator(address validator,bytes data,address registry,address[] attesters,uint8 threshold)',
53
- ]),
54
- functionName: 'initNexusWithSingleValidator',
55
- args: [NEXUS_K1_VALIDATOR, owner, registry, attesters, threshold],
56
- });
57
- const initData = (0, viem_1.encodeAbiParameters)([{ type: 'address' }, { type: 'bytes' }], [NEXUS_BOOTSTRAP_1_0_0, bootstrapData]);
58
- const initializationCallData = (0, viem_1.encodeFunctionData)({
59
- abi: (0, viem_1.parseAbi)(['function initializeAccount(bytes)']),
60
- functionName: 'initializeAccount',
61
- args: [initData],
62
- });
63
- return {
64
- salt,
65
- factory: config.initData.factory,
66
- factoryData: config.initData.factoryData,
67
- implementation,
68
- initData,
69
- initializationCallData,
70
- };
34
+ const { factory, factoryData } = config.initData;
35
+ const v1Result = tryDecodeV1FactoryData(factory, factoryData);
36
+ if (v1Result) {
37
+ return v1Result;
38
+ }
39
+ const v0Result = tryDecodeV0FactoryData(factory, factoryData);
40
+ if (v0Result) {
41
+ return v0Result;
42
+ }
43
+ throw new error_1.AccountConfigurationNotSupportedError('Invalid factory data: unrecognized schema', 'nexus');
71
44
  }
72
- const salt = (0, viem_1.keccak256)('0x');
45
+ const account = config.account;
46
+ const defaultSalt = (0, viem_1.keccak256)('0x');
47
+ const salt = account?.salt ?? defaultSalt;
73
48
  const moduleSetup = (0, modules_1.getSetup)(config);
74
49
  // Filter out the default validator
75
50
  const defaultValidator = moduleSetup.validators.find((v) => v.address === NEXUS_DEFAULT_VALIDATOR_ADDRESS);
@@ -154,7 +129,14 @@ function getDeployArgs(config) {
154
129
  };
155
130
  }
156
131
  function getAddress(config) {
157
- const { factory, salt, initializationCallData, implementation } = getDeployArgs(config);
132
+ const deployArgs = getDeployArgs(config);
133
+ if (!deployArgs) {
134
+ if (config.initData?.address) {
135
+ return config.initData.address;
136
+ }
137
+ throw new Error('Cannot derive address: deploy args not available');
138
+ }
139
+ const { factory, salt, initializationCallData, implementation } = deployArgs;
158
140
  const creationCode = factory === NEXUS_FACTORY_ADDRESS
159
141
  ? NEXUS_CREATION_CODE
160
142
  : '0x603d3d8160223d3973000000039dfcad030719b07296710f045f0558f760095155f3363d3d373d3d363d7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc545af43d6000803e6038573d6000fd5b3d6000f3';
@@ -245,21 +227,6 @@ async function getSmartAccount(client, address, owners, validatorAddress, sign,
245
227
  return (0, validators_1.getMockSignature)(owners);
246
228
  }, sign, defaultValidatorAddress);
247
229
  }
248
- async function getSessionSmartAccount(client, address, session, validatorAddress, enableData, sign, defaultValidatorAddress = NEXUS_DEFAULT_VALIDATOR_ADDRESS) {
249
- return await getBaseSmartAccount(address, client, validatorAddress, async () => {
250
- const dummyOpSignature = (0, validators_1.getMockSignature)(session.owners);
251
- if (enableData) {
252
- return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_ENABLE, (0, validators_1.getPermissionId)(session), dummyOpSignature, enableData);
253
- }
254
- return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_USE, (0, validators_1.getPermissionId)(session), dummyOpSignature);
255
- }, async (hash) => {
256
- const signature = await sign(hash);
257
- if (enableData) {
258
- return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_ENABLE, (0, validators_1.getPermissionId)(session), signature, enableData);
259
- }
260
- return (0, validators_1.encodeSmartSessionSignature)(validators_1.SMART_SESSION_MODE_USE, (0, validators_1.getPermissionId)(session), signature);
261
- }, defaultValidatorAddress);
262
- }
263
230
  async function getGuardianSmartAccount(client, address, guardians, validatorAddress, sign, defaultValidatorAddress = NEXUS_DEFAULT_VALIDATOR_ADDRESS) {
264
231
  return await getBaseSmartAccount(address, client, validatorAddress, async () => {
265
232
  return (0, validators_1.getMockSignature)(guardians);
@@ -341,7 +308,11 @@ async function getBaseSmartAccount(address, client, nonceValidatorAddress, getSt
341
308
  });
342
309
  }
343
310
  async function signEip7702InitData(config, eoa) {
344
- const { initData } = getDeployArgs(config);
311
+ const deployArgs = getDeployArgs(config);
312
+ if (!deployArgs) {
313
+ throw new Error('Cannot sign EIP-7702 init data: deploy args not available');
314
+ }
315
+ const { initData } = deployArgs;
345
316
  if (!eoa.signTypedData) {
346
317
  throw new error_1.SigningNotSupportedForAccountError();
347
318
  }
@@ -366,7 +337,7 @@ async function signEip7702InitData(config, eoa) {
366
337
  });
367
338
  return signature;
368
339
  }
369
- async function getEip7702InitCall(config, signature) {
340
+ function getEip7702InitCall(config, signature) {
370
341
  function getEncodedData(initData) {
371
342
  const chainIds = [0n];
372
343
  const chainIdIndex = 0n;
@@ -374,7 +345,11 @@ async function getEip7702InitCall(config, signature) {
374
345
  const encodedData = (0, viem_1.encodePacked)(['uint256', 'uint256', 'uint256', 'bytes'], [chainIdIndex, chainIdsLength, chainIds[0], initData]);
375
346
  return encodedData;
376
347
  }
377
- const { initData } = getDeployArgs(config);
348
+ const deployArgs = getDeployArgs(config);
349
+ if (!deployArgs) {
350
+ throw new Error('Cannot get EIP-7702 init call: deploy args not available');
351
+ }
352
+ const { initData } = deployArgs;
378
353
  const encodedData = getEncodedData(initData);
379
354
  const accountFullData = (0, viem_1.concat)([signature, encodedData]);
380
355
  const accountInitCallData = (0, viem_1.encodeFunctionData)({
@@ -400,3 +375,81 @@ async function getEip7702InitCall(config, signature) {
400
375
  contract: NEXUS_IMPLEMENTATION_ADDRESS,
401
376
  };
402
377
  }
378
+ function tryDecodeV1FactoryData(factory, factoryData) {
379
+ try {
380
+ const decoded = (0, viem_1.decodeFunctionData)({
381
+ abi: (0, viem_1.parseAbi)(['function createAccount(bytes,bytes32)']),
382
+ data: factoryData,
383
+ });
384
+ const initData = decoded.args[0];
385
+ const salt = decoded.args[1];
386
+ const initializationCallData = (0, viem_1.encodeFunctionData)({
387
+ abi: (0, viem_1.parseAbi)(['function initializeAccount(bytes)']),
388
+ functionName: 'initializeAccount',
389
+ args: [initData],
390
+ });
391
+ return {
392
+ salt,
393
+ factory,
394
+ factoryData,
395
+ implementation: NEXUS_IMPLEMENTATION_ADDRESS,
396
+ initData,
397
+ initializationCallData,
398
+ };
399
+ }
400
+ catch (error) {
401
+ if (isAbiDecodingError(error)) {
402
+ return null;
403
+ }
404
+ throw error;
405
+ }
406
+ }
407
+ function tryDecodeV0FactoryData(factory, factoryData) {
408
+ try {
409
+ const decoded = (0, viem_1.decodeFunctionData)({
410
+ abi: (0, viem_1.parseAbi)([
411
+ 'function createAccount(address eoaOwner,uint256 index,address[] attesters,uint8 threshold)',
412
+ ]),
413
+ data: factoryData,
414
+ });
415
+ const owner = decoded.args[0];
416
+ const index = decoded.args[1];
417
+ const attesters = decoded.args[2];
418
+ const threshold = decoded.args[3];
419
+ const salt = (0, viem_1.keccak256)((0, viem_1.encodePacked)(['address', 'uint256', 'address[]', 'uint8'], [owner, index, attesters, threshold]));
420
+ const implementation = factory === NEXUS_FACTORY_ADDRESS
421
+ ? NEXUS_IMPLEMENTATION_ADDRESS
422
+ : NEXUS_IMPLEMENTATION_1_0_0;
423
+ const registry = viem_1.zeroAddress;
424
+ const bootstrapData = (0, viem_1.encodeFunctionData)({
425
+ abi: (0, viem_1.parseAbi)([
426
+ 'function initNexusWithSingleValidator(address validator,bytes data,address registry,address[] attesters,uint8 threshold)',
427
+ ]),
428
+ functionName: 'initNexusWithSingleValidator',
429
+ args: [NEXUS_K1_VALIDATOR, owner, registry, attesters, threshold],
430
+ });
431
+ const initData = (0, viem_1.encodeAbiParameters)([{ type: 'address' }, { type: 'bytes' }], [NEXUS_BOOTSTRAP_1_0_0, bootstrapData]);
432
+ const initializationCallData = (0, viem_1.encodeFunctionData)({
433
+ abi: (0, viem_1.parseAbi)(['function initializeAccount(bytes)']),
434
+ functionName: 'initializeAccount',
435
+ args: [initData],
436
+ });
437
+ return {
438
+ salt,
439
+ factory,
440
+ factoryData,
441
+ implementation,
442
+ initData,
443
+ initializationCallData,
444
+ };
445
+ }
446
+ catch (error) {
447
+ if (isAbiDecodingError(error)) {
448
+ return null;
449
+ }
450
+ throw error;
451
+ }
452
+ }
453
+ function isAbiDecodingError(error) {
454
+ return (error instanceof Error && error.name === 'AbiFunctionSignatureNotFoundError');
455
+ }
@@ -2,18 +2,21 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const vitest_1 = require("vitest");
4
4
  const consts_1 = require("../../test/consts");
5
+ const utils_1 = require("../../test/utils/utils");
5
6
  const common_1 = require("../modules/common");
6
7
  const nexus_1 = require("./nexus");
7
8
  const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
8
9
  (0, vitest_1.describe)('Accounts: Nexus', () => {
9
10
  (0, vitest_1.describe)('Deploy Args', () => {
10
11
  (0, vitest_1.test)('ECDSA owners', () => {
11
- const { factory, factoryData, salt, implementation, initializationCallData, } = (0, nexus_1.getDeployArgs)({
12
+ const deployArgs = (0, nexus_1.getDeployArgs)({
12
13
  owners: {
13
14
  type: 'ecdsa',
14
15
  accounts: [consts_1.accountA, consts_1.accountB],
15
16
  },
16
17
  });
18
+ (0, utils_1.assertNotNull)(deployArgs);
19
+ const { factory, factoryData, salt, implementation, initializationCallData, } = deployArgs;
17
20
  (0, vitest_1.expect)(factory).toEqual('0x0000000000679A258c64d2F20F310e12B64b7375');
18
21
  (0, vitest_1.expect)(factoryData).toEqual('0xea6d13ac0000000000000000000000000000000000000000000000000000000000000040c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000006efb61d8c9546ff1b500de3f244ea7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002e441bede0300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da09948693600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
19
22
  (0, vitest_1.expect)(salt).toEqual('0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470');
@@ -21,12 +24,14 @@ const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
21
24
  (0, vitest_1.expect)(initializationCallData).toEqual('0x4b6a14190000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000036000000000000000000000000000000000006efb61d8c9546ff1b500de3f244ea7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000002e441bede0300000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002c000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000020000000000000000000000006092086a3dc0020cd604a68fcf5d430007d51bb7000000000000000000000000f6c02c78ded62973b43bfa523b247da09948693600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
22
25
  });
23
26
  (0, vitest_1.test)('Passkey owner', () => {
24
- const { factory, factoryData, salt, implementation, initializationCallData, } = (0, nexus_1.getDeployArgs)({
27
+ const deployArgs = (0, nexus_1.getDeployArgs)({
25
28
  owners: {
26
29
  type: 'passkey',
27
30
  accounts: [consts_1.passkeyAccount],
28
31
  },
29
32
  });
33
+ (0, utils_1.assertNotNull)(deployArgs);
34
+ const { factory, factoryData, salt, implementation, initializationCallData, } = deployArgs;
30
35
  (0, vitest_1.expect)(factory).toEqual('0x0000000000679A258c64d2F20F310e12B64b7375');
31
36
  (0, vitest_1.expect)(factoryData).toEqual('0xea6d13ac0000000000000000000000000000000000000000000000000000000000000040c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000006efb61d8c9546ff1b500de3f244ea7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003448643787600000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000578c4cb0e472a5462da43c495c3f33000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
32
37
  (0, vitest_1.expect)(salt).toEqual('0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470');
@@ -34,7 +39,7 @@ const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
34
39
  (0, vitest_1.expect)(initializationCallData).toEqual('0x4b6a1419000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000003c000000000000000000000000000000000006efb61d8c9546ff1b500de3f244ea7000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000003448643787600000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000003000000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000578c4cb0e472a5462da43c495c3f33000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000001580a9af0569ad3905b26a703201b358aa0904236642ebe79b22a19d00d3737637d46f725a5427ae45a9569259bf67e1e16b187d7b3ad1ed70138c4f0409677d100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000005ad9ce1f5035fd62ca96cef16adaaf000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
35
40
  });
36
41
  (0, vitest_1.test)('Existing account', () => {
37
- const { factory, factoryData } = (0, nexus_1.getDeployArgs)({
42
+ const deployArgs = (0, nexus_1.getDeployArgs)({
38
43
  owners: {
39
44
  type: 'ecdsa',
40
45
  accounts: [consts_1.accountA, consts_1.accountB],
@@ -46,6 +51,8 @@ const MOCK_MODULE_ADDRESS = '0x28de6501fa86f2e6cd0b33c3aabdaeb4a1b93f3f';
46
51
  intentExecutorInstalled: false,
47
52
  },
48
53
  });
54
+ (0, utils_1.assertNotNull)(deployArgs);
55
+ const { factory, factoryData } = deployArgs;
49
56
  (0, vitest_1.expect)(factory).toEqual('0x00000bb19a3579F4D779215dEf97AFbd0e30DB55');
50
57
  (0, vitest_1.expect)(factoryData).toEqual('0x0d51f0b7000000000000000000000000db8fca317427c3f85b6734af6455f287011c54b50000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000');
51
58
  });
@@ -1,12 +1,9 @@
1
- import type { Abi, Address, Hex, PublicClient } from 'viem';
2
- import { type SmartAccount, type SmartAccountImplementation } from 'viem/account-abstraction';
1
+ import type { Hex } from 'viem';
3
2
  import type { Module } from '../modules/common';
4
- import { type EnableSessionData } from '../modules/validators/smart-sessions';
5
- import type { RhinestoneAccountConfig, Session } from '../types';
6
- import { type ValidatorConfig } from './utils';
3
+ import type { RhinestoneAccountConfig } from '../types';
4
+ import type { ValidatorConfig } from './utils';
7
5
  declare function getAddress(config: RhinestoneAccountConfig): `0x${string}`;
8
6
  declare function packSignature(signature: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex): Promise<`0x${string}`>;
9
- declare function getSessionSmartAccount(client: PublicClient, address: Address, session: Session, validatorAddress: Address, enableData: EnableSessionData | null, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
10
7
  declare function getInstallData(module: Module): `0x${string}`;
11
- export { getAddress, packSignature, getSessionSmartAccount, getInstallData };
8
+ export { getAddress, packSignature, getInstallData };
12
9
  //# sourceMappingURL=passport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"passport.d.ts","sourceRoot":"","sources":["../../../accounts/passport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,GAAG,EAAW,OAAO,EAAE,GAAG,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAWpE,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAK/C,OAAO,EACL,KAAK,iBAAiB,EAIvB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAWhF,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAsBlD;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAQvE;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAuClC;AAmHD,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,sBAAsB,EAAE,cAAc,EAAE,CAAA"}
1
+ {"version":3,"file":"passport.d.ts","sourceRoot":"","sources":["../../../accounts/passport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAoB,GAAG,EAAE,MAAM,MAAM,CAAA;AAUjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAW9C,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAsBlD;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAQvE;AAoCD,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,CAAA"}
@@ -2,13 +2,8 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAddress = getAddress;
4
4
  exports.packSignature = packSignature;
5
- exports.getSessionSmartAccount = getSessionSmartAccount;
6
5
  exports.getInstallData = getInstallData;
7
6
  const viem_1 = require("viem");
8
- const account_abstraction_1 = require("viem/account-abstraction");
9
- const validators_1 = require("../modules/validators");
10
- const smart_sessions_1 = require("../modules/validators/smart-sessions");
11
- const utils_1 = require("./utils");
12
7
  const CREATION_CODE = '0x6054600f3d396034805130553df3fe63906111273d3560e01c14602b57363d3d373d3d3d3d369030545af43d82803e156027573d90f35b3d90fd5b30543d5260203df3';
13
8
  const PASSPORT_FACTORY_ADDRESS = '0xD70C6386Ca012CDeb249B4E46C53d3507D9CBB87';
14
9
  const PASSPORT_MAIN_MODULE = '0x0d1Bf2f4Ab334324665aeb8d481fF92CdE289439';
@@ -39,92 +34,6 @@ async function packSignature(signature, validator, transformSignature = (signatu
39
34
  const packedSig = (0, viem_1.encodePacked)(['address', 'bytes'], [validatorAddress, transformSignature(signature)]);
40
35
  return packedSig;
41
36
  }
42
- async function getSessionSmartAccount(client, address, session, validatorAddress, enableData, sign) {
43
- return await getBaseSmartAccount(address, client, validatorAddress, async () => {
44
- const dummyOpSignature = (0, validators_1.getMockSignature)(session.owners);
45
- if (enableData) {
46
- return (0, validators_1.encodeSmartSessionSignature)(smart_sessions_1.SMART_SESSION_MODE_ENABLE, (0, smart_sessions_1.getPermissionId)(session), dummyOpSignature, enableData);
47
- }
48
- return (0, validators_1.encodeSmartSessionSignature)(smart_sessions_1.SMART_SESSION_MODE_USE, (0, smart_sessions_1.getPermissionId)(session), dummyOpSignature);
49
- }, async (hash) => {
50
- const signature = await sign(hash);
51
- if (enableData) {
52
- return (0, validators_1.encodeSmartSessionSignature)(smart_sessions_1.SMART_SESSION_MODE_ENABLE, (0, smart_sessions_1.getPermissionId)(session), signature, enableData);
53
- }
54
- return (0, validators_1.encodeSmartSessionSignature)(smart_sessions_1.SMART_SESSION_MODE_USE, (0, smart_sessions_1.getPermissionId)(session), signature);
55
- });
56
- }
57
- async function getBaseSmartAccount(address, client, nonceValidatorAddress, getStubSignature, signUserOperation) {
58
- return await (0, account_abstraction_1.toSmartAccount)({
59
- client,
60
- entryPoint: {
61
- abi: account_abstraction_1.entryPoint07Abi,
62
- address: account_abstraction_1.entryPoint07Address,
63
- version: '0.7',
64
- },
65
- async decodeCalls() {
66
- throw new Error('Not implemented');
67
- },
68
- async encodeCalls(calls) {
69
- return (0, utils_1.encode7579Calls)({
70
- mode: {
71
- type: calls.length > 1 ? 'batchcall' : 'call',
72
- revertOnError: false,
73
- selector: '0x',
74
- context: '0x',
75
- },
76
- callData: calls,
77
- });
78
- },
79
- async getAddress() {
80
- return address;
81
- },
82
- async getFactoryArgs() {
83
- return {};
84
- },
85
- async getNonce(args) {
86
- const validatorAddress = nonceValidatorAddress;
87
- const TIMESTAMP_ADJUSTMENT = 16777215n; // max value for size 3
88
- const defaultedKey = (args?.key ?? 0n) % TIMESTAMP_ADJUSTMENT;
89
- const defaultedValidationMode = '0x00';
90
- const key = (0, viem_1.concat)([
91
- (0, viem_1.toHex)(defaultedKey, { size: 3 }),
92
- defaultedValidationMode,
93
- validatorAddress,
94
- ]);
95
- return (0, utils_1.getAccountNonce)(client, {
96
- address,
97
- entryPointAddress: account_abstraction_1.entryPoint07Address,
98
- key: BigInt(key),
99
- });
100
- },
101
- async getStubSignature() {
102
- return getStubSignature();
103
- },
104
- async signMessage() {
105
- throw new Error('Not implemented');
106
- },
107
- async signTypedData() {
108
- throw new Error('Not implemented');
109
- },
110
- async signUserOperation(parameters) {
111
- const { chainId = client.chain?.id, ...userOperation } = parameters;
112
- if (!chainId)
113
- throw new Error('Chain id not found');
114
- const hash = (0, account_abstraction_1.getUserOperationHash)({
115
- userOperation: {
116
- ...userOperation,
117
- sender: userOperation.sender ?? (await this.getAddress()),
118
- signature: '0x',
119
- },
120
- entryPointAddress: account_abstraction_1.entryPoint07Address,
121
- entryPointVersion: '0.7',
122
- chainId: chainId,
123
- });
124
- return await signUserOperation(hash);
125
- },
126
- });
127
- }
128
37
  function encodeImageHash(threshold, accounts) {
129
38
  const sorted = accounts.sort((a, b) => a.account.address.toLowerCase() < b.account.address.toLowerCase() ? -1 : 1);
130
39
  let imageHash = (0, viem_1.encodePacked)(['uint256'], [BigInt(threshold)]);
@@ -1,8 +1,7 @@
1
1
  import { type Abi, type Address, type Chain, type Hex, type PublicClient } from 'viem';
2
2
  import { type SmartAccount, type SmartAccountImplementation } from 'viem/account-abstraction';
3
3
  import type { Module } from '../modules/common';
4
- import type { EnableSessionData } from '../modules/validators/smart-sessions';
5
- import type { OwnerSet, RhinestoneAccountConfig, Session } from '../types';
4
+ import type { OwnerSet, RhinestoneAccountConfig } from '../types';
6
5
  import { type ValidatorConfig } from './utils';
7
6
  declare function getDeployArgs(config: RhinestoneAccountConfig): {
8
7
  factory: `0x${string}`;
@@ -10,6 +9,13 @@ declare function getDeployArgs(config: RhinestoneAccountConfig): {
10
9
  salt: `0x${string}`;
11
10
  implementation: `0x${string}`;
12
11
  initializationCallData: null;
12
+ } | null;
13
+ declare function getV0DeployArgs(config: RhinestoneAccountConfig): {
14
+ factory: `0x${string}`;
15
+ factoryData: `0x${string}`;
16
+ salt: `0x${string}`;
17
+ implementation: `0x${string}`;
18
+ initializationCallData: null;
13
19
  };
14
20
  declare function getAddress(config: RhinestoneAccountConfig): `0x${string}`;
15
21
  declare function getEip712Domain(config: RhinestoneAccountConfig, chain: Chain): {
@@ -22,7 +28,6 @@ declare function getEip712Domain(config: RhinestoneAccountConfig, chain: Chain):
22
28
  declare function getInstallData(module: Module): `0x${string}`;
23
29
  declare function packSignature(signature: Hex, validator: ValidatorConfig, transformSignature?: (signature: Hex) => Hex): Promise<`0x${string}`>;
24
30
  declare function getSmartAccount(client: PublicClient, address: Address, owners: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
25
- declare function getSessionSmartAccount(client: PublicClient, address: Address, session: Session, validatorAddress: Address, enableData: EnableSessionData | null, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
26
31
  declare function getGuardianSmartAccount(client: PublicClient, address: Address, guardians: OwnerSet, validatorAddress: Address, sign: (hash: Hex) => Promise<Hex>): Promise<SmartAccount<SmartAccountImplementation<Abi, "0.7">>>;
27
- export { getEip712Domain, getInstallData, getAddress, packSignature, getDeployArgs, getSmartAccount, getSessionSmartAccount, getGuardianSmartAccount, };
32
+ export { getEip712Domain, getInstallData, getAddress, packSignature, getDeployArgs, getV0DeployArgs, getSmartAccount, getGuardianSmartAccount, };
28
33
  //# sourceMappingURL=safe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EAOV,KAAK,GAAG,EAER,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAQ/C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAA;AAC7E,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAM1E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAgBhF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;EA4FrD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAalD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK;;;;;;EAarE;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAMvE;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAWlC;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,UAAU,EAAE,iBAAiB,GAAG,IAAI,EACpC,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAyClC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAalC;AA0GD,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,uBAAuB,GACxB,CAAA"}
1
+ {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,GAAG,EACR,KAAK,OAAO,EACZ,KAAK,KAAK,EAOV,KAAK,GAAG,EAER,KAAK,YAAY,EAKlB,MAAM,MAAM,CAAA;AACb,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,0BAA0B,EAEhC,MAAM,0BAA0B,CAAA;AAGjC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAM/C,OAAO,KAAK,EAAE,QAAQ,EAAE,uBAAuB,EAAe,MAAM,UAAU,CAAA;AAM9E,OAAO,EAAoC,KAAK,eAAe,EAAE,MAAM,SAAS,CAAA;AAoBhF,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;SAmGrD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB;;;;;;EAgFvD;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,iBAiBlD;AAED,iBAAS,eAAe,CAAC,MAAM,EAAE,uBAAuB,EAAE,KAAK,EAAE,KAAK;;;;;;EAarE;AAED,iBAAS,cAAc,CAAC,MAAM,EAAE,MAAM,iBA2BrC;AAED,iBAAe,aAAa,CAC1B,SAAS,EAAE,GAAG,EACd,SAAS,EAAE,eAAe,EAC1B,kBAAkB,GAAE,CAAC,SAAS,EAAE,GAAG,KAAK,GAA8B,0BAMvE;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,MAAM,EAAE,QAAQ,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAWlC;AAED,iBAAe,uBAAuB,CACpC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,QAAQ,EACnB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC,iEAalC;AA0GD,OAAO,EACL,eAAe,EACf,cAAc,EACd,UAAU,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,eAAe,EACf,uBAAuB,GACxB,CAAA"}