@grimoirelabs/core 0.1.0

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 (205) hide show
  1. package/dist/builders/expressions.d.ts +33 -0
  2. package/dist/builders/expressions.d.ts.map +1 -0
  3. package/dist/builders/expressions.js +57 -0
  4. package/dist/builders/expressions.js.map +1 -0
  5. package/dist/builders/index.d.ts +44 -0
  6. package/dist/builders/index.d.ts.map +1 -0
  7. package/dist/builders/index.js +32 -0
  8. package/dist/builders/index.js.map +1 -0
  9. package/dist/builders/spell-builder.d.ts +124 -0
  10. package/dist/builders/spell-builder.d.ts.map +1 -0
  11. package/dist/builders/spell-builder.js +299 -0
  12. package/dist/builders/spell-builder.js.map +1 -0
  13. package/dist/builders/step-builder.d.ts +212 -0
  14. package/dist/builders/step-builder.d.ts.map +1 -0
  15. package/dist/builders/step-builder.js +499 -0
  16. package/dist/builders/step-builder.js.map +1 -0
  17. package/dist/compiler/expression-parser.d.ts +14 -0
  18. package/dist/compiler/expression-parser.d.ts.map +1 -0
  19. package/dist/compiler/expression-parser.js +460 -0
  20. package/dist/compiler/expression-parser.js.map +1 -0
  21. package/dist/compiler/grimoire/ast.d.ts +450 -0
  22. package/dist/compiler/grimoire/ast.d.ts.map +1 -0
  23. package/dist/compiler/grimoire/ast.js +19 -0
  24. package/dist/compiler/grimoire/ast.js.map +1 -0
  25. package/dist/compiler/grimoire/errors.d.ts +65 -0
  26. package/dist/compiler/grimoire/errors.d.ts.map +1 -0
  27. package/dist/compiler/grimoire/errors.js +86 -0
  28. package/dist/compiler/grimoire/errors.js.map +1 -0
  29. package/dist/compiler/grimoire/index.d.ts +24 -0
  30. package/dist/compiler/grimoire/index.d.ts.map +1 -0
  31. package/dist/compiler/grimoire/index.js +63 -0
  32. package/dist/compiler/grimoire/index.js.map +1 -0
  33. package/dist/compiler/grimoire/parser.d.ts +135 -0
  34. package/dist/compiler/grimoire/parser.d.ts.map +1 -0
  35. package/dist/compiler/grimoire/parser.js +2148 -0
  36. package/dist/compiler/grimoire/parser.js.map +1 -0
  37. package/dist/compiler/grimoire/tokenizer.d.ts +59 -0
  38. package/dist/compiler/grimoire/tokenizer.d.ts.map +1 -0
  39. package/dist/compiler/grimoire/tokenizer.js +509 -0
  40. package/dist/compiler/grimoire/tokenizer.js.map +1 -0
  41. package/dist/compiler/grimoire/transformer.d.ts +71 -0
  42. package/dist/compiler/grimoire/transformer.d.ts.map +1 -0
  43. package/dist/compiler/grimoire/transformer.js +1011 -0
  44. package/dist/compiler/grimoire/transformer.js.map +1 -0
  45. package/dist/compiler/index.d.ts +45 -0
  46. package/dist/compiler/index.d.ts.map +1 -0
  47. package/dist/compiler/index.js +97 -0
  48. package/dist/compiler/index.js.map +1 -0
  49. package/dist/compiler/ir-generator.d.ts +16 -0
  50. package/dist/compiler/ir-generator.d.ts.map +1 -0
  51. package/dist/compiler/ir-generator.js +997 -0
  52. package/dist/compiler/ir-generator.js.map +1 -0
  53. package/dist/compiler/validator.d.ts +15 -0
  54. package/dist/compiler/validator.d.ts.map +1 -0
  55. package/dist/compiler/validator.js +401 -0
  56. package/dist/compiler/validator.js.map +1 -0
  57. package/dist/index.d.ts +16 -0
  58. package/dist/index.d.ts.map +1 -0
  59. package/dist/index.js +17 -0
  60. package/dist/index.js.map +1 -0
  61. package/dist/runtime/circuit-breaker.d.ts +59 -0
  62. package/dist/runtime/circuit-breaker.d.ts.map +1 -0
  63. package/dist/runtime/circuit-breaker.js +155 -0
  64. package/dist/runtime/circuit-breaker.js.map +1 -0
  65. package/dist/runtime/context.d.ts +92 -0
  66. package/dist/runtime/context.d.ts.map +1 -0
  67. package/dist/runtime/context.js +219 -0
  68. package/dist/runtime/context.js.map +1 -0
  69. package/dist/runtime/error-classifier.d.ts +16 -0
  70. package/dist/runtime/error-classifier.d.ts.map +1 -0
  71. package/dist/runtime/error-classifier.js +38 -0
  72. package/dist/runtime/error-classifier.js.map +1 -0
  73. package/dist/runtime/expression-evaluator.d.ts +36 -0
  74. package/dist/runtime/expression-evaluator.d.ts.map +1 -0
  75. package/dist/runtime/expression-evaluator.js +391 -0
  76. package/dist/runtime/expression-evaluator.js.map +1 -0
  77. package/dist/runtime/index.d.ts +12 -0
  78. package/dist/runtime/index.d.ts.map +1 -0
  79. package/dist/runtime/index.js +11 -0
  80. package/dist/runtime/index.js.map +1 -0
  81. package/dist/runtime/interpreter.d.ts +59 -0
  82. package/dist/runtime/interpreter.d.ts.map +1 -0
  83. package/dist/runtime/interpreter.js +414 -0
  84. package/dist/runtime/interpreter.js.map +1 -0
  85. package/dist/runtime/skills/registry.d.ts +11 -0
  86. package/dist/runtime/skills/registry.d.ts.map +1 -0
  87. package/dist/runtime/skills/registry.js +73 -0
  88. package/dist/runtime/skills/registry.js.map +1 -0
  89. package/dist/runtime/sqlite-state-store.d.ts +28 -0
  90. package/dist/runtime/sqlite-state-store.d.ts.map +1 -0
  91. package/dist/runtime/sqlite-state-store.js +180 -0
  92. package/dist/runtime/sqlite-state-store.js.map +1 -0
  93. package/dist/runtime/state-store.d.ts +52 -0
  94. package/dist/runtime/state-store.d.ts.map +1 -0
  95. package/dist/runtime/state-store.js +32 -0
  96. package/dist/runtime/state-store.js.map +1 -0
  97. package/dist/runtime/steps/action.d.ts +17 -0
  98. package/dist/runtime/steps/action.d.ts.map +1 -0
  99. package/dist/runtime/steps/action.js +430 -0
  100. package/dist/runtime/steps/action.js.map +1 -0
  101. package/dist/runtime/steps/advisory.d.ts +28 -0
  102. package/dist/runtime/steps/advisory.d.ts.map +1 -0
  103. package/dist/runtime/steps/advisory.js +209 -0
  104. package/dist/runtime/steps/advisory.js.map +1 -0
  105. package/dist/runtime/steps/compute.d.ts +9 -0
  106. package/dist/runtime/steps/compute.d.ts.map +1 -0
  107. package/dist/runtime/steps/compute.js +74 -0
  108. package/dist/runtime/steps/compute.js.map +1 -0
  109. package/dist/runtime/steps/conditional.d.ts +14 -0
  110. package/dist/runtime/steps/conditional.d.ts.map +1 -0
  111. package/dist/runtime/steps/conditional.js +58 -0
  112. package/dist/runtime/steps/conditional.js.map +1 -0
  113. package/dist/runtime/steps/emit.d.ts +9 -0
  114. package/dist/runtime/steps/emit.d.ts.map +1 -0
  115. package/dist/runtime/steps/emit.js +70 -0
  116. package/dist/runtime/steps/emit.js.map +1 -0
  117. package/dist/runtime/steps/halt.d.ts +9 -0
  118. package/dist/runtime/steps/halt.d.ts.map +1 -0
  119. package/dist/runtime/steps/halt.js +19 -0
  120. package/dist/runtime/steps/halt.js.map +1 -0
  121. package/dist/runtime/steps/loop.d.ts +14 -0
  122. package/dist/runtime/steps/loop.d.ts.map +1 -0
  123. package/dist/runtime/steps/loop.js +109 -0
  124. package/dist/runtime/steps/loop.js.map +1 -0
  125. package/dist/runtime/steps/parallel.d.ts +9 -0
  126. package/dist/runtime/steps/parallel.d.ts.map +1 -0
  127. package/dist/runtime/steps/parallel.js +87 -0
  128. package/dist/runtime/steps/parallel.js.map +1 -0
  129. package/dist/runtime/steps/pipeline.d.ts +9 -0
  130. package/dist/runtime/steps/pipeline.d.ts.map +1 -0
  131. package/dist/runtime/steps/pipeline.js +125 -0
  132. package/dist/runtime/steps/pipeline.js.map +1 -0
  133. package/dist/runtime/steps/try.d.ts +13 -0
  134. package/dist/runtime/steps/try.d.ts.map +1 -0
  135. package/dist/runtime/steps/try.js +222 -0
  136. package/dist/runtime/steps/try.js.map +1 -0
  137. package/dist/runtime/steps/wait.d.ts +9 -0
  138. package/dist/runtime/steps/wait.d.ts.map +1 -0
  139. package/dist/runtime/steps/wait.js +38 -0
  140. package/dist/runtime/steps/wait.js.map +1 -0
  141. package/dist/types/actions.d.ts +162 -0
  142. package/dist/types/actions.d.ts.map +1 -0
  143. package/dist/types/actions.js +5 -0
  144. package/dist/types/actions.js.map +1 -0
  145. package/dist/types/execution.d.ts +276 -0
  146. package/dist/types/execution.d.ts.map +1 -0
  147. package/dist/types/execution.js +5 -0
  148. package/dist/types/execution.js.map +1 -0
  149. package/dist/types/expressions.d.ts +100 -0
  150. package/dist/types/expressions.d.ts.map +1 -0
  151. package/dist/types/expressions.js +48 -0
  152. package/dist/types/expressions.js.map +1 -0
  153. package/dist/types/index.d.ts +14 -0
  154. package/dist/types/index.d.ts.map +1 -0
  155. package/dist/types/index.js +5 -0
  156. package/dist/types/index.js.map +1 -0
  157. package/dist/types/ir.d.ts +187 -0
  158. package/dist/types/ir.d.ts.map +1 -0
  159. package/dist/types/ir.js +5 -0
  160. package/dist/types/ir.js.map +1 -0
  161. package/dist/types/policy.d.ts +123 -0
  162. package/dist/types/policy.d.ts.map +1 -0
  163. package/dist/types/policy.js +5 -0
  164. package/dist/types/policy.js.map +1 -0
  165. package/dist/types/primitives.d.ts +76 -0
  166. package/dist/types/primitives.d.ts.map +1 -0
  167. package/dist/types/primitives.js +10 -0
  168. package/dist/types/primitives.js.map +1 -0
  169. package/dist/types/steps.d.ts +226 -0
  170. package/dist/types/steps.d.ts.map +1 -0
  171. package/dist/types/steps.js +5 -0
  172. package/dist/types/steps.js.map +1 -0
  173. package/dist/venues/index.d.ts +6 -0
  174. package/dist/venues/index.d.ts.map +1 -0
  175. package/dist/venues/index.js +26 -0
  176. package/dist/venues/index.js.map +1 -0
  177. package/dist/venues/types.d.ts +40 -0
  178. package/dist/venues/types.d.ts.map +1 -0
  179. package/dist/venues/types.js +5 -0
  180. package/dist/venues/types.js.map +1 -0
  181. package/dist/wallet/executor.d.ts +109 -0
  182. package/dist/wallet/executor.d.ts.map +1 -0
  183. package/dist/wallet/executor.js +354 -0
  184. package/dist/wallet/executor.js.map +1 -0
  185. package/dist/wallet/index.d.ts +14 -0
  186. package/dist/wallet/index.d.ts.map +1 -0
  187. package/dist/wallet/index.js +13 -0
  188. package/dist/wallet/index.js.map +1 -0
  189. package/dist/wallet/keystore.d.ts +44 -0
  190. package/dist/wallet/keystore.d.ts.map +1 -0
  191. package/dist/wallet/keystore.js +296 -0
  192. package/dist/wallet/keystore.js.map +1 -0
  193. package/dist/wallet/provider.d.ts +111 -0
  194. package/dist/wallet/provider.d.ts.map +1 -0
  195. package/dist/wallet/provider.js +309 -0
  196. package/dist/wallet/provider.js.map +1 -0
  197. package/dist/wallet/tx-builder.d.ts +85 -0
  198. package/dist/wallet/tx-builder.d.ts.map +1 -0
  199. package/dist/wallet/tx-builder.js +290 -0
  200. package/dist/wallet/tx-builder.js.map +1 -0
  201. package/dist/wallet/types.d.ts +116 -0
  202. package/dist/wallet/types.d.ts.map +1 -0
  203. package/dist/wallet/types.js +86 -0
  204. package/dist/wallet/types.js.map +1 -0
  205. package/package.json +39 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"steps.js","sourceRoot":"","sources":["../../src/types/steps.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Venue adapter registry
3
+ */
4
+ import type { VenueAdapter, VenueRegistry } from "./types.js";
5
+ export declare function createVenueRegistry(adapters?: VenueAdapter[]): VenueRegistry;
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/venues/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAoB,aAAa,EAAE,MAAM,YAAY,CAAC;AAwBhF,wBAAgB,mBAAmB,CAAC,QAAQ,GAAE,YAAY,EAAO,GAAG,aAAa,CAIhF"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Venue adapter registry
3
+ */
4
+ class InMemoryVenueRegistry {
5
+ adapters = new Map();
6
+ register(adapter) {
7
+ this.adapters.set(adapter.meta.name, adapter);
8
+ }
9
+ registerAll(adapters) {
10
+ for (const adapter of adapters) {
11
+ this.register(adapter);
12
+ }
13
+ }
14
+ get(name) {
15
+ return this.adapters.get(name);
16
+ }
17
+ list() {
18
+ return [...this.adapters.values()].map((adapter) => adapter.meta);
19
+ }
20
+ }
21
+ export function createVenueRegistry(adapters = []) {
22
+ const registry = new InMemoryVenueRegistry();
23
+ registry.registerAll(adapters);
24
+ return registry;
25
+ }
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/venues/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,MAAM,qBAAqB;IACjB,QAAQ,GAAG,IAAI,GAAG,EAAwB,CAAC;IAEnD,QAAQ,CAAC,OAAqB;QAC5B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAED,WAAW,CAAC,QAAwB;QAClC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,GAAG,CAAC,IAAY;QACd,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,IAAI;QACF,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;CACF;AAED,MAAM,UAAU,mBAAmB,CAAC,WAA2B,EAAE;IAC/D,MAAM,QAAQ,GAAG,IAAI,qBAAqB,EAAE,CAAC;IAC7C,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Venue adapter types
3
+ */
4
+ import type { Action } from "../types/actions.js";
5
+ import type { Address } from "../types/primitives.js";
6
+ import type { Provider } from "../wallet/provider.js";
7
+ import type { BuiltTransaction } from "../wallet/tx-builder.js";
8
+ export interface VenueAdapterMeta {
9
+ name: string;
10
+ supportedChains: number[];
11
+ actions: string[];
12
+ description?: string;
13
+ executionType?: "evm" | "offchain";
14
+ }
15
+ export interface VenueAdapterContext {
16
+ provider: Provider;
17
+ walletAddress: Address;
18
+ chainId: number;
19
+ vault?: Address;
20
+ /** Execution mode (simulate, dry-run, execute). Undefined when adapters are used directly. */
21
+ mode?: "simulate" | "dry-run" | "execute";
22
+ }
23
+ export interface OffchainExecutionResult {
24
+ id: string;
25
+ status?: string;
26
+ raw?: unknown;
27
+ }
28
+ export type VenueBuildResult = BuiltTransaction | BuiltTransaction[];
29
+ export interface VenueAdapter {
30
+ meta: VenueAdapterMeta;
31
+ buildAction?: (action: Action, ctx: VenueAdapterContext) => Promise<VenueBuildResult>;
32
+ executeAction?: (action: Action, ctx: VenueAdapterContext) => Promise<OffchainExecutionResult>;
33
+ }
34
+ export interface VenueRegistry {
35
+ register: (adapter: VenueAdapter) => void;
36
+ registerAll: (adapters: VenueAdapter[]) => void;
37
+ get: (name: string) => VenueAdapter | undefined;
38
+ list: () => VenueAdapterMeta[];
39
+ }
40
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/venues/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;CACpC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,8FAA8F;IAC9F,IAAI,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3C;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,EAAE,CAAC;AAErE,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IACvB,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACtF,aAAa,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC;CAChG;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAC1C,WAAW,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,IAAI,CAAC;IAChD,GAAG,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,YAAY,GAAG,SAAS,CAAC;IAChD,IAAI,EAAE,MAAM,gBAAgB,EAAE,CAAC;CAChC"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Venue adapter types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/venues/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,109 @@
1
+ import type { Action } from "../types/actions.js";
2
+ import type { VenueAdapter } from "../venues/types.js";
3
+ import { type Provider } from "./provider.js";
4
+ import { type BuiltTransaction } from "./tx-builder.js";
5
+ import type { TransactionReceipt, Wallet } from "./types.js";
6
+ /** Execution mode */
7
+ export type ExecutionMode = "simulate" | "dry-run" | "execute";
8
+ /** Execution options */
9
+ export interface ExecutorOptions {
10
+ /** The wallet to use for signing */
11
+ wallet: Wallet;
12
+ /** The provider for blockchain interaction */
13
+ provider: Provider;
14
+ /** Execution mode */
15
+ mode: ExecutionMode;
16
+ /** Callback for confirmation prompts */
17
+ confirmCallback?: (message: string) => Promise<boolean>;
18
+ /** Callback for progress updates */
19
+ progressCallback?: (message: string) => void;
20
+ /** Skip confirmation for testnets */
21
+ skipTestnetConfirmation?: boolean;
22
+ /** Gas price multiplier (default: 1.0) */
23
+ gasMultiplier?: number;
24
+ /** Number of confirmations to wait for */
25
+ confirmations?: number;
26
+ /** Venue adapters */
27
+ adapters?: VenueAdapter[];
28
+ }
29
+ /** Result of a single transaction execution */
30
+ export interface TransactionResult {
31
+ /** Whether the transaction succeeded */
32
+ success: boolean;
33
+ /** Transaction hash (if executed) */
34
+ hash?: string;
35
+ /** Transaction receipt (if confirmed) */
36
+ receipt?: TransactionReceipt;
37
+ /** Gas used */
38
+ gasUsed?: bigint;
39
+ /** Error message (if failed) */
40
+ error?: string;
41
+ /** The built transaction */
42
+ builtTx: BuiltTransaction;
43
+ }
44
+ /** Result of executing all transactions */
45
+ export interface ExecutionResult {
46
+ /** Whether all transactions succeeded */
47
+ success: boolean;
48
+ /** Results for each transaction */
49
+ transactions: TransactionResult[];
50
+ /** Total gas used */
51
+ totalGasUsed: bigint;
52
+ /** Total cost in wei */
53
+ totalCost: bigint;
54
+ /** Execution mode used */
55
+ mode: ExecutionMode;
56
+ /** Error message (if failed) */
57
+ error?: string;
58
+ }
59
+ /**
60
+ * Transaction executor class
61
+ */
62
+ export declare class Executor {
63
+ private wallet;
64
+ private provider;
65
+ private txBuilder;
66
+ private options;
67
+ private adapterRegistry;
68
+ constructor(options: ExecutorOptions);
69
+ /**
70
+ * Execute a list of actions
71
+ */
72
+ executeActions(actions: Action[]): Promise<ExecutionResult>;
73
+ /**
74
+ * Execute a single action
75
+ */
76
+ executeAction(action: Action): Promise<TransactionResult>;
77
+ private buildAction;
78
+ private normalizeBuildResult;
79
+ /**
80
+ * Get execution summary without executing
81
+ */
82
+ getExecutionSummary(actions: Action[]): Promise<{
83
+ transactions: BuiltTransaction[];
84
+ totalGasEstimate: bigint;
85
+ totalCostEstimate: bigint;
86
+ }>;
87
+ /**
88
+ * Confirm execution with user
89
+ */
90
+ private confirmExecution;
91
+ /**
92
+ * Build confirmation message
93
+ */
94
+ private buildConfirmationMessage;
95
+ /**
96
+ * Apply gas multiplier to transaction
97
+ */
98
+ private applyGasMultiplier;
99
+ /**
100
+ * Send progress update
101
+ */
102
+ private progress;
103
+ private tryExecuteOffchainAction;
104
+ }
105
+ /**
106
+ * Create an executor
107
+ */
108
+ export declare function createExecutor(options: ExecutorOptions): Executor;
109
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../src/wallet/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,354 @@
1
+ import { createVenueRegistry } from "../venues/index.js";
2
+ import { formatGasCostUsd, formatWei } from "./provider.js";
3
+ import { TransactionBuilder } from "./tx-builder.js";
4
+ import { getChainName, getNativeCurrencySymbol, isTestnet } from "./types.js";
5
+ /**
6
+ * Transaction executor class
7
+ */
8
+ export class Executor {
9
+ wallet;
10
+ provider;
11
+ txBuilder;
12
+ options;
13
+ adapterRegistry;
14
+ constructor(options) {
15
+ this.wallet = options.wallet;
16
+ this.provider = options.provider;
17
+ this.options = options;
18
+ this.txBuilder = new TransactionBuilder(options.provider, options.wallet.address);
19
+ this.adapterRegistry = createVenueRegistry(options.adapters ?? []);
20
+ }
21
+ /**
22
+ * Execute a list of actions
23
+ */
24
+ async executeActions(actions) {
25
+ const results = [];
26
+ let totalGasUsed = 0n;
27
+ let totalCost = 0n;
28
+ // Build all transactions first
29
+ const builtTxs = [];
30
+ for (const action of actions) {
31
+ try {
32
+ const builtTx = await this.buildAction(action);
33
+ builtTxs.push(...builtTx);
34
+ }
35
+ catch (error) {
36
+ return {
37
+ success: false,
38
+ transactions: results,
39
+ totalGasUsed,
40
+ totalCost,
41
+ mode: this.options.mode,
42
+ error: `Failed to build transaction: ${error.message}`,
43
+ };
44
+ }
45
+ }
46
+ // In simulate mode, just return the built transactions
47
+ if (this.options.mode === "simulate") {
48
+ return {
49
+ success: true,
50
+ transactions: builtTxs.map((builtTx) => ({
51
+ success: true,
52
+ builtTx,
53
+ })),
54
+ totalGasUsed: builtTxs.reduce((sum, tx) => sum + (tx.gasEstimate?.gasLimit ?? 0n), 0n),
55
+ totalCost: builtTxs.reduce((sum, tx) => sum + (tx.gasEstimate?.estimatedCost ?? 0n), 0n),
56
+ mode: "simulate",
57
+ };
58
+ }
59
+ // Show summary and get confirmation
60
+ if (this.options.mode === "execute") {
61
+ const shouldProceed = await this.confirmExecution(builtTxs);
62
+ if (!shouldProceed) {
63
+ return {
64
+ success: false,
65
+ transactions: [],
66
+ totalGasUsed: 0n,
67
+ totalCost: 0n,
68
+ mode: "execute",
69
+ error: "Execution cancelled by user",
70
+ };
71
+ }
72
+ }
73
+ // Execute transactions
74
+ for (let i = 0; i < builtTxs.length; i++) {
75
+ const builtTx = builtTxs[i];
76
+ this.progress(`Executing step ${i + 1}/${builtTxs.length}: ${builtTx.description}`);
77
+ if (this.options.mode === "dry-run") {
78
+ // Dry-run: don't actually send
79
+ results.push({
80
+ success: true,
81
+ builtTx,
82
+ });
83
+ continue;
84
+ }
85
+ const offchainResult = await this.tryExecuteOffchainAction(builtTx.action);
86
+ if (offchainResult) {
87
+ const result = offchainResult.success
88
+ ? {
89
+ success: true,
90
+ hash: offchainResult.id,
91
+ builtTx,
92
+ }
93
+ : {
94
+ success: false,
95
+ error: offchainResult.error,
96
+ builtTx,
97
+ };
98
+ results.push(result);
99
+ if (!result.success) {
100
+ return {
101
+ success: false,
102
+ transactions: results,
103
+ totalGasUsed,
104
+ totalCost,
105
+ mode: this.options.mode,
106
+ error: `Offchain action ${i + 1} failed: ${result.error}`,
107
+ };
108
+ }
109
+ continue;
110
+ }
111
+ try {
112
+ // Apply gas multiplier
113
+ const tx = this.applyGasMultiplier(builtTx.tx);
114
+ // Send the transaction
115
+ const receipt = await this.wallet.sendTransaction(tx);
116
+ const gasUsed = receipt.gasUsed;
117
+ const cost = gasUsed * receipt.effectiveGasPrice;
118
+ totalGasUsed += gasUsed;
119
+ totalCost += cost;
120
+ if (receipt.status === "reverted") {
121
+ results.push({
122
+ success: false,
123
+ hash: receipt.hash,
124
+ receipt,
125
+ gasUsed,
126
+ error: "Transaction reverted",
127
+ builtTx,
128
+ });
129
+ return {
130
+ success: false,
131
+ transactions: results,
132
+ totalGasUsed,
133
+ totalCost,
134
+ mode: "execute",
135
+ error: `Transaction ${i + 1} reverted`,
136
+ };
137
+ }
138
+ this.progress(`✓ Confirmed: ${receipt.hash}`);
139
+ results.push({
140
+ success: true,
141
+ hash: receipt.hash,
142
+ receipt,
143
+ gasUsed,
144
+ builtTx,
145
+ });
146
+ }
147
+ catch (error) {
148
+ results.push({
149
+ success: false,
150
+ error: error.message,
151
+ builtTx,
152
+ });
153
+ return {
154
+ success: false,
155
+ transactions: results,
156
+ totalGasUsed,
157
+ totalCost,
158
+ mode: "execute",
159
+ error: `Transaction ${i + 1} failed: ${error.message}`,
160
+ };
161
+ }
162
+ }
163
+ return {
164
+ success: true,
165
+ transactions: results,
166
+ totalGasUsed,
167
+ totalCost,
168
+ mode: this.options.mode,
169
+ };
170
+ }
171
+ /**
172
+ * Execute a single action
173
+ */
174
+ async executeAction(action) {
175
+ const result = await this.executeActions([action]);
176
+ return (result.transactions[result.transactions.length - 1] ?? {
177
+ success: false,
178
+ error: result.error ?? "No transaction result",
179
+ builtTx: { tx: {}, description: "", action },
180
+ });
181
+ }
182
+ async buildAction(action) {
183
+ if ("venue" in action && action.venue) {
184
+ const adapter = this.adapterRegistry.get(action.venue);
185
+ if (adapter?.meta.supportedChains.includes(this.provider.chainId)) {
186
+ if (adapter.meta.executionType === "offchain") {
187
+ if (adapter.buildAction) {
188
+ return this.normalizeBuildResult(await adapter.buildAction(action, {
189
+ provider: this.provider,
190
+ walletAddress: this.wallet.address,
191
+ chainId: this.provider.chainId,
192
+ mode: this.options.mode,
193
+ }));
194
+ }
195
+ return [
196
+ {
197
+ tx: {},
198
+ description: `Offchain action via ${adapter.meta.name}`,
199
+ action,
200
+ },
201
+ ];
202
+ }
203
+ if (!adapter.buildAction) {
204
+ throw new Error(`Adapter '${adapter.meta.name}' does not support EVM actions`);
205
+ }
206
+ return this.normalizeBuildResult(await adapter.buildAction(action, {
207
+ provider: this.provider,
208
+ walletAddress: this.wallet.address,
209
+ chainId: this.provider.chainId,
210
+ mode: this.options.mode,
211
+ }));
212
+ }
213
+ }
214
+ return [await this.txBuilder.buildAction(action)];
215
+ }
216
+ normalizeBuildResult(result) {
217
+ return Array.isArray(result) ? result : [result];
218
+ }
219
+ /**
220
+ * Get execution summary without executing
221
+ */
222
+ async getExecutionSummary(actions) {
223
+ const builtTxs = [];
224
+ for (const action of actions) {
225
+ const builtTx = await this.buildAction(action);
226
+ builtTxs.push(...builtTx);
227
+ }
228
+ return {
229
+ transactions: builtTxs,
230
+ totalGasEstimate: builtTxs.reduce((sum, tx) => sum + (tx.gasEstimate?.gasLimit ?? 0n), 0n),
231
+ totalCostEstimate: builtTxs.reduce((sum, tx) => sum + (tx.gasEstimate?.estimatedCost ?? 0n), 0n),
232
+ };
233
+ }
234
+ /**
235
+ * Confirm execution with user
236
+ */
237
+ async confirmExecution(builtTxs) {
238
+ const chainId = this.provider.chainId;
239
+ const chainName = getChainName(chainId);
240
+ const isTest = isTestnet(chainId);
241
+ // Skip confirmation for testnets if configured
242
+ if (isTest && this.options.skipTestnetConfirmation) {
243
+ return true;
244
+ }
245
+ const totalGas = builtTxs.reduce((sum, tx) => sum + (tx.gasEstimate?.gasLimit ?? 0n), 0n);
246
+ const totalCost = builtTxs.reduce((sum, tx) => sum + (tx.gasEstimate?.estimatedCost ?? 0n), 0n);
247
+ const message = this.buildConfirmationMessage(builtTxs, chainName, isTest, totalGas, totalCost);
248
+ if (this.options.confirmCallback) {
249
+ return await this.options.confirmCallback(message);
250
+ }
251
+ // If no callback provided, default to true for testnets, false for mainnet
252
+ return isTest;
253
+ }
254
+ /**
255
+ * Build confirmation message
256
+ */
257
+ buildConfirmationMessage(builtTxs, chainName, isTest, totalGas, totalCost) {
258
+ const lines = [
259
+ "",
260
+ `Network: ${chainName}${isTest ? " (testnet)" : ""}`,
261
+ `Wallet: ${this.wallet.address}`,
262
+ "",
263
+ "Transactions to execute:",
264
+ ];
265
+ for (let i = 0; i < builtTxs.length; i++) {
266
+ const tx = builtTxs[i];
267
+ const gasStr = tx.gasEstimate ? ` (gas: ${tx.gasEstimate.gasLimit.toString()})` : "";
268
+ lines.push(` ${i + 1}. ${tx.description}${gasStr}`);
269
+ }
270
+ lines.push("");
271
+ lines.push(`Total estimated gas: ${totalGas.toString()}`);
272
+ if (totalGas > 0n) {
273
+ lines.push(`Total estimated cost: ${formatWei(totalCost)} ${getNativeCurrencySymbol(this.provider.chainId)} (~${formatGasCostUsd(totalGas, totalCost / totalGas)})`);
274
+ }
275
+ else {
276
+ lines.push("Total estimated cost: unknown (no gas estimate)");
277
+ }
278
+ lines.push("");
279
+ if (!isTest) {
280
+ lines.push("⚠️ WARNING: This is MAINNET. Real funds will be used.");
281
+ lines.push("");
282
+ }
283
+ lines.push("Proceed with execution?");
284
+ return lines.join("\n");
285
+ }
286
+ /**
287
+ * Apply gas multiplier to transaction
288
+ */
289
+ applyGasMultiplier(tx) {
290
+ const multiplier = this.options.gasMultiplier ?? 1.0;
291
+ if (multiplier === 1.0) {
292
+ return tx;
293
+ }
294
+ const multiply = (value) => {
295
+ if (value === undefined)
296
+ return undefined;
297
+ return BigInt(Math.ceil(Number(value) * multiplier));
298
+ };
299
+ return {
300
+ ...tx,
301
+ gasLimit: multiply(tx.gasLimit),
302
+ maxFeePerGas: multiply(tx.maxFeePerGas),
303
+ maxPriorityFeePerGas: multiply(tx.maxPriorityFeePerGas),
304
+ gasPrice: multiply(tx.gasPrice),
305
+ };
306
+ }
307
+ /**
308
+ * Send progress update
309
+ */
310
+ progress(message) {
311
+ if (this.options.progressCallback) {
312
+ this.options.progressCallback(message);
313
+ }
314
+ }
315
+ async tryExecuteOffchainAction(action) {
316
+ if (!("venue" in action) || !action.venue) {
317
+ return null;
318
+ }
319
+ const adapter = this.adapterRegistry.get(action.venue);
320
+ if (!adapter || adapter.meta.executionType !== "offchain") {
321
+ return null;
322
+ }
323
+ if (!adapter.executeAction) {
324
+ return {
325
+ success: false,
326
+ id: "",
327
+ error: `Adapter '${adapter.meta.name}' does not support offchain execution`,
328
+ };
329
+ }
330
+ try {
331
+ const result = await adapter.executeAction(action, {
332
+ provider: this.provider,
333
+ walletAddress: this.wallet.address,
334
+ chainId: this.provider.chainId,
335
+ mode: this.options.mode,
336
+ });
337
+ return { ...result, success: true };
338
+ }
339
+ catch (error) {
340
+ return {
341
+ success: false,
342
+ id: "",
343
+ error: error.message,
344
+ };
345
+ }
346
+ }
347
+ }
348
+ /**
349
+ * Create an executor
350
+ */
351
+ export function createExecutor(options) {
352
+ return new Executor(options);
353
+ }
354
+ //# sourceMappingURL=executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.js","sourceRoot":"","sources":["../../src/wallet/executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Wallet module
3
+ *
4
+ * Provides key management, transaction building, and execution capabilities.
5
+ */
6
+ export type { KeySourceType, KeyConfig, Wallet, TransactionRequest, TransactionReceipt, TransactionLog, ProviderConfig, GasEstimate, } from "./types.js";
7
+ export { CHAIN_CONFIGS, isTestnet, getChainName, getNativeCurrencySymbol, isNativeCurrency, } from "./types.js";
8
+ export { loadPrivateKey, createWallet, createWalletFromMnemonic, createWalletFromConfig, getAddressFromConfig, generatePrivateKey, createKeystore, KeyLoadError, } from "./keystore.js";
9
+ export { Provider, createProvider, formatWei, formatGasCostUsd, } from "./provider.js";
10
+ export type { BuiltTransaction } from "./tx-builder.js";
11
+ export { TransactionBuilder, createTransactionBuilder } from "./tx-builder.js";
12
+ export type { ExecutionMode, ExecutorOptions, TransactionResult, ExecutionResult, } from "./executor.js";
13
+ export { Executor, createExecutor } from "./executor.js";
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,YAAY,EACV,aAAa,EACb,SAAS,EACT,MAAM,EACN,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,QAAQ,EACR,cAAc,EACd,SAAS,EACT,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAGvB,YAAY,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAG/E,YAAY,EACV,aAAa,EACb,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Wallet module
3
+ *
4
+ * Provides key management, transaction building, and execution capabilities.
5
+ */
6
+ export { CHAIN_CONFIGS, isTestnet, getChainName, getNativeCurrencySymbol, isNativeCurrency, } from "./types.js";
7
+ // Keystore
8
+ export { loadPrivateKey, createWallet, createWalletFromMnemonic, createWalletFromConfig, getAddressFromConfig, generatePrivateKey, createKeystore, KeyLoadError, } from "./keystore.js";
9
+ // Provider
10
+ export { Provider, createProvider, formatWei, formatGasCostUsd, } from "./provider.js";
11
+ export { TransactionBuilder, createTransactionBuilder } from "./tx-builder.js";
12
+ export { Executor, createExecutor } from "./executor.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/wallet/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAcH,OAAO,EACL,aAAa,EACb,SAAS,EACT,YAAY,EACZ,uBAAuB,EACvB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AAEpB,WAAW;AACX,OAAO,EACL,cAAc,EACd,YAAY,EACZ,wBAAwB,EACxB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,YAAY,GACb,MAAM,eAAe,CAAC;AAEvB,WAAW;AACX,OAAO,EACL,QAAQ,EACR,cAAc,EACd,SAAS,EACT,gBAAgB,GACjB,MAAM,eAAe,CAAC;AAIvB,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAS/E,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC"}