@rhinestone/sdk 1.0.41-alpha.0 → 1.0.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (208) hide show
  1. package/dist/src/accounts/error.d.ts +114 -0
  2. package/dist/src/accounts/error.d.ts.map +1 -0
  3. package/dist/src/accounts/error.js +174 -0
  4. package/dist/src/accounts/index.d.ts +50 -0
  5. package/dist/src/accounts/index.d.ts.map +1 -0
  6. package/dist/src/accounts/index.js +669 -0
  7. package/dist/src/accounts/index.test.d.ts +2 -0
  8. package/dist/src/accounts/index.test.d.ts.map +1 -0
  9. package/dist/src/accounts/index.test.js +33 -0
  10. package/dist/src/accounts/json-rpc/index.d.ts +5 -0
  11. package/dist/src/accounts/json-rpc/index.d.ts.map +1 -0
  12. package/dist/src/accounts/json-rpc/index.js +20 -0
  13. package/dist/src/accounts/json-rpc/index.test.d.ts +2 -0
  14. package/dist/src/accounts/json-rpc/index.test.d.ts.map +1 -0
  15. package/dist/src/accounts/json-rpc/index.test.js +33 -0
  16. package/dist/src/accounts/json-rpc/providers.d.ts +5 -0
  17. package/dist/src/accounts/json-rpc/providers.d.ts.map +1 -0
  18. package/dist/src/accounts/json-rpc/providers.js +22 -0
  19. package/dist/src/accounts/json-rpc/providers.test.d.ts +2 -0
  20. package/dist/src/accounts/json-rpc/providers.test.d.ts.map +1 -0
  21. package/dist/src/accounts/json-rpc/providers.test.js +43 -0
  22. package/dist/src/accounts/kernel.d.ts +29 -0
  23. package/dist/src/accounts/kernel.d.ts.map +1 -0
  24. package/dist/src/accounts/kernel.js +297 -0
  25. package/dist/src/accounts/kernel.test.d.ts +2 -0
  26. package/dist/src/accounts/kernel.test.d.ts.map +1 -0
  27. package/dist/src/accounts/kernel.test.js +132 -0
  28. package/dist/src/accounts/nexus.d.ts +35 -0
  29. package/dist/src/accounts/nexus.d.ts.map +1 -0
  30. package/dist/src/accounts/nexus.js +471 -0
  31. package/dist/src/accounts/nexus.test.d.ts +2 -0
  32. package/dist/src/accounts/nexus.test.d.ts.map +1 -0
  33. package/dist/src/accounts/nexus.test.js +118 -0
  34. package/dist/src/accounts/passport.d.ts +12 -0
  35. package/dist/src/accounts/passport.d.ts.map +1 -0
  36. package/dist/src/accounts/passport.js +173 -0
  37. package/dist/src/accounts/safe.d.ts +35 -0
  38. package/dist/src/accounts/safe.d.ts.map +1 -0
  39. package/dist/src/accounts/safe.js +365 -0
  40. package/dist/src/accounts/safe.test.d.ts +2 -0
  41. package/dist/src/accounts/safe.test.d.ts.map +1 -0
  42. package/dist/src/accounts/safe.test.js +118 -0
  43. package/dist/src/accounts/signing/common.d.ts +27 -0
  44. package/dist/src/accounts/signing/common.d.ts.map +1 -0
  45. package/dist/src/accounts/signing/common.js +183 -0
  46. package/dist/src/accounts/signing/message.d.ts +5 -0
  47. package/dist/src/accounts/signing/message.d.ts.map +1 -0
  48. package/dist/src/accounts/signing/message.js +47 -0
  49. package/dist/src/accounts/signing/passkeys.d.ts +36 -0
  50. package/dist/src/accounts/signing/passkeys.d.ts.map +1 -0
  51. package/dist/src/accounts/signing/passkeys.js +125 -0
  52. package/dist/src/accounts/signing/passkeys.test.d.ts +2 -0
  53. package/dist/src/accounts/signing/passkeys.test.d.ts.map +1 -0
  54. package/dist/src/accounts/signing/passkeys.test.js +88 -0
  55. package/dist/src/accounts/signing/typedData.d.ts +5 -0
  56. package/dist/src/accounts/signing/typedData.d.ts.map +1 -0
  57. package/dist/src/accounts/signing/typedData.js +35 -0
  58. package/dist/src/accounts/startale.d.ts +27 -0
  59. package/dist/src/accounts/startale.d.ts.map +1 -0
  60. package/dist/src/accounts/startale.js +116 -0
  61. package/dist/src/accounts/startale.test.d.ts +2 -0
  62. package/dist/src/accounts/startale.test.d.ts.map +1 -0
  63. package/dist/src/accounts/startale.test.js +92 -0
  64. package/dist/src/accounts/utils.d.ts +33 -0
  65. package/dist/src/accounts/utils.d.ts.map +1 -0
  66. package/dist/src/accounts/utils.js +208 -0
  67. package/dist/src/accounts/utils.test.d.ts +2 -0
  68. package/dist/src/accounts/utils.test.d.ts.map +1 -0
  69. package/dist/src/accounts/utils.test.js +49 -0
  70. package/dist/src/accounts/walletClient.d.ts +34 -0
  71. package/dist/src/accounts/walletClient.d.ts.map +1 -0
  72. package/dist/src/accounts/walletClient.js +121 -0
  73. package/dist/src/actions/compact.d.ts +13 -0
  74. package/dist/src/actions/compact.d.ts.map +1 -0
  75. package/dist/src/actions/compact.js +210 -0
  76. package/dist/src/actions/deployment.d.ts +19 -0
  77. package/dist/src/actions/deployment.d.ts.map +1 -0
  78. package/dist/src/actions/deployment.js +78 -0
  79. package/dist/src/actions/ecdsa.d.ts +35 -0
  80. package/dist/src/actions/ecdsa.d.ts.map +1 -0
  81. package/dist/src/actions/ecdsa.js +114 -0
  82. package/dist/src/actions/ecdsa.test.d.ts +2 -0
  83. package/dist/src/actions/ecdsa.test.d.ts.map +1 -0
  84. package/dist/src/actions/ecdsa.test.js +99 -0
  85. package/dist/src/actions/index.d.ts +17 -0
  86. package/dist/src/actions/index.d.ts.map +1 -0
  87. package/dist/src/actions/index.js +53 -0
  88. package/dist/src/actions/mfa.d.ts +37 -0
  89. package/dist/src/actions/mfa.d.ts.map +1 -0
  90. package/dist/src/actions/mfa.js +133 -0
  91. package/dist/src/actions/passkeys.d.ts +37 -0
  92. package/dist/src/actions/passkeys.d.ts.map +1 -0
  93. package/dist/src/actions/passkeys.js +129 -0
  94. package/dist/src/actions/passkeys.test.d.ts +2 -0
  95. package/dist/src/actions/passkeys.test.d.ts.map +1 -0
  96. package/dist/src/actions/passkeys.test.js +54 -0
  97. package/dist/src/actions/recovery.d.ts +33 -0
  98. package/dist/src/actions/recovery.d.ts.map +1 -0
  99. package/dist/src/actions/recovery.js +193 -0
  100. package/dist/src/actions/recovery.test.d.ts +2 -0
  101. package/dist/src/actions/recovery.test.d.ts.map +1 -0
  102. package/dist/src/actions/recovery.test.js +168 -0
  103. package/dist/src/actions/smart-sessions.d.ts +14 -0
  104. package/dist/src/actions/smart-sessions.d.ts.map +1 -0
  105. package/dist/src/actions/smart-sessions.js +16 -0
  106. package/dist/src/errors/index.d.ts +5 -0
  107. package/dist/src/errors/index.d.ts.map +1 -0
  108. package/dist/src/errors/index.js +53 -0
  109. package/dist/src/execution/compact.d.ts +151 -0
  110. package/dist/src/execution/compact.d.ts.map +1 -0
  111. package/dist/src/execution/compact.js +122 -0
  112. package/dist/src/execution/error.d.ts +61 -0
  113. package/dist/src/execution/error.d.ts.map +1 -0
  114. package/dist/src/execution/error.js +87 -0
  115. package/dist/src/execution/index.d.ts +41 -0
  116. package/dist/src/execution/index.d.ts.map +1 -0
  117. package/dist/src/execution/index.js +233 -0
  118. package/dist/src/execution/permit2.d.ts +148 -0
  119. package/dist/src/execution/permit2.d.ts.map +1 -0
  120. package/dist/src/execution/permit2.js +291 -0
  121. package/dist/src/execution/singleChainOps.d.ts +28 -0
  122. package/dist/src/execution/singleChainOps.d.ts.map +1 -0
  123. package/dist/src/execution/singleChainOps.js +32 -0
  124. package/dist/src/execution/smart-session.d.ts +13 -0
  125. package/dist/src/execution/smart-session.d.ts.map +1 -0
  126. package/dist/src/execution/smart-session.js +178 -0
  127. package/dist/src/execution/types.d.ts +36 -0
  128. package/dist/src/execution/types.d.ts.map +1 -0
  129. package/dist/src/execution/types.js +2 -0
  130. package/dist/src/execution/utils.d.ts +83 -0
  131. package/dist/src/execution/utils.d.ts.map +1 -0
  132. package/dist/src/execution/utils.js +705 -0
  133. package/dist/src/index.d.ts +74 -0
  134. package/dist/src/index.d.ts.map +1 -0
  135. package/dist/src/index.js +317 -0
  136. package/dist/src/modules/abi/smart-sessions.d.ts +104 -0
  137. package/dist/src/modules/abi/smart-sessions.d.ts.map +1 -0
  138. package/dist/src/modules/abi/smart-sessions.js +131 -0
  139. package/dist/src/modules/chain-abstraction.d.ts +5 -0
  140. package/dist/src/modules/chain-abstraction.d.ts.map +1 -0
  141. package/dist/src/modules/chain-abstraction.js +7 -0
  142. package/dist/src/modules/common.d.ts +30 -0
  143. package/dist/src/modules/common.d.ts.map +1 -0
  144. package/dist/src/modules/common.js +42 -0
  145. package/dist/src/modules/index.d.ts +10 -0
  146. package/dist/src/modules/index.d.ts.map +1 -0
  147. package/dist/src/modules/index.js +94 -0
  148. package/dist/src/modules/index.test.d.ts +2 -0
  149. package/dist/src/modules/index.test.d.ts.map +1 -0
  150. package/dist/src/modules/index.test.js +81 -0
  151. package/dist/src/modules/legacy.d.ts +10 -0
  152. package/dist/src/modules/legacy.d.ts.map +1 -0
  153. package/dist/src/modules/legacy.js +65 -0
  154. package/dist/src/modules/read.d.ts +9 -0
  155. package/dist/src/modules/read.d.ts.map +1 -0
  156. package/dist/src/modules/read.js +125 -0
  157. package/dist/src/modules/validators/core.d.ts +29 -0
  158. package/dist/src/modules/validators/core.d.ts.map +1 -0
  159. package/dist/src/modules/validators/core.js +278 -0
  160. package/dist/src/modules/validators/core.test.d.ts +2 -0
  161. package/dist/src/modules/validators/core.test.d.ts.map +1 -0
  162. package/dist/src/modules/validators/core.test.js +101 -0
  163. package/dist/src/modules/validators/index.d.ts +4 -0
  164. package/dist/src/modules/validators/index.d.ts.map +1 -0
  165. package/dist/src/modules/validators/index.js +15 -0
  166. package/dist/src/modules/validators/smart-sessions.d.ts +96 -0
  167. package/dist/src/modules/validators/smart-sessions.d.ts.map +1 -0
  168. package/dist/src/modules/validators/smart-sessions.js +497 -0
  169. package/dist/src/modules/validators/smart-sessions.test.d.ts +2 -0
  170. package/dist/src/modules/validators/smart-sessions.test.d.ts.map +1 -0
  171. package/dist/src/modules/validators/smart-sessions.test.js +219 -0
  172. package/dist/src/orchestrator/client.d.ts +27 -0
  173. package/dist/src/orchestrator/client.d.ts.map +1 -0
  174. package/dist/src/orchestrator/client.js +354 -0
  175. package/dist/src/orchestrator/consts.d.ts +5 -0
  176. package/dist/src/orchestrator/consts.d.ts.map +1 -0
  177. package/dist/src/orchestrator/consts.js +9 -0
  178. package/dist/src/orchestrator/error.d.ts +232 -0
  179. package/dist/src/orchestrator/error.d.ts.map +1 -0
  180. package/dist/src/orchestrator/error.js +268 -0
  181. package/dist/src/orchestrator/index.d.ts +10 -0
  182. package/dist/src/orchestrator/index.d.ts.map +1 -0
  183. package/dist/src/orchestrator/index.js +57 -0
  184. package/dist/src/orchestrator/registry.d.ts +22 -0
  185. package/dist/src/orchestrator/registry.d.ts.map +1 -0
  186. package/dist/src/orchestrator/registry.js +121 -0
  187. package/dist/src/orchestrator/registry.test.d.ts +2 -0
  188. package/dist/src/orchestrator/registry.test.d.ts.map +1 -0
  189. package/dist/src/orchestrator/registry.test.js +150 -0
  190. package/dist/src/orchestrator/types.d.ts +295 -0
  191. package/dist/src/orchestrator/types.d.ts.map +1 -0
  192. package/dist/src/orchestrator/types.js +17 -0
  193. package/dist/src/orchestrator/utils.d.ts +3 -0
  194. package/dist/src/orchestrator/utils.d.ts.map +1 -0
  195. package/dist/src/orchestrator/utils.js +24 -0
  196. package/dist/src/types.d.ts +284 -0
  197. package/dist/src/types.d.ts.map +1 -0
  198. package/dist/src/types.js +2 -0
  199. package/dist/src/utils/index.d.ts +26 -0
  200. package/dist/src/utils/index.d.ts.map +1 -0
  201. package/dist/src/utils/index.js +63 -0
  202. package/dist/test/consts.d.ts +10 -0
  203. package/dist/test/consts.d.ts.map +1 -0
  204. package/dist/test/consts.js +22 -0
  205. package/dist/test/utils/utils.d.ts +5 -0
  206. package/dist/test/utils/utils.d.ts.map +1 -0
  207. package/dist/test/utils/utils.js +20 -0
  208. package/package.json +1 -1
@@ -0,0 +1,30 @@
1
+ import type { Address, Hex } from 'viem';
2
+ import type { ModuleInput } from '../types';
3
+ interface ModeleSetup {
4
+ validators: Module[];
5
+ executors: Module[];
6
+ fallbacks: Module[];
7
+ hooks: Module[];
8
+ }
9
+ type ModuleTypeId = typeof MODULE_TYPE_ID_VALIDATOR | typeof MODULE_TYPE_ID_EXECUTOR | typeof MODULE_TYPE_ID_FALLBACK | typeof MODULE_TYPE_ID_HOOK;
10
+ type ModuleType = typeof MODULE_TYPE_VALIDATOR | typeof MODULE_TYPE_EXECUTOR | typeof MODULE_TYPE_FALLBACK | typeof MODULE_TYPE_HOOK;
11
+ interface Module {
12
+ address: Address;
13
+ initData: Hex;
14
+ deInitData: Hex;
15
+ additionalContext: Hex;
16
+ type: ModuleTypeId;
17
+ }
18
+ declare const MODULE_TYPE_ID_VALIDATOR = 1n;
19
+ declare const MODULE_TYPE_ID_EXECUTOR = 2n;
20
+ declare const MODULE_TYPE_ID_FALLBACK = 3n;
21
+ declare const MODULE_TYPE_ID_HOOK = 4n;
22
+ declare const MODULE_TYPE_VALIDATOR = "validator";
23
+ declare const MODULE_TYPE_EXECUTOR = "executor";
24
+ declare const MODULE_TYPE_FALLBACK = "fallback";
25
+ declare const MODULE_TYPE_HOOK = "hook";
26
+ declare function toModuleTypeId(type: ModuleType): ModuleTypeId;
27
+ declare function getModule(module: ModuleInput): Module;
28
+ export { MODULE_TYPE_ID_VALIDATOR, MODULE_TYPE_ID_EXECUTOR, MODULE_TYPE_ID_FALLBACK, MODULE_TYPE_ID_HOOK, MODULE_TYPE_VALIDATOR, MODULE_TYPE_EXECUTOR, MODULE_TYPE_FALLBACK, MODULE_TYPE_HOOK, toModuleTypeId, getModule, };
29
+ export type { Module, ModeleSetup, ModuleType, ModuleTypeId };
30
+ //# sourceMappingURL=common.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../modules/common.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AACxC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAE3C,UAAU,WAAW;IACnB,UAAU,EAAE,MAAM,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,KAAK,EAAE,MAAM,EAAE,CAAA;CAChB;AAED,KAAK,YAAY,GACb,OAAO,wBAAwB,GAC/B,OAAO,uBAAuB,GAC9B,OAAO,uBAAuB,GAC9B,OAAO,mBAAmB,CAAA;AAE9B,KAAK,UAAU,GACX,OAAO,qBAAqB,GAC5B,OAAO,oBAAoB,GAC3B,OAAO,oBAAoB,GAC3B,OAAO,gBAAgB,CAAA;AAE3B,UAAU,MAAM;IACd,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,GAAG,CAAA;IACb,UAAU,EAAE,GAAG,CAAA;IACf,iBAAiB,EAAE,GAAG,CAAA;IACtB,IAAI,EAAE,YAAY,CAAA;CACnB;AAED,QAAA,MAAM,wBAAwB,KAAK,CAAA;AACnC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAClC,QAAA,MAAM,mBAAmB,KAAK,CAAA;AAE9B,QAAA,MAAM,qBAAqB,cAAc,CAAA;AACzC,QAAA,MAAM,oBAAoB,aAAa,CAAA;AACvC,QAAA,MAAM,oBAAoB,aAAa,CAAA;AACvC,QAAA,MAAM,gBAAgB,SAAS,CAAA;AAE/B,iBAAS,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,YAAY,CAWtD;AAED,iBAAS,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,MAAM,CAQ9C;AAED,OAAO,EACL,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,cAAc,EACd,SAAS,GACV,CAAA;AACD,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,CAAA"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MODULE_TYPE_HOOK = exports.MODULE_TYPE_FALLBACK = exports.MODULE_TYPE_EXECUTOR = exports.MODULE_TYPE_VALIDATOR = exports.MODULE_TYPE_ID_HOOK = exports.MODULE_TYPE_ID_FALLBACK = exports.MODULE_TYPE_ID_EXECUTOR = exports.MODULE_TYPE_ID_VALIDATOR = void 0;
4
+ exports.toModuleTypeId = toModuleTypeId;
5
+ exports.getModule = getModule;
6
+ const MODULE_TYPE_ID_VALIDATOR = 1n;
7
+ exports.MODULE_TYPE_ID_VALIDATOR = MODULE_TYPE_ID_VALIDATOR;
8
+ const MODULE_TYPE_ID_EXECUTOR = 2n;
9
+ exports.MODULE_TYPE_ID_EXECUTOR = MODULE_TYPE_ID_EXECUTOR;
10
+ const MODULE_TYPE_ID_FALLBACK = 3n;
11
+ exports.MODULE_TYPE_ID_FALLBACK = MODULE_TYPE_ID_FALLBACK;
12
+ const MODULE_TYPE_ID_HOOK = 4n;
13
+ exports.MODULE_TYPE_ID_HOOK = MODULE_TYPE_ID_HOOK;
14
+ const MODULE_TYPE_VALIDATOR = 'validator';
15
+ exports.MODULE_TYPE_VALIDATOR = MODULE_TYPE_VALIDATOR;
16
+ const MODULE_TYPE_EXECUTOR = 'executor';
17
+ exports.MODULE_TYPE_EXECUTOR = MODULE_TYPE_EXECUTOR;
18
+ const MODULE_TYPE_FALLBACK = 'fallback';
19
+ exports.MODULE_TYPE_FALLBACK = MODULE_TYPE_FALLBACK;
20
+ const MODULE_TYPE_HOOK = 'hook';
21
+ exports.MODULE_TYPE_HOOK = MODULE_TYPE_HOOK;
22
+ function toModuleTypeId(type) {
23
+ switch (type) {
24
+ case MODULE_TYPE_VALIDATOR:
25
+ return MODULE_TYPE_ID_VALIDATOR;
26
+ case MODULE_TYPE_EXECUTOR:
27
+ return MODULE_TYPE_ID_EXECUTOR;
28
+ case MODULE_TYPE_FALLBACK:
29
+ return MODULE_TYPE_ID_FALLBACK;
30
+ case MODULE_TYPE_HOOK:
31
+ return MODULE_TYPE_ID_HOOK;
32
+ }
33
+ }
34
+ function getModule(module) {
35
+ return {
36
+ type: toModuleTypeId(module.type),
37
+ address: module.address,
38
+ initData: module.initData ?? '0x',
39
+ deInitData: module.deInitData ?? '0x',
40
+ additionalContext: module.additionalContext ?? '0x',
41
+ };
42
+ }
@@ -0,0 +1,10 @@
1
+ import { type Chain } from 'viem';
2
+ import type { RhinestoneAccountConfig, RhinestoneConfig } from '../types';
3
+ import { type ModeleSetup, type Module } from './common';
4
+ import { getOwners, getValidators } from './read';
5
+ import { getOwnerValidator } from './validators';
6
+ declare function getSetup(config: RhinestoneAccountConfig): ModeleSetup;
7
+ declare function getIntentExecutor(config: RhinestoneConfig): Module;
8
+ declare function isRip7212SupportedNetwork(chain: Chain): boolean;
9
+ export { getSetup, getOwnerValidator, getOwners, getIntentExecutor, getValidators, isRip7212SupportedNetwork, };
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,KAAK,EAAuB,MAAM,MAAM,CAAA;AAWpE,OAAO,KAAK,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAKzE,OAAO,EAQL,KAAK,WAAW,EAChB,KAAK,MAAM,EACZ,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AACjD,OAAO,EAAE,iBAAiB,EAA4B,MAAM,cAAc,CAAA;AAM1E,iBAAS,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,WAAW,CA0E9D;AAED,iBAAS,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,GAAG,MAAM,CAY3D;AAED,iBAAS,yBAAyB,CAAC,KAAK,EAAE,KAAK,WAW9C;AAED,OAAO,EACL,QAAQ,EACR,iBAAiB,EACjB,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,yBAAyB,GAC1B,CAAA"}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getValidators = exports.getOwners = exports.getOwnerValidator = void 0;
4
+ exports.getSetup = getSetup;
5
+ exports.getIntentExecutor = getIntentExecutor;
6
+ exports.isRip7212SupportedNetwork = isRip7212SupportedNetwork;
7
+ const viem_1 = require("viem");
8
+ const chains_1 = require("viem/chains");
9
+ const chain_abstraction_1 = require("./chain-abstraction");
10
+ const common_1 = require("./common");
11
+ const read_1 = require("./read");
12
+ Object.defineProperty(exports, "getOwners", { enumerable: true, get: function () { return read_1.getOwners; } });
13
+ Object.defineProperty(exports, "getValidators", { enumerable: true, get: function () { return read_1.getValidators; } });
14
+ const validators_1 = require("./validators");
15
+ Object.defineProperty(exports, "getOwnerValidator", { enumerable: true, get: function () { return validators_1.getOwnerValidator; } });
16
+ const core_1 = require("./validators/core");
17
+ const SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS = '0x000000000052e9685932845660777DF43C2dC496';
18
+ function getSetup(config) {
19
+ const ownerValidator = (0, validators_1.getOwnerValidator)(config);
20
+ const smartSessionValidator = (0, validators_1.getSmartSessionValidator)(config);
21
+ const validators = [ownerValidator];
22
+ if (smartSessionValidator) {
23
+ validators.push(smartSessionValidator);
24
+ }
25
+ if (config.recovery) {
26
+ const socialRecoveryValidator = (0, core_1.getSocialRecoveryValidator)(config.recovery.guardians, config.recovery.threshold);
27
+ validators.push(socialRecoveryValidator);
28
+ }
29
+ const intentExecutor = getIntentExecutor(config);
30
+ const executors = [intentExecutor];
31
+ const fallbacks = [];
32
+ // Some accounts (e.g. Safe) need a fallback method to support smart sessions
33
+ if (config.experimental_sessions) {
34
+ const { enabled, compatibilityFallback } = config.experimental_sessions;
35
+ if (enabled && config.account && config.account.type === 'safe') {
36
+ fallbacks.push({
37
+ address: compatibilityFallback ?? SMART_SESSION_COMPATIBILITY_FALLBACK_ADDRESS,
38
+ initData: (0, viem_1.encodeAbiParameters)([
39
+ { name: 'selector', type: 'bytes4' },
40
+ { name: 'flags', type: 'bytes1' },
41
+ { name: 'data', type: 'bytes' },
42
+ ], ['0x84b0196e', '0xfe', '0x']),
43
+ deInitData: '0x',
44
+ additionalContext: '0x',
45
+ type: common_1.MODULE_TYPE_ID_FALLBACK,
46
+ });
47
+ }
48
+ }
49
+ const hooks = [];
50
+ if (config.modules) {
51
+ validators.push(...config.modules
52
+ .filter((m) => m.type === common_1.MODULE_TYPE_VALIDATOR)
53
+ .map((m) => (0, common_1.getModule)(m)));
54
+ executors.push(...config.modules
55
+ .filter((m) => m.type === common_1.MODULE_TYPE_EXECUTOR)
56
+ .map((m) => (0, common_1.getModule)(m)));
57
+ fallbacks.push(...config.modules
58
+ .filter((m) => m.type === common_1.MODULE_TYPE_FALLBACK)
59
+ .map((m) => (0, common_1.getModule)(m)));
60
+ hooks.push(...config.modules
61
+ .filter((m) => m.type === common_1.MODULE_TYPE_HOOK)
62
+ .map((m) => (0, common_1.getModule)(m)));
63
+ }
64
+ return {
65
+ validators,
66
+ executors,
67
+ fallbacks,
68
+ hooks,
69
+ };
70
+ }
71
+ function getIntentExecutor(config) {
72
+ const intentExecutorAddress = config.useDevContracts === true
73
+ ? chain_abstraction_1.INTENT_EXECUTOR_ADDRESS_DEV
74
+ : chain_abstraction_1.INTENT_EXECUTOR_ADDRESS;
75
+ return {
76
+ address: intentExecutorAddress,
77
+ initData: '0x',
78
+ deInitData: '0x',
79
+ additionalContext: '0x',
80
+ type: common_1.MODULE_TYPE_ID_EXECUTOR,
81
+ };
82
+ }
83
+ function isRip7212SupportedNetwork(chain) {
84
+ const supportedChains = [
85
+ chains_1.optimism,
86
+ chains_1.optimismSepolia,
87
+ chains_1.polygon,
88
+ chains_1.base,
89
+ chains_1.baseSepolia,
90
+ chains_1.arbitrum,
91
+ chains_1.arbitrumSepolia,
92
+ ];
93
+ return supportedChains.includes(chain);
94
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../modules/index.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const vitest_1 = require("vitest");
4
+ const consts_1 = require("../../test/consts");
5
+ const common_1 = require("./common");
6
+ const index_1 = require("./index");
7
+ (0, vitest_1.describe)('Modules', () => {
8
+ (0, vitest_1.describe)('Setup', () => {
9
+ (0, vitest_1.test)('should use ownable validator for ECDSA owners', () => {
10
+ const config = {
11
+ owners: {
12
+ type: 'ecdsa',
13
+ accounts: [consts_1.accountA],
14
+ threshold: 1,
15
+ },
16
+ };
17
+ const setup = (0, index_1.getSetup)(config);
18
+ (0, vitest_1.expect)(setup.validators[0].address).toBe('0x000000000013fdb5234e4e3162a810f54d9f7e98');
19
+ (0, vitest_1.expect)(setup.validators[0].type).toBe(common_1.MODULE_TYPE_ID_VALIDATOR);
20
+ });
21
+ (0, vitest_1.test)('should use webauthn validator for passkey owners', () => {
22
+ const config = {
23
+ owners: {
24
+ type: 'passkey',
25
+ accounts: [consts_1.passkeyAccount],
26
+ },
27
+ };
28
+ const setup = (0, index_1.getSetup)(config);
29
+ (0, vitest_1.expect)(setup.validators).toHaveLength(1);
30
+ (0, vitest_1.expect)(setup.validators[0].address).toBe('0x0000000000578c4cb0e472a5462da43c495c3f33');
31
+ (0, vitest_1.expect)(setup.validators[0].type).toBe(common_1.MODULE_TYPE_ID_VALIDATOR);
32
+ });
33
+ (0, vitest_1.test)('should use smart session validator when sessions are enabled', () => {
34
+ const config = {
35
+ owners: {
36
+ type: 'ecdsa',
37
+ accounts: [consts_1.accountA],
38
+ threshold: 1,
39
+ },
40
+ sessions: [
41
+ {
42
+ owners: {
43
+ type: 'ecdsa',
44
+ accounts: [consts_1.accountB],
45
+ threshold: 1,
46
+ },
47
+ },
48
+ ],
49
+ };
50
+ const setup = (0, index_1.getSetup)(config);
51
+ const smartSessionValidator = setup.validators.find((validator) => validator.address === '0x00000000008bdaba73cd9815d79069c247eb4bda');
52
+ if (!smartSessionValidator) {
53
+ return;
54
+ }
55
+ (0, vitest_1.expect)(smartSessionValidator.type).toBe(common_1.MODULE_TYPE_ID_VALIDATOR);
56
+ });
57
+ (0, vitest_1.test)('should use smart session compatibility fallback for safe accounts with sessions', () => {
58
+ const config = {
59
+ owners: {
60
+ type: 'ecdsa',
61
+ accounts: [consts_1.accountA],
62
+ threshold: 1,
63
+ },
64
+ experimental_sessions: {
65
+ enabled: true,
66
+ },
67
+ account: {
68
+ type: 'safe',
69
+ },
70
+ };
71
+ const setup = (0, index_1.getSetup)(config);
72
+ const smartSessionFallback = setup.fallbacks.find((fallback) => fallback.address === '0x000000000052e9685932845660777DF43C2dC496');
73
+ (0, vitest_1.expect)(smartSessionFallback).toBeDefined();
74
+ if (!smartSessionFallback) {
75
+ return;
76
+ }
77
+ (0, vitest_1.expect)(smartSessionFallback.type).toBe(common_1.MODULE_TYPE_ID_FALLBACK);
78
+ });
79
+ vitest_1.test.todo('using the omni account should install the necessary modules');
80
+ });
81
+ });
@@ -0,0 +1,10 @@
1
+ import { type Address } from 'viem';
2
+ import type { RhinestoneAccountConfig } from '../types';
3
+ import { type ModeleSetup } from './common';
4
+ declare function getV0Attesters(): {
5
+ addresses: Address[];
6
+ threshold: number;
7
+ };
8
+ declare function getV0Setup(config: RhinestoneAccountConfig): ModeleSetup;
9
+ export { getV0Attesters, getV0Setup };
10
+ //# sourceMappingURL=legacy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legacy.d.ts","sourceRoot":"","sources":["../../../modules/legacy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAuB,MAAM,MAAM,CAAA;AACxD,OAAO,KAAK,EAAe,uBAAuB,EAAE,MAAM,UAAU,CAAA;AAEpE,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,UAAU,CAAA;AAYjB,iBAAS,cAAc,IAAI;IACzB,SAAS,EAAE,OAAO,EAAE,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;CAClB,CAQA;AAED,iBAAS,UAAU,CAAC,MAAM,EAAE,uBAAuB,GAAG,WAAW,CAuDhE;AAED,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,CAAA"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getV0Attesters = getV0Attesters;
4
+ exports.getV0Setup = getV0Setup;
5
+ const viem_1 = require("viem");
6
+ const _1 = require(".");
7
+ const common_1 = require("./common");
8
+ const OMNI_ACCOUNT_MOCK_ATTESTER_ADDRESS = '0x6D0515e8E499468DCe9583626f0cA15b887f9d03';
9
+ const RHINESTONE_ATTESTER_ADDRESS = '0x000000333034E9f539ce08819E12c1b8Cb29084d';
10
+ const HOOK_ADDRESS = '0x0000000000f6Ed8Be424d673c63eeFF8b9267420';
11
+ const TARGET_MODULE_ADDRESS = '0x0000000000E5a37279A001301A837a91b5de1D5E';
12
+ const SAME_CHAIN_MODULE_ADDRESS = '0x000000000043ff16d5776c7F0f65Ec485C17Ca04';
13
+ function getV0Attesters() {
14
+ return {
15
+ addresses: [
16
+ RHINESTONE_ATTESTER_ADDRESS,
17
+ OMNI_ACCOUNT_MOCK_ATTESTER_ADDRESS,
18
+ ],
19
+ threshold: 1,
20
+ };
21
+ }
22
+ function getV0Setup(config) {
23
+ const defaultSetup = (0, _1.getSetup)(config);
24
+ // Define v0 modules
25
+ const v0ModuleInputs = [
26
+ // Same Chain Module
27
+ {
28
+ type: 'executor',
29
+ address: SAME_CHAIN_MODULE_ADDRESS,
30
+ },
31
+ // Target Module
32
+ {
33
+ type: 'executor',
34
+ address: TARGET_MODULE_ADDRESS,
35
+ },
36
+ // "Hook" Executor
37
+ {
38
+ type: 'executor',
39
+ address: HOOK_ADDRESS,
40
+ },
41
+ // Fallback
42
+ {
43
+ type: 'fallback',
44
+ address: TARGET_MODULE_ADDRESS,
45
+ initData: (0, viem_1.encodeAbiParameters)([
46
+ { name: 'selector', type: 'bytes4' },
47
+ { name: 'flags', type: 'bytes1' },
48
+ { name: 'data', type: 'bytes' },
49
+ ], ['0x3a5be8cb', '0x00', '0x']),
50
+ },
51
+ ];
52
+ // Convert and categorize v0 modules once
53
+ const v0Modules = v0ModuleInputs.map((m) => (0, common_1.getModule)(m));
54
+ const v0Validators = v0Modules.filter((m) => m.type === common_1.MODULE_TYPE_ID_VALIDATOR);
55
+ const v0Executors = v0Modules.filter((m) => m.type === common_1.MODULE_TYPE_ID_EXECUTOR);
56
+ const v0Fallbacks = v0Modules.filter((m) => m.type === common_1.MODULE_TYPE_ID_FALLBACK);
57
+ const v0Hooks = v0Modules.filter((m) => m.type === common_1.MODULE_TYPE_ID_HOOK);
58
+ // Merge directly with default setup
59
+ return {
60
+ validators: [...v0Validators, ...defaultSetup.validators],
61
+ executors: [...v0Executors, ...defaultSetup.executors],
62
+ fallbacks: [...v0Fallbacks, ...defaultSetup.fallbacks],
63
+ hooks: [...v0Hooks, ...defaultSetup.hooks],
64
+ };
65
+ }
@@ -0,0 +1,9 @@
1
+ import { type Address, type Chain } from 'viem';
2
+ import type { AccountType, ProviderConfig } from '../types';
3
+ declare function getValidators(accountType: AccountType, account: Address, chain: Chain, provider?: ProviderConfig): Promise<Address[]>;
4
+ declare function getOwners(account: Address, chain: Chain, provider?: ProviderConfig): Promise<{
5
+ accounts: Address[];
6
+ threshold: number;
7
+ } | null>;
8
+ export { getValidators, getOwners };
9
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../modules/read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,EAAsB,MAAM,MAAM,CAAA;AAEnE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,UAAU,CAAA;AAG3D,iBAAe,aAAa,CAC1B,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,OAAO,EAAE,CAAC,CAkDpB;AAED,iBAAe,SAAS,CACtB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,KAAK,EACZ,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,GAAG,IAAI,CAAC,CAkER;AAED,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,CAAA"}
@@ -0,0 +1,125 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getValidators = getValidators;
4
+ exports.getOwners = getOwners;
5
+ const viem_1 = require("viem");
6
+ const utils_1 = require("../accounts/utils");
7
+ const core_1 = require("./validators/core");
8
+ async function getValidators(accountType, account, chain, provider) {
9
+ const publicClient = (0, viem_1.createPublicClient)({
10
+ chain,
11
+ transport: (0, utils_1.createTransport)(chain, provider),
12
+ });
13
+ switch (accountType) {
14
+ case 'safe':
15
+ case 'startale':
16
+ case 'nexus':
17
+ case 'passport': {
18
+ const validators = await publicClient.readContract({
19
+ abi: [
20
+ {
21
+ name: 'getValidatorsPaginated',
22
+ type: 'function',
23
+ inputs: [
24
+ {
25
+ name: 'cursor',
26
+ type: 'address',
27
+ },
28
+ {
29
+ name: 'pageSize',
30
+ type: 'uint256',
31
+ },
32
+ ],
33
+ outputs: [
34
+ {
35
+ name: 'array',
36
+ type: 'address[]',
37
+ },
38
+ {
39
+ name: 'next',
40
+ type: 'address',
41
+ },
42
+ ],
43
+ },
44
+ ],
45
+ functionName: 'getValidatorsPaginated',
46
+ address: account,
47
+ args: ['0x0000000000000000000000000000000000000001', 100n],
48
+ });
49
+ return validators[0];
50
+ }
51
+ case 'eoa': {
52
+ return [];
53
+ }
54
+ case 'kernel': {
55
+ throw new Error('Kernel not supported');
56
+ }
57
+ }
58
+ }
59
+ async function getOwners(account, chain, provider) {
60
+ const publicClient = (0, viem_1.createPublicClient)({
61
+ chain,
62
+ transport: (0, utils_1.createTransport)(chain, provider),
63
+ });
64
+ const moduleAddress = core_1.OWNABLE_VALIDATOR_ADDRESS;
65
+ const [ownerResult, thresholdResult] = await publicClient.multicall({
66
+ contracts: [
67
+ {
68
+ abi: [
69
+ {
70
+ name: 'getOwners',
71
+ type: 'function',
72
+ inputs: [
73
+ {
74
+ name: 'account',
75
+ type: 'address',
76
+ },
77
+ ],
78
+ outputs: [
79
+ {
80
+ name: '',
81
+ type: 'address[]',
82
+ },
83
+ ],
84
+ },
85
+ ],
86
+ functionName: 'getOwners',
87
+ address: moduleAddress,
88
+ args: [account],
89
+ },
90
+ {
91
+ abi: [
92
+ {
93
+ name: 'threshold',
94
+ type: 'function',
95
+ inputs: [
96
+ {
97
+ name: 'module',
98
+ type: 'address',
99
+ },
100
+ ],
101
+ outputs: [
102
+ {
103
+ name: '',
104
+ type: 'uint256',
105
+ },
106
+ ],
107
+ },
108
+ ],
109
+ functionName: 'threshold',
110
+ address: moduleAddress,
111
+ args: [account],
112
+ },
113
+ ],
114
+ });
115
+ if (ownerResult.error) {
116
+ return null;
117
+ }
118
+ if (thresholdResult.error) {
119
+ return null;
120
+ }
121
+ return {
122
+ accounts: ownerResult.result,
123
+ threshold: thresholdResult.result,
124
+ };
125
+ }
@@ -0,0 +1,29 @@
1
+ import { type Account, type Address, type Hex } from 'viem';
2
+ import type { ENSValidatorConfig, OwnableValidatorConfig, OwnerSet, RhinestoneAccountConfig, WebauthnValidatorConfig } from '../../types';
3
+ import { type 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
+ }
13
+ declare const OWNABLE_VALIDATOR_ADDRESS: Address;
14
+ declare const ENS_VALIDATOR_ADDRESS: Address;
15
+ declare const WEBAUTHN_VALIDATOR_ADDRESS: Address;
16
+ declare const MULTI_FACTOR_VALIDATOR_ADDRESS: Address;
17
+ declare const WEBAUTHN_V0_VALIDATOR_ADDRESS: Address;
18
+ declare function getOwnerValidator(config: RhinestoneAccountConfig): Module;
19
+ declare function getMockSignature(ownerSet: OwnerSet): Hex;
20
+ declare function getValidator(owners: OwnerSet): Module;
21
+ declare function getOwnableValidator(threshold: number, owners: Address[], address?: Address): Module;
22
+ declare function getENSValidator(threshold: number, owners: Address[], ownerExpirations: number[], address?: Address): Module;
23
+ declare function getWebAuthnValidator(threshold: number, webAuthnCredentials: WebauthnCredential[], address?: Address): Module;
24
+ declare function getMultiFactorValidator(threshold: number, validators: (OwnableValidatorConfig | ENSValidatorConfig | WebauthnValidatorConfig | null)[]): Module;
25
+ declare function getSocialRecoveryValidator(guardians: Account[], threshold?: number): Module;
26
+ declare function supportsEip712(validator: Module): boolean;
27
+ export { OWNABLE_VALIDATOR_ADDRESS, ENS_VALIDATOR_ADDRESS, WEBAUTHN_VALIDATOR_ADDRESS, MULTI_FACTOR_VALIDATOR_ADDRESS, WEBAUTHN_V0_VALIDATOR_ADDRESS, getOwnerValidator, getOwnableValidator, getENSValidator, getWebAuthnValidator, getMultiFactorValidator, getSocialRecoveryValidator, getValidator, getMockSignature, supportsEip712, };
28
+ export type { WebauthnCredential };
29
+ //# 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,KAAK,OAAO,EACZ,KAAK,OAAO,EAKZ,KAAK,GAAG,EAKT,MAAM,MAAM,CAAA;AAGb,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,QAAQ,EACR,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,aAAa,CAAA;AAEpB,OAAO,EAA4B,KAAK,MAAM,EAAE,MAAM,WAAW,CAAA;AAEjE,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;CACxB;AAED,QAAA,MAAM,yBAAyB,EAAE,OACa,CAAA;AAC9C,QAAA,MAAM,qBAAqB,EAAE,OACiB,CAAA;AAC9C,QAAA,MAAM,0BAA0B,EAAE,OACY,CAAA;AAG9C,QAAA,MAAM,8BAA8B,EAAE,OACQ,CAAA;AAO9C,QAAA,MAAM,6BAA6B,EAAE,OACS,CAAA;AAO9C,iBAAS,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,UAKzD;AAED,iBAAS,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,GAAG,CAmDjD;AAED,iBAAS,YAAY,CAAC,MAAM,EAAE,QAAQ,UA2BrC;AAED,iBAAS,mBAAmB,CAC1B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAiBR;AAED,iBAAS,eAAe,CACtB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,OAAO,EAAE,EACjB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CAsCR;AAED,iBAAS,oBAAoB,CAC3B,SAAS,EAAE,MAAM,EACjB,mBAAmB,EAAE,kBAAkB,EAAE,EACzC,OAAO,CAAC,EAAE,OAAO,GAChB,MAAM,CA4DR;AAED,iBAAS,uBAAuB,CAC9B,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,CACR,sBAAsB,GACtB,kBAAkB,GAClB,uBAAuB,GACvB,IAAI,CACP,EAAE,GACF,MAAM,CAgDR;AAED,iBAAS,0BAA0B,CACjC,SAAS,EAAE,OAAO,EAAE,EACpB,SAAS,SAAI,GACZ,MAAM,CAsBR;AAeD,iBAAS,cAAc,CAAC,SAAS,EAAE,MAAM,WAQxC;AAED,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,EAC7B,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,CAAA;AACD,YAAY,EAAE,kBAAkB,EAAE,CAAA"}