@rhinestone/sdk 0.4.0 → 0.4.2

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 (106) hide show
  1. package/dist/{accounts → src/accounts}/index.d.ts +207 -207
  2. package/dist/{accounts → src/accounts}/index.d.ts.map +1 -1
  3. package/dist/{accounts → src/accounts}/index.js +44 -40
  4. package/dist/{accounts → src/accounts}/nexus.d.ts +304 -304
  5. package/dist/{accounts → src/accounts}/nexus.d.ts.map +1 -1
  6. package/dist/{accounts → src/accounts}/nexus.js +7 -7
  7. package/dist/src/accounts/safe.d.ts +15524 -0
  8. package/dist/src/accounts/safe.d.ts.map +1 -0
  9. package/dist/{accounts → src/accounts}/safe.js +84 -9
  10. package/dist/{accounts → src/accounts}/utils.d.ts +1 -1
  11. package/dist/src/accounts/utils.d.ts.map +1 -0
  12. package/dist/{execution → src/execution}/index.d.ts +1 -1
  13. package/dist/src/execution/index.d.ts.map +1 -0
  14. package/dist/{execution → src/execution}/index.js +7 -8
  15. package/dist/{execution → src/execution}/smart-session.d.ts +2 -3
  16. package/dist/src/execution/smart-session.d.ts.map +1 -0
  17. package/dist/{execution → src/execution}/smart-session.js +4 -6
  18. package/dist/{index.d.ts → src/index.d.ts} +9 -3
  19. package/dist/src/index.d.ts.map +1 -0
  20. package/dist/{index.js → src/index.js} +21 -1
  21. package/dist/src/modules/abi/smart-sessions.d.ts.map +1 -0
  22. package/dist/src/modules/common.d.ts.map +1 -0
  23. package/dist/{modules → src/modules}/index.d.ts +1 -1
  24. package/dist/src/modules/index.d.ts.map +1 -0
  25. package/dist/{modules → src/modules}/index.js +16 -2
  26. package/dist/src/modules/omni-account.d.ts.map +1 -0
  27. package/dist/src/modules/validators/core.d.ts +23 -0
  28. package/dist/src/modules/validators/core.d.ts.map +1 -0
  29. package/dist/src/modules/validators/core.js +112 -0
  30. package/dist/src/modules/validators/index.d.ts +4 -0
  31. package/dist/src/modules/validators/index.d.ts.map +1 -0
  32. package/dist/src/modules/validators/index.js +3 -0
  33. package/dist/{modules/validators.d.ts → src/modules/validators/smart-sessions.d.ts} +4 -6
  34. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -0
  35. package/dist/{modules/validators.js → src/modules/validators/smart-sessions.js} +7 -115
  36. package/dist/{orchestrator → src/orchestrator}/client.d.ts +2 -1
  37. package/dist/src/orchestrator/client.d.ts.map +1 -0
  38. package/dist/{orchestrator → src/orchestrator}/client.js +19 -2
  39. package/dist/src/orchestrator/consts.d.ts.map +1 -0
  40. package/dist/src/orchestrator/error.d.ts.map +1 -0
  41. package/dist/src/orchestrator/index.d.ts +11 -0
  42. package/dist/src/orchestrator/index.d.ts.map +1 -0
  43. package/dist/src/orchestrator/index.js +10 -0
  44. package/dist/{orchestrator → src/orchestrator}/registry.d.ts +5 -1
  45. package/dist/src/orchestrator/registry.d.ts.map +1 -0
  46. package/dist/{orchestrator → src/orchestrator}/registry.js +83 -2
  47. package/dist/{orchestrator → src/orchestrator}/types.d.ts +50 -2
  48. package/dist/src/orchestrator/types.d.ts.map +1 -0
  49. package/dist/{orchestrator → src/orchestrator}/utils.d.ts +6 -2
  50. package/dist/src/orchestrator/utils.d.ts.map +1 -0
  51. package/dist/{orchestrator → src/orchestrator}/utils.js +76 -2
  52. package/dist/{types.d.ts → src/types.d.ts} +5 -4
  53. package/dist/src/types.d.ts.map +1 -0
  54. package/dist/test/modules/validators/smart-sessions.test.d.ts +2 -0
  55. package/dist/test/modules/validators/smart-sessions.test.d.ts.map +1 -0
  56. package/dist/test/modules/validators/smart-sessions.test.js +20 -0
  57. package/package.json +6 -2
  58. package/dist/accounts/safe.d.ts +0 -15
  59. package/dist/accounts/safe.d.ts.map +0 -1
  60. package/dist/accounts/utils.d.ts.map +0 -1
  61. package/dist/examples/abi/weth.d.ts +0 -214
  62. package/dist/examples/abi/weth.d.ts.map +0 -1
  63. package/dist/examples/abi/weth.js +0 -279
  64. package/dist/examples/cross-chain-ss.d.ts +0 -1
  65. package/dist/examples/cross-chain-ss.d.ts.map +0 -1
  66. package/dist/examples/cross-chain-ss.js +0 -171
  67. package/dist/examples/giza.d.ts +0 -1
  68. package/dist/examples/giza.d.ts.map +0 -1
  69. package/dist/examples/giza.js +0 -124
  70. package/dist/examples/omni-account.d.ts +0 -1
  71. package/dist/examples/omni-account.d.ts.map +0 -1
  72. package/dist/examples/omni-account.js +0 -169
  73. package/dist/examples/smart-sessions.d.ts +0 -1
  74. package/dist/examples/smart-sessions.d.ts.map +0 -1
  75. package/dist/examples/smart-sessions.js +0 -216
  76. package/dist/execution/index.d.ts.map +0 -1
  77. package/dist/execution/smart-session.d.ts.map +0 -1
  78. package/dist/index.d.ts.map +0 -1
  79. package/dist/modules/abi/smart-sessions.d.ts.map +0 -1
  80. package/dist/modules/common.d.ts.map +0 -1
  81. package/dist/modules/index.d.ts.map +0 -1
  82. package/dist/modules/omni-account.d.ts.map +0 -1
  83. package/dist/modules/validators.d.ts.map +0 -1
  84. package/dist/orchestrator/client.d.ts.map +0 -1
  85. package/dist/orchestrator/consts.d.ts.map +0 -1
  86. package/dist/orchestrator/error.d.ts.map +0 -1
  87. package/dist/orchestrator/index.d.ts +0 -9
  88. package/dist/orchestrator/index.d.ts.map +0 -1
  89. package/dist/orchestrator/index.js +0 -10
  90. package/dist/orchestrator/registry.d.ts.map +0 -1
  91. package/dist/orchestrator/types.d.ts.map +0 -1
  92. package/dist/orchestrator/utils.d.ts.map +0 -1
  93. package/dist/types.d.ts.map +0 -1
  94. package/dist/{accounts → src/accounts}/utils.js +1 -1
  95. /package/dist/{modules → src/modules}/abi/smart-sessions.d.ts +0 -0
  96. /package/dist/{modules → src/modules}/abi/smart-sessions.js +0 -0
  97. /package/dist/{modules → src/modules}/common.d.ts +0 -0
  98. /package/dist/{modules → src/modules}/common.js +0 -0
  99. /package/dist/{modules → src/modules}/omni-account.d.ts +0 -0
  100. /package/dist/{modules → src/modules}/omni-account.js +0 -0
  101. /package/dist/{orchestrator → src/orchestrator}/consts.d.ts +0 -0
  102. /package/dist/{orchestrator → src/orchestrator}/consts.js +0 -0
  103. /package/dist/{orchestrator → src/orchestrator}/error.d.ts +0 -0
  104. /package/dist/{orchestrator → src/orchestrator}/error.js +0 -0
  105. /package/dist/{orchestrator → src/orchestrator}/types.js +0 -0
  106. /package/dist/{types.js → src/types.js} +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"safe.d.ts","sourceRoot":"","sources":["../../../accounts/safe.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAIP,GAAG,EAEH,YAAY,EAGb,MAAM,MAAM,CAAA;AAeb,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAgBrE,iBAAS,aAAa,CAAC,MAAM,EAAE,uBAAuB;;;;;;;EA0ErD;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;;;;;;;;;;;;;;;;;;;;;;;;;8rBAsJ6vK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAA+mP,CAAC;uCAA6lC,CAAC;;;;;;;;;;;;;;;;sfAA81mB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA3I70iC;AAED,iBAAe,sBAAsB,CACnC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,OAAO,EACzB,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;8rBAoI6vK,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6BAA+mP,CAAC;uCAA6lC,CAAC;;;;;;;;;;;;;;;;sfAA81mB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA7G70iC;AA0ED,iBAAS,mBAAmB,IAAI,KAAK,CAEpC;AAED,iBAAS,gBAAgB,IAAI,KAAK,CAEjC;AAsBD,OAAO,EACL,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,GACpB,CAAA"}
@@ -1,15 +1,18 @@
1
- import { encodeFunctionData, encodePacked, keccak256, parseAbi, zeroAddress, } from 'viem';
1
+ import { concat, encodeFunctionData, encodePacked, keccak256, parseAbi, zeroAddress, } from 'viem';
2
+ import { entryPoint07Abi, entryPoint07Address, getUserOperationHash, toSmartAccount, } from 'viem/account-abstraction';
2
3
  import { getSetup as getModuleSetup } from '../modules';
4
+ import { encodeSmartSessionSignature, getMockSignature, getPermissionId, SMART_SESSION_MODE_USE, } from '../modules/validators';
5
+ import { encode7579Calls, getAccountNonce } from './utils';
3
6
  const SAFE_7579_LAUNCHPAD_ADDRESS = '0x7579011aB74c46090561ea277Ba79D510c6C00ff';
4
7
  const SAFE_7579_ADAPTER_ADDRESS = '0x7579ee8307284f293b1927136486880611f20002';
5
8
  const SAFE_SINGLETON_ADDRESS = '0x29fcb43b46531bca003ddc8fcb67ffe91900c762';
6
9
  const SAFE_PROXY_FACTORY_ADDRESS = '0x4e1dcf7ad4e460cfd30791ccc4f9c8a4f820ec67';
7
10
  const NO_SAFE_OWNER_ADDRESS = '0xbabe99e62d8bcbd3acf5ccbcfcd4f64fe75e5e72';
8
- async function getDeployArgs(config) {
11
+ function getDeployArgs(config) {
9
12
  {
10
13
  const owners = getOwners(config);
11
14
  const threshold = getThreshold(config);
12
- const moduleSetup = await getModuleSetup(config);
15
+ const moduleSetup = getModuleSetup(config);
13
16
  const initData = encodeFunctionData({
14
17
  abi: parseAbi([
15
18
  'function setup(address[] calldata _owners,uint256 _threshold,address to,bytes calldata data,address fallbackHandler,address paymentToken,uint256 payment, address paymentReceiver) external',
@@ -73,18 +76,90 @@ async function getDeployArgs(config) {
73
76
  };
74
77
  }
75
78
  }
76
- async function getSmartAccount() {
77
- throw new Error('Not implemented');
79
+ async function getSmartAccount(client, address, owners, validatorAddress, sign) {
80
+ return getBaseSmartAccount(address, client, validatorAddress, async () => {
81
+ return getMockSignature(owners);
82
+ }, sign);
78
83
  }
79
- async function getSessionSmartAccount() {
80
- throw new Error('Not implemented');
84
+ async function getSessionSmartAccount(client, address, session, validatorAddress, sign) {
85
+ return await getBaseSmartAccount(address, client, validatorAddress, async () => {
86
+ const dummyOpSignature = getMockSignature(session.owners);
87
+ return encodeSmartSessionSignature(SMART_SESSION_MODE_USE, getPermissionId(session), dummyOpSignature);
88
+ }, async (hash) => {
89
+ const signature = await sign(hash);
90
+ return encodeSmartSessionSignature(SMART_SESSION_MODE_USE, getPermissionId(session), signature);
91
+ });
81
92
  }
82
- function get7702InitCalls() {
83
- throw new Error('EIP-7702 is not supported for Safe accounts');
93
+ async function getBaseSmartAccount(address, client, validatorAddress, getStubSignature, signUserOperation) {
94
+ return await toSmartAccount({
95
+ client,
96
+ entryPoint: {
97
+ abi: entryPoint07Abi,
98
+ address: entryPoint07Address,
99
+ version: '0.7',
100
+ },
101
+ async decodeCalls() {
102
+ throw new Error('Not implemented');
103
+ },
104
+ async encodeCalls(calls) {
105
+ return encode7579Calls({
106
+ mode: {
107
+ type: calls.length > 1 ? 'batchcall' : 'call',
108
+ revertOnError: false,
109
+ selector: '0x',
110
+ context: '0x',
111
+ },
112
+ callData: calls,
113
+ });
114
+ },
115
+ async getAddress() {
116
+ return address;
117
+ },
118
+ async getFactoryArgs() {
119
+ return {};
120
+ },
121
+ async getNonce() {
122
+ const key = concat([validatorAddress, '0x00000000']);
123
+ const nonce = await getAccountNonce(client, {
124
+ address,
125
+ entryPointAddress: entryPoint07Address,
126
+ key: BigInt(key),
127
+ });
128
+ return nonce;
129
+ },
130
+ async getStubSignature() {
131
+ return getStubSignature();
132
+ },
133
+ async signMessage() {
134
+ throw new Error('Not implemented');
135
+ },
136
+ async signTypedData() {
137
+ throw new Error('Not implemented');
138
+ },
139
+ async signUserOperation(parameters) {
140
+ const { chainId = client.chain?.id, ...userOperation } = parameters;
141
+ if (!chainId)
142
+ throw new Error('Chain id not found');
143
+ const hash = getUserOperationHash({
144
+ userOperation: {
145
+ ...userOperation,
146
+ sender: userOperation.sender ?? (await this.getAddress()),
147
+ signature: '0x',
148
+ },
149
+ entryPointAddress: entryPoint07Address,
150
+ entryPointVersion: '0.7',
151
+ chainId: chainId,
152
+ });
153
+ return await signUserOperation(hash);
154
+ },
155
+ });
84
156
  }
85
157
  function get7702SmartAccount() {
86
158
  throw new Error('EIP-7702 is not supported for Safe accounts');
87
159
  }
160
+ function get7702InitCalls() {
161
+ throw new Error('EIP-7702 is not supported for Safe accounts');
162
+ }
88
163
  function getOwners(config) {
89
164
  const ownerSet = config.owners;
90
165
  switch (ownerSet.type) {
@@ -1,4 +1,4 @@
1
- import { type Address, type Hex, type Client } from 'viem';
1
+ import type { Address, Client, Hex } from 'viem';
2
2
  import { RhinestoneAccountConfig } from '../types';
3
3
  type CallType = 'call' | 'delegatecall' | 'batchcall';
4
4
  interface ExecutionMode<callType extends CallType> {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../accounts/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAchD,OAAO,EAAiB,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAEjE,KAAK,QAAQ,GAAG,MAAM,GAAG,cAAc,GAAG,WAAW,CAAA;AAErD,UAAU,aAAa,CAAC,QAAQ,SAAS,QAAQ;IAC/C,IAAI,EAAE,QAAQ,CAAA;IACd,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,GAAG,CAAA;IACd,OAAO,CAAC,EAAE,GAAG,CAAA;CACd;AAED,UAAU,oBAAoB,CAAC,QAAQ,SAAS,QAAQ;IACtD,IAAI,EAAE,aAAa,CAAC,QAAQ,CAAC,CAAA;IAC7B,QAAQ,EAAE,SAAS;QACjB,EAAE,EAAE,OAAO,CAAA;QACX,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,EAAE,GAAG,GAAG,SAAS,CAAA;KACvB,EAAE,CAAA;CACJ;AAED,UAAU,qBAAqB;IAC7B,OAAO,EAAE,OAAO,CAAA;IAChB,iBAAiB,EAAE,OAAO,CAAA;IAC1B,GAAG,CAAC,EAAE,MAAM,CAAA;CACb;AA+BD,iBAAS,eAAe,CAAC,QAAQ,SAAS,QAAQ,EAAE,EAClD,IAAI,EACJ,QAAQ,GACT,EAAE,oBAAoB,CAAC,QAAQ,CAAC,GAAG,GAAG,CAuFtC;AAED,iBAAe,eAAe,CAC5B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,qBAAqB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAmCjB;AAED,iBAAS,gBAAgB,CAAC,MAAM,EAAE,uBAAuB,EAAE,MAAM,EAAE,MAAM,6IAuBxE;AAED,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { Address, Chain, Hex } from 'viem';
2
- import { type BundleResult } from '../orchestrator';
2
+ import type { BundleResult } from '../orchestrator';
3
3
  import { RhinestoneAccountConfig, Transaction } from '../types';
4
4
  type TransactionResult = {
5
5
  type: 'userop';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../execution/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAKL,GAAG,EAKJ,MAAM,MAAM,CAAA;AAmBb,OAAO,KAAK,EACV,YAAY,EAGb,MAAM,iBAAiB,CAAA;AAUxB,OAAO,EAEL,uBAAuB,EAIvB,WAAW,EACZ,MAAM,UAAU,CAAA;AAUjB,KAAK,iBAAiB,GAClB;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,IAAI,EAAE,GAAG,CAAA;IACT,WAAW,EAAE,KAAK,CAAA;IAClB,WAAW,EAAE,KAAK,CAAA;CACnB,GACD;IACE,IAAI,EAAE,QAAQ,CAAA;IACd,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,EAAE,KAAK,CAAA;IAClB,WAAW,EAAE,KAAK,CAAA;CACnB,CAAA;AAEL,iBAAe,eAAe,CAC5B,MAAM,EAAE,uBAAuB,EAC/B,WAAW,EAAE,WAAW,8BAuBzB;AAyQD,iBAAe,gBAAgB,CAC7B,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,iBAAiB;;;;;;;;;;;;GAgC1B;AAED,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,CAAA;AAC5C,YAAY,EAAE,iBAAiB,EAAE,CAAA"}
@@ -1,11 +1,10 @@
1
1
  import { createPublicClient, createWalletClient, encodeAbiParameters, encodePacked, http, keccak256, pad, toHex, } from 'viem';
2
2
  import { entryPoint07Address, getUserOperationHash, } from 'viem/account-abstraction';
3
- import { BUNDLE_STATUS_PENDING, BUNDLE_STATUS_FAILED, getOrchestrator, getOrderBundleHash, BUNDLE_STATUS_PARTIALLY_COMPLETED, getEmptyUserOp, } from '../orchestrator';
4
- import { getAddress, isDeployed, deploySource, deployTarget, getBundleInitCode, sign, getSmartSessionSmartAccount, getDeployArgs, } from '../accounts';
5
- import { getOwnerValidator } from '../modules';
3
+ import { deploySource, deployTarget, getAddress, getBundleInitCode, getDeployArgs, getSmartSessionSmartAccount, isDeployed, sign, } from '../accounts';
6
4
  import { getBundlerClient } from '../accounts/utils';
5
+ import { getOwnerValidator } from '../modules';
7
6
  import { getSmartSessionValidator } from '../modules/validators';
8
- import { getTokenBalanceSlot } from '../orchestrator';
7
+ import { BUNDLE_STATUS_FAILED, BUNDLE_STATUS_PARTIALLY_COMPLETED, BUNDLE_STATUS_PENDING, getEmptyUserOp, getOrchestrator, getOrderBundleHash, getTokenBalanceSlot, } from '../orchestrator';
9
8
  import { enableSmartSession, getSessionSignature, hashErc7739, } from './smart-session';
10
9
  const POLLING_INTERVAL = 500;
11
10
  async function sendTransaction(config, transaction) {
@@ -27,7 +26,7 @@ async function sendTransactionInternal(config, sourceChain, targetChain, calls,
27
26
  if (withSession) {
28
27
  await enableSmartSession(sourceChain, config, withSession);
29
28
  }
30
- const accountAddress = await getAddress(config);
29
+ const accountAddress = getAddress(config);
31
30
  if (withSession) {
32
31
  // Smart sessions require a UserOp flow
33
32
  return await sendTransactionAsUserOp(config, sourceChain, targetChain, calls, tokenRequests, accountAddress, withSession);
@@ -74,7 +73,7 @@ async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls,
74
73
  const orchestrator = getOrchestrator(config.rhinestoneApiKey);
75
74
  const orderPath = await orchestrator.getOrderPath(metaIntent, accountAddress);
76
75
  // Deploy the account on the target chain
77
- const { factory, factoryData } = await getDeployArgs(config);
76
+ const { factory, factoryData } = getDeployArgs(config);
78
77
  const deployerAccount = config.deployerAccount;
79
78
  const targetWalletClient = createWalletClient({
80
79
  chain: targetChain,
@@ -118,7 +117,7 @@ async function sendTransactionAsUserOp(config, sourceChain, targetChain, calls,
118
117
  entryPointVersion: '0.7',
119
118
  });
120
119
  orderPath[0].orderBundle.segments[0].witness.userOpHash = userOpHash;
121
- const { hash, appDomainSeparator, contentsType, structHash, orderBundleHash, } = await hashErc7739(sourceChain, orderPath, accountAddress);
120
+ const { hash, appDomainSeparator, contentsType, structHash } = await hashErc7739(sourceChain, orderPath, accountAddress);
122
121
  const signature = await sign(withSession.owners, targetChain, hash);
123
122
  const sessionSignature = getSessionSignature(signature, appDomainSeparator, structHash, contentsType, withSession);
124
123
  const smartSessionValidator = getSmartSessionValidator(config);
@@ -175,7 +174,7 @@ async function sendTransactionAsIntent(config, sourceChain, targetChain, calls,
175
174
  targetSignature: packedSig,
176
175
  };
177
176
  await deployTarget(targetChain, config);
178
- const initCode = await getBundleInitCode(config);
177
+ const initCode = getBundleInitCode(config);
179
178
  const bundleResults = await orchestrator.postSignedOrderBundle([
180
179
  {
181
180
  signedOrderBundle,
@@ -1,13 +1,12 @@
1
- import { Chain, Hex, Address } from 'viem';
2
- import { RhinestoneAccountConfig, Session } from '../types';
1
+ import { Address, Chain, Hex } from 'viem';
3
2
  import { OrderPath } from '../orchestrator';
3
+ import { RhinestoneAccountConfig, Session } from '../types';
4
4
  declare function enableSmartSession(chain: Chain, config: RhinestoneAccountConfig, session: Session): Promise<void>;
5
5
  declare function hashErc7739(sourceChain: Chain, orderPath: OrderPath, accountAddress: Address): Promise<{
6
6
  hash: `0x${string}`;
7
7
  appDomainSeparator: `0x${string}`;
8
8
  contentsType: string;
9
9
  structHash: `0x${string}`;
10
- orderBundleHash: `0x${string}`;
11
10
  }>;
12
11
  declare function getSessionSignature(signature: Hex, appDomainSeparator: Hex, structHash: Hex, contentsType: string, withSession: Session): `0x${string}`;
13
12
  export { enableSmartSession, hashErc7739, getSessionSignature };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-session.d.ts","sourceRoot":"","sources":["../../../execution/smart-session.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAIL,GAAG,EAGJ,MAAM,MAAM,CAAA;AAWb,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM,UAAU,CAAA;AAE3D,iBAAe,kBAAkB,CAC/B,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,uBAAuB,EAC/B,OAAO,EAAE,OAAO,iBAyBjB;AAED,iBAAe,WAAW,CACxB,WAAW,EAAE,KAAK,EAClB,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,OAAO;;;;;GAiExB;AAED,iBAAS,mBAAmB,CAC1B,SAAS,EAAE,GAAG,EACd,kBAAkB,EAAE,GAAG,EACvB,UAAU,EAAE,GAAG,EACf,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,OAAO,iBAkBrB;AAED,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,mBAAmB,EAAE,CAAA"}
@@ -1,8 +1,8 @@
1
- import { http, createPublicClient, encodePacked, keccak256, encodeAbiParameters, } from 'viem';
2
- import { getSmartAccount, getAddress } from '../accounts';
1
+ import { createPublicClient, encodeAbiParameters, encodePacked, http, keccak256, } from 'viem';
2
+ import { getAddress, getSmartAccount } from '../accounts';
3
3
  import { getBundlerClient } from '../accounts/utils';
4
- import { getPermissionId, isSessionEnabled, getSessionAllowedERC7739Content, getAccountEIP712Domain, getEnableSessionCall, } from '../modules/validators';
5
- import { getOrderBundleHash, hashMultichainCompactWithoutDomainSeparator, } from '../orchestrator/utils';
4
+ import { getAccountEIP712Domain, getEnableSessionCall, getPermissionId, getSessionAllowedERC7739Content, isSessionEnabled, } from '../modules/validators';
5
+ import { hashMultichainCompactWithoutDomainSeparator } from '../orchestrator/utils';
6
6
  async function enableSmartSession(chain, config, session) {
7
7
  const publicClient = createPublicClient({
8
8
  chain,
@@ -30,7 +30,6 @@ async function hashErc7739(sourceChain, orderPath, accountAddress) {
30
30
  transport: http(),
31
31
  });
32
32
  const { appDomainSeparator, contentsType } = await getSessionAllowedERC7739Content(sourceChain);
33
- const orderBundleHash = getOrderBundleHash(orderPath[0].orderBundle);
34
33
  // Create hash following ERC-7739 TypedDataSign workflow
35
34
  const typedDataSignTypehash = keccak256(encodePacked(['string'], [
36
35
  'TypedDataSign(MultichainCompact contents,string name,string version,uint256 chainId,address verifyingContract,bytes32 salt)'.concat(contentsType),
@@ -65,7 +64,6 @@ async function hashErc7739(sourceChain, orderPath, accountAddress) {
65
64
  appDomainSeparator,
66
65
  contentsType,
67
66
  structHash,
68
- orderBundleHash,
69
67
  };
70
68
  }
71
69
  function getSessionSignature(signature, appDomainSeparator, structHash, contentsType, withSession) {
@@ -1,5 +1,11 @@
1
- import type { RhinestoneAccountConfig, Transaction, Session } from './types';
2
- import { type TransactionResult } from './execution';
1
+ import type { TransactionResult } from './execution';
2
+ import type { RhinestoneAccountConfig, Session, Transaction } from './types';
3
+ /**
4
+ * Initialize a Rhinestone account
5
+ * Note: accounts are deployed onchain only when the first transaction is sent.
6
+ * @param config Account config (e.g. implementation vendor, owner signers, smart sessions)
7
+ * @returns account
8
+ */
3
9
  declare function createRhinestoneAccount(config: RhinestoneAccountConfig): Promise<{
4
10
  config: RhinestoneAccountConfig;
5
11
  sendTransactions: (transaction: Transaction) => Promise<TransactionResult>;
@@ -16,7 +22,7 @@ declare function createRhinestoneAccount(config: RhinestoneAccountConfig): Promi
16
22
  success: boolean;
17
23
  userOpHash: import("viem").Hash;
18
24
  }>;
19
- getAddress: () => Promise<`0x${string}`>;
25
+ getAddress: () => string;
20
26
  }>;
21
27
  export { createRhinestoneAccount };
22
28
  export type { Session };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAA;AAKpD,OAAO,KAAK,EAAE,uBAAuB,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA;AAE5E;;;;;GAKG;AACH,iBAAe,uBAAuB,CAAC,MAAM,EAAE,uBAAuB;;oCAM7B,WAAW;+BAShB,iBAAiB;;;;;;;;;;;;;sBAQ5B,MAAM;GAU9B;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAA;AAClC,YAAY,EAAE,OAAO,EAAE,CAAA"}
@@ -1,12 +1,32 @@
1
- import { sendTransaction as sendTransactionInternal, waitForExecution as waitForExecutionInternal, } from './execution';
2
1
  import { getAddress as getAddressInternal } from './accounts';
2
+ import { sendTransaction as sendTransactionInternal, waitForExecution as waitForExecutionInternal, } from './execution';
3
+ /**
4
+ * Initialize a Rhinestone account
5
+ * Note: accounts are deployed onchain only when the first transaction is sent.
6
+ * @param config Account config (e.g. implementation vendor, owner signers, smart sessions)
7
+ * @returns account
8
+ */
3
9
  async function createRhinestoneAccount(config) {
10
+ /**
11
+ * Sign and send a transaction
12
+ * @param transaction Transaction to send
13
+ * @returns transaction result object (a bundle ID or a UserOp hash)
14
+ */
4
15
  function sendTransactions(transaction) {
5
16
  return sendTransactionInternal(config, transaction);
6
17
  }
18
+ /**
19
+ * Wait for the transaction execution onchain
20
+ * @param result transaction result object
21
+ * @returns bundle result or a UserOp receipt
22
+ */
7
23
  function waitForExecution(result) {
8
24
  return waitForExecutionInternal(config, result);
9
25
  }
26
+ /**
27
+ * Get account address
28
+ * @returns Address of the smart account
29
+ */
10
30
  function getAddress() {
11
31
  return getAddressInternal(config);
12
32
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/abi/smart-sessions.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8HtB,CAAA;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../modules/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAEnC,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"}
@@ -26,7 +26,7 @@ interface ModeleSetup {
26
26
  attesters: Address[];
27
27
  threshold: number;
28
28
  }
29
- declare function getSetup(config: RhinestoneAccountConfig): Promise<ModeleSetup>;
29
+ declare function getSetup(config: RhinestoneAccountConfig): ModeleSetup;
30
30
  declare function getWebauthnValidatorSignature({ webauthn, signature, usePrecompiled, }: WebauthnValidatorSignature): `0x${string}`;
31
31
  declare function isRip7212SupportedNetwork(chain: Chain): boolean;
32
32
  export { HOOK_ADDRESS, getSetup, getOwnerValidator, getWebauthnValidatorSignature, isRip7212SupportedNetwork, };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAEP,KAAK,EAEL,GAAG,EAEJ,MAAM,MAAM,CAAA;AAYb,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAElD,OAAO,EAGL,MAAM,EACP,MAAM,UAAU,CAAA;AACjB,OAAO,EACL,YAAY,EAMb,MAAM,gBAAgB,CAAA;AACvB,OAAO,EAAE,iBAAiB,EAA4B,MAAM,cAAc,CAAA;AAK1E,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;IACf,QAAQ,EAAE,OAAO,CAAA;IACjB,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB;AAED,iBAAS,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,WAAW,CAiF9D;AAED,iBAAS,6BAA6B,CAAC,EACrC,QAAQ,EACR,SAAS,EACT,cAAsB,GACvB,EAAE,0BAA0B,iBA6C5B;AAED,iBAAS,yBAAyB,CAAC,KAAK,EAAE,KAAK,WAa9C;AAaD,OAAO,EACL,YAAY,EACZ,QAAQ,EACR,iBAAiB,EACjB,6BAA6B,EAC7B,yBAAyB,GAC1B,CAAA"}
@@ -1,9 +1,10 @@
1
1
  import { bytesToHex, encodeAbiParameters, hexToBytes, } from 'viem';
2
2
  import { arbitrum, arbitrumSepolia, base, baseSepolia, optimism, optimismSepolia, polygon, polygonAmoy, } from 'viem/chains';
3
3
  import { MODULE_TYPE_ID_EXECUTOR, MODULE_TYPE_ID_FALLBACK, } from './common';
4
- import { OMNI_ACCOUNT_MOCK_ATTESTER_ADDRESS, RHINESTONE_MODULE_REGISTRY_ADDRESS, RHINESTONE_ATTESTER_ADDRESS, HOOK_ADDRESS, TARGET_MODULE_ADDRESS, SAME_CHAIN_MODULE_ADDRESS, } from './omni-account';
4
+ import { HOOK_ADDRESS, OMNI_ACCOUNT_MOCK_ATTESTER_ADDRESS, RHINESTONE_ATTESTER_ADDRESS, RHINESTONE_MODULE_REGISTRY_ADDRESS, SAME_CHAIN_MODULE_ADDRESS, TARGET_MODULE_ADDRESS, } from './omni-account';
5
5
  import { getOwnerValidator, getSmartSessionValidator } from './validators';
6
- async function getSetup(config) {
6
+ const SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS = '0x12cae64c42f362e7d5a847c2d33388373f629177';
7
+ function getSetup(config) {
7
8
  const ownerValidator = getOwnerValidator(config);
8
9
  const smartSessionValidator = getSmartSessionValidator(config);
9
10
  const validators = [ownerValidator];
@@ -46,6 +47,19 @@ async function getSetup(config) {
46
47
  type: MODULE_TYPE_ID_FALLBACK,
47
48
  },
48
49
  ];
50
+ if (config.account && config.account.type === 'safe') {
51
+ fallbacks.push({
52
+ address: SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS,
53
+ initData: encodeAbiParameters([
54
+ { name: 'selector', type: 'bytes4' },
55
+ { name: 'flags', type: 'bytes1' },
56
+ { name: 'data', type: 'bytes' },
57
+ ], ['0x84b0196e', '0xfe', '0x']),
58
+ deInitData: '0x',
59
+ additionalContext: '0x',
60
+ type: MODULE_TYPE_ID_FALLBACK,
61
+ });
62
+ }
49
63
  const hooks = [];
50
64
  return {
51
65
  validators,
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omni-account.d.ts","sourceRoot":"","sources":["../../../modules/omni-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9B,QAAA,MAAM,kCAAkC,EAAE,OACI,CAAA;AAE9C,QAAA,MAAM,kCAAkC,EAAE,OACI,CAAA;AAC9C,QAAA,MAAM,2BAA2B,EAAE,OACW,CAAA;AAE9C,QAAA,MAAM,YAAY,EAAE,OAAsD,CAAA;AAC1E,QAAA,MAAM,qBAAqB,EAAE,OACiB,CAAA;AAC9C,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAE9C,OAAO,EACL,kCAAkC,EAClC,kCAAkC,EAClC,2BAA2B,EAC3B,YAAY,EACZ,qBAAqB,EACrB,yBAAyB,GAC1B,CAAA"}
@@ -0,0 +1,23 @@
1
+ import { Address, Hex } from 'viem';
2
+ import { OwnerSet, RhinestoneAccountConfig } from '../../types';
3
+ import { Module } from '../common';
4
+ interface PublicKey {
5
+ prefix?: number | undefined;
6
+ x: bigint;
7
+ y: bigint;
8
+ }
9
+ interface WebauthnCredential {
10
+ pubKey: PublicKey | Hex | Uint8Array;
11
+ authenticatorId: string;
12
+ hook?: Address;
13
+ }
14
+ declare function getOwnerValidator(config: RhinestoneAccountConfig): Module;
15
+ declare function getMockSignature(ownerSet: OwnerSet): Hex;
16
+ declare function getValidator(owners: OwnerSet): Module;
17
+ declare function getOwnableValidator({ threshold, owners, }: {
18
+ threshold: number;
19
+ owners: Address[];
20
+ }): Module;
21
+ declare function getWebAuthnValidator(webAuthnCredential: WebauthnCredential): Module;
22
+ export { getOwnerValidator, getValidator, getOwnableValidator, getWebAuthnValidator, getMockSignature, };
23
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../../../modules/validators/core.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAIP,GAAG,EAIJ,MAAM,MAAM,CAAA;AAEb,OAAO,EAAE,QAAQ,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAE/D,OAAO,EAA4B,MAAM,EAAE,MAAM,WAAW,CAAA;AAE5D,UAAU,SAAS;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC3B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;CACV;AAED,UAAU,kBAAkB;IAC1B,MAAM,EAAE,SAAS,GAAG,GAAG,GAAG,UAAU,CAAA;IACpC,eAAe,EAAE,MAAM,CAAA;IACvB,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAYD,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAEzD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAUjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UAarC;AAED,iBAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,OAAO,EAAE,CAAA;CAClB,GAAG,MAAM,CAiBT;AAED,iBAAS,oBAAoB,CAAC,kBAAkB,EAAE,kBAAkB,GAAG,MAAM,CAwD5E;AAeD,OAAO,EACL,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,GACjB,CAAA"}
@@ -0,0 +1,112 @@
1
+ import { bytesToHex, concat, encodeAbiParameters, hexToBytes, keccak256, toHex, } from 'viem';
2
+ import { MODULE_TYPE_ID_VALIDATOR } from '../common';
3
+ const OWNABLE_VALIDATOR_ADDRESS = '0x2483DA3A338895199E5e538530213157e931Bf06';
4
+ const WEBAUTHN_VALIDATOR_ADDRESS = '0x2f167e55d42584f65e2e30a748f41ee75a311414';
5
+ const ECDSA_MOCK_SIGNATURE = '0x81d4b4981670cb18f99f0b4a66446df1bf5b204d24cfcb659bf38ba27a4359b5711649ec2423c5e1247245eba2964679b6a1dbb85c992ae40b9b00c6935b02ff1b';
6
+ const WEBAUTHN_MOCK_SIGNATURE = '0x00000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000001200000000000000000000000000000000000000000000000000000000000000001635bc6d0f68ff895cae8a288ecf7542a6a9cd555df784b73e1e2ea7e9104b1db15e9015d280cb19527881c625fee43fd3a405d5b0d199a8c8e6589a7381209e40000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002549960de5880e8c687434170f6476605b8fe4aeb9a28632c7995cf3ba831d97631d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000f47b2274797065223a22776562617574686e2e676574222c226368616c6c656e6765223a22746278584e465339585f3442797231634d77714b724947422d5f3330613051685a36793775634d30424f45222c226f726967696e223a22687474703a2f2f6c6f63616c686f73743a33303030222c2263726f73734f726967696e223a66616c73652c20226f746865725f6b6579735f63616e5f62655f61646465645f68657265223a22646f206e6f7420636f6d7061726520636c69656e74446174614a534f4e20616761696e737420612074656d706c6174652e205365652068747470733a2f2f676f6f2e676c2f796162506578227d000000000000000000000000';
7
+ function getOwnerValidator(config) {
8
+ return getValidator(config.owners);
9
+ }
10
+ function getMockSignature(ownerSet) {
11
+ switch (ownerSet.type) {
12
+ case 'ecdsa': {
13
+ const owners = ownerSet.accounts.map((account) => account.address);
14
+ const signatures = owners.map(() => ECDSA_MOCK_SIGNATURE);
15
+ return concat(signatures);
16
+ }
17
+ case 'passkey':
18
+ return WEBAUTHN_MOCK_SIGNATURE;
19
+ }
20
+ }
21
+ function getValidator(owners) {
22
+ switch (owners.type) {
23
+ case 'ecdsa':
24
+ return getOwnableValidator({
25
+ threshold: owners.threshold ?? 1,
26
+ owners: owners.accounts.map((account) => account.address),
27
+ });
28
+ case 'passkey':
29
+ return getWebAuthnValidator({
30
+ pubKey: owners.account.publicKey,
31
+ authenticatorId: owners.account.id,
32
+ });
33
+ }
34
+ }
35
+ function getOwnableValidator({ threshold, owners, }) {
36
+ return {
37
+ address: OWNABLE_VALIDATOR_ADDRESS,
38
+ initData: encodeAbiParameters([
39
+ { name: 'threshold', type: 'uint256' },
40
+ { name: 'owners', type: 'address[]' },
41
+ ], [
42
+ BigInt(threshold),
43
+ owners.map((owner) => owner.toLowerCase()).sort(),
44
+ ]),
45
+ deInitData: '0x',
46
+ additionalContext: '0x',
47
+ type: MODULE_TYPE_ID_VALIDATOR,
48
+ };
49
+ }
50
+ function getWebAuthnValidator(webAuthnCredential) {
51
+ let pubKeyX;
52
+ let pubKeyY;
53
+ // Distinguish between PublicKey and Hex / byte encoded public key
54
+ if (typeof webAuthnCredential.pubKey === 'string' ||
55
+ webAuthnCredential.pubKey instanceof Uint8Array) {
56
+ // It's a P256Credential
57
+ const { x, y, prefix } = parsePublicKey(webAuthnCredential.pubKey);
58
+ pubKeyX = x;
59
+ pubKeyY = y;
60
+ if (prefix && prefix !== 4) {
61
+ throw new Error('Only uncompressed public keys are supported');
62
+ }
63
+ }
64
+ else {
65
+ // It's already a PublicKey
66
+ pubKeyX = webAuthnCredential.pubKey.x;
67
+ pubKeyY = webAuthnCredential.pubKey.y;
68
+ }
69
+ return {
70
+ address: WEBAUTHN_VALIDATOR_ADDRESS,
71
+ initData: encodeAbiParameters([
72
+ {
73
+ components: [
74
+ {
75
+ name: 'pubKeyX',
76
+ type: 'uint256',
77
+ },
78
+ {
79
+ name: 'pubKeyY',
80
+ type: 'uint256',
81
+ },
82
+ ],
83
+ type: 'tuple',
84
+ },
85
+ {
86
+ type: 'bytes32',
87
+ name: 'authenticatorIdHash',
88
+ },
89
+ ], [
90
+ {
91
+ pubKeyX,
92
+ pubKeyY,
93
+ },
94
+ keccak256(toHex(webAuthnCredential.authenticatorId)),
95
+ ]),
96
+ deInitData: '0x',
97
+ additionalContext: '0x',
98
+ type: MODULE_TYPE_ID_VALIDATOR,
99
+ };
100
+ }
101
+ function parsePublicKey(publicKey) {
102
+ const bytes = typeof publicKey === 'string' ? hexToBytes(publicKey) : publicKey;
103
+ const offset = bytes.length === 65 ? 1 : 0;
104
+ const x = bytes.slice(offset, 32 + offset);
105
+ const y = bytes.slice(32 + offset, 64 + offset);
106
+ return {
107
+ prefix: bytes.length === 65 ? bytes[0] : undefined,
108
+ x: BigInt(bytesToHex(x)),
109
+ y: BigInt(bytesToHex(y)),
110
+ };
111
+ }
112
+ export { getOwnerValidator, getValidator, getOwnableValidator, getWebAuthnValidator, getMockSignature, };
@@ -0,0 +1,4 @@
1
+ import { getMockSignature, getOwnerValidator } from './core';
2
+ import { encodeSmartSessionSignature, getAccountEIP712Domain, getEnableSessionCall, getPermissionId, getSessionAllowedERC7739Content, getSmartSessionValidator, isSessionEnabled, SMART_SESSION_MODE_ENABLE, SMART_SESSION_MODE_USE, SMART_SESSIONS_VALIDATOR_ADDRESS } from './smart-sessions';
3
+ export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, getMockSignature, getAccountEIP712Domain, isSessionEnabled, getSessionAllowedERC7739Content, };
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../modules/validators/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAA;AAC5D,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,oBAAoB,EACpB,eAAe,EACf,+BAA+B,EAC/B,wBAAwB,EACxB,gBAAgB,EAChB,yBAAyB,EACzB,sBAAsB,EACtB,gCAAgC,EACjC,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,iBAAiB,EACjB,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,+BAA+B,GAChC,CAAA"}
@@ -0,0 +1,3 @@
1
+ import { getMockSignature, getOwnerValidator } from './core';
2
+ import { encodeSmartSessionSignature, getAccountEIP712Domain, getEnableSessionCall, getPermissionId, getSessionAllowedERC7739Content, getSmartSessionValidator, isSessionEnabled, SMART_SESSION_MODE_ENABLE, SMART_SESSION_MODE_USE, SMART_SESSIONS_VALIDATOR_ADDRESS, } from './smart-sessions';
3
+ export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, getMockSignature, getAccountEIP712Domain, isSessionEnabled, getSessionAllowedERC7739Content, };
@@ -1,12 +1,11 @@
1
1
  import { Address, Chain, Hex, PublicClient } from 'viem';
2
- import { OwnerSet, RhinestoneAccountConfig, Session } from '../types';
3
- import { Module } from './common';
2
+ import { RhinestoneAccountConfig, Session } from '../../types';
3
+ import { Module } from '../common';
4
4
  type SmartSessionModeType = typeof SMART_SESSION_MODE_USE | typeof SMART_SESSION_MODE_ENABLE | typeof SMART_SESSION_MODE_UNSAFE_ENABLE;
5
5
  declare const SMART_SESSIONS_VALIDATOR_ADDRESS: Address;
6
6
  declare const SMART_SESSION_MODE_USE = "0x00";
7
7
  declare const SMART_SESSION_MODE_ENABLE = "0x01";
8
8
  declare const SMART_SESSION_MODE_UNSAFE_ENABLE = "0x02";
9
- declare function getOwnerValidator(config: RhinestoneAccountConfig): Module;
10
9
  declare function getEnableSessionCall(chain: Chain, session: Session): Promise<{
11
10
  to: `0x${string}`;
12
11
  data: `0x${string}`;
@@ -19,7 +18,6 @@ declare function getSmartSessionValidator(config: RhinestoneAccountConfig): Modu
19
18
  declare function isSessionEnabled(client: PublicClient, address: Address, permissionId: Hex): Promise<boolean>;
20
19
  declare function encodeSmartSessionSignature(mode: SmartSessionModeType, permissionId: Hex, signature: Hex): `0x${string}`;
21
20
  declare function getPermissionId(session: Session): `0x${string}`;
22
- declare function getMockSinature(ownerSet: OwnerSet): Hex;
23
21
  declare function getAccountEIP712Domain(client: PublicClient, account: Address): Promise<{
24
22
  name: string;
25
23
  version: string;
@@ -27,5 +25,5 @@ declare function getAccountEIP712Domain(client: PublicClient, account: Address):
27
25
  verifyingContract: `0x${string}`;
28
26
  salt: `0x${string}`;
29
27
  }>;
30
- export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, getOwnerValidator, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, getMockSinature, getAccountEIP712Domain, isSessionEnabled, getSessionAllowedERC7739Content, };
31
- //# sourceMappingURL=validators.d.ts.map
28
+ export { SMART_SESSION_MODE_USE, SMART_SESSION_MODE_ENABLE, SMART_SESSIONS_VALIDATOR_ADDRESS, getSmartSessionValidator, getEnableSessionCall, encodeSmartSessionSignature, getPermissionId, getAccountEIP712Domain, isSessionEnabled, getSessionAllowedERC7739Content, };
29
+ //# sourceMappingURL=smart-sessions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-sessions.d.ts","sourceRoot":"","sources":["../../../../modules/validators/smart-sessions.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EACP,KAAK,EAKL,GAAG,EAIH,YAAY,EAKb,MAAM,MAAM,CAAA;AAMb,OAAO,EAEL,uBAAuB,EACvB,OAAO,EAER,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA4B,MAAM,EAAE,MAAM,WAAW,CAAA;AA6D5D,KAAK,oBAAoB,GACrB,OAAO,sBAAsB,GAC7B,OAAO,yBAAyB,GAChC,OAAO,gCAAgC,CAAA;AAE3C,QAAA,MAAM,gCAAgC,EAAE,OACM,CAAA;AAE9C,QAAA,MAAM,sBAAsB,SAAS,CAAA;AACrC,QAAA,MAAM,yBAAyB,SAAS,CAAA;AACxC,QAAA,MAAM,gCAAgC,SAAS,CAAA;AAyB/C,iBAAe,oBAAoB,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO;;;GAsBjE;AA6BD,iBAAe,+BAA+B,CAAC,KAAK,EAAE,KAAK;;;GAgB1D;AAyDD,iBAAS,wBAAwB,CAC/B,MAAM,EAAE,uBAAuB,GAC9B,MAAM,GAAG,IAAI,CAWf;AA8KD,iBAAe,gBAAgB,CAC7B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,GAAG,oBAiClB;AAED,iBAAS,2BAA2B,CAClC,IAAI,EAAE,oBAAoB,EAC1B,YAAY,EAAE,GAAG,EACjB,SAAS,EAAE,GAAG,iBAcf;AAED,iBAAS,eAAe,CAAC,OAAO,EAAE,OAAO,iBAyBxC;AAED,iBAAe,sBAAsB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO;;;;;;GAoD3E;AAED,OAAO,EACL,sBAAsB,EACtB,yBAAyB,EACzB,gCAAgC,EAChC,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,+BAA+B,GAChC,CAAA"}