@pushchain/core 6.0.25 → 6.0.27-alpha.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 (183) hide show
  1. package/AGW.md +194 -0
  2. package/CHANGELOG.md +74 -0
  3. package/README.md +2 -0
  4. package/package.json +7 -1
  5. package/src/lib/agentic/agentic.d.ts +23 -0
  6. package/src/lib/agentic/agentic.js +51 -0
  7. package/src/lib/agentic/agentic.types.d.ts +409 -0
  8. package/src/lib/agentic/agentic.types.js +3 -0
  9. package/src/lib/agentic/capabilities.d.ts +37 -0
  10. package/src/lib/agentic/capabilities.js +64 -0
  11. package/src/lib/agentic/chain.d.ts +3 -0
  12. package/src/lib/agentic/chain.js +15 -0
  13. package/src/lib/agentic/codec/abi-layout.d.ts +15 -0
  14. package/src/lib/agentic/codec/abi-layout.js +121 -0
  15. package/src/lib/agentic/codec/defaults.d.ts +51 -0
  16. package/src/lib/agentic/codec/defaults.js +53 -0
  17. package/src/lib/agentic/codec/ids.d.ts +35 -0
  18. package/src/lib/agentic/codec/ids.js +74 -0
  19. package/src/lib/agentic/codec/native.d.ts +75 -0
  20. package/src/lib/agentic/codec/native.js +328 -0
  21. package/src/lib/agentic/codec/rules.d.ts +45 -0
  22. package/src/lib/agentic/codec/rules.js +110 -0
  23. package/src/lib/agentic/codec/selectors.d.ts +19 -0
  24. package/src/lib/agentic/codec/selectors.js +60 -0
  25. package/src/lib/agentic/codec/session.d.ts +54 -0
  26. package/src/lib/agentic/codec/session.js +65 -0
  27. package/src/lib/agentic/codec/svm-accounts.d.ts +35 -0
  28. package/src/lib/agentic/codec/svm-accounts.js +68 -0
  29. package/src/lib/agentic/codec/svm-idl.d.ts +11 -0
  30. package/src/lib/agentic/codec/svm-idl.js +226 -0
  31. package/src/lib/agentic/codec/svm-terms.d.ts +157 -0
  32. package/src/lib/agentic/codec/svm-terms.js +242 -0
  33. package/src/lib/agentic/codec/universal-terms.d.ts +67 -0
  34. package/src/lib/agentic/codec/universal-terms.js +41 -0
  35. package/src/lib/agentic/codec/universal.d.ts +14 -0
  36. package/src/lib/agentic/codec/universal.js +157 -0
  37. package/src/lib/agentic/constants.d.ts +11 -0
  38. package/src/lib/agentic/constants.js +15 -0
  39. package/src/lib/agentic/context.d.ts +29 -0
  40. package/src/lib/agentic/context.js +56 -0
  41. package/src/lib/agentic/contracts/abi/v5/agent-validator.d.ts +105 -0
  42. package/src/lib/agentic/contracts/abi/v5/agent-validator.js +149 -0
  43. package/src/lib/agentic/contracts/abi/v5/agw-factory.d.ts +847 -0
  44. package/src/lib/agentic/contracts/abi/v5/agw-factory.js +1108 -0
  45. package/src/lib/agentic/contracts/abi/v5/agw.d.ts +1211 -0
  46. package/src/lib/agentic/contracts/abi/v5/agw.js +1588 -0
  47. package/src/lib/agentic/contracts/abi/v5/index.d.ts +6 -0
  48. package/src/lib/agentic/contracts/abi/v5/index.js +17 -0
  49. package/src/lib/agentic/contracts/abi/v5/smart-session.d.ts +1493 -0
  50. package/src/lib/agentic/contracts/abi/v5/smart-session.js +1965 -0
  51. package/src/lib/agentic/contracts/abi/v5/universal-rules-policy.d.ts +1640 -0
  52. package/src/lib/agentic/contracts/abi/v5/universal-rules-policy.js +2160 -0
  53. package/src/lib/agentic/contracts/donut-v5.d.ts +11 -0
  54. package/src/lib/agentic/contracts/donut-v5.js +15 -0
  55. package/src/lib/agentic/contracts/prc20-metadata.d.ts +26 -0
  56. package/src/lib/agentic/contracts/prc20-metadata.js +87 -0
  57. package/src/lib/agentic/contracts/reader.d.ts +35 -0
  58. package/src/lib/agentic/contracts/reader.js +16 -0
  59. package/src/lib/agentic/contracts/v5.d.ts +5323 -0
  60. package/src/lib/agentic/contracts/v5.js +316 -0
  61. package/src/lib/agentic/deployments.d.ts +61 -0
  62. package/src/lib/agentic/deployments.js +203 -0
  63. package/src/lib/agentic/errors.d.ts +71 -0
  64. package/src/lib/agentic/errors.js +92 -0
  65. package/src/lib/agentic/execution/guards.d.ts +9 -0
  66. package/src/lib/agentic/execution/guards.js +30 -0
  67. package/src/lib/agentic/execution/outbound.d.ts +55 -0
  68. package/src/lib/agentic/execution/outbound.js +187 -0
  69. package/src/lib/agentic/execution/send.d.ts +9 -0
  70. package/src/lib/agentic/execution/send.js +276 -0
  71. package/src/lib/agentic/execution/svm-instruction.d.ts +24 -0
  72. package/src/lib/agentic/execution/svm-instruction.js +40 -0
  73. package/src/lib/agentic/execution/svm-outbound.d.ts +18 -0
  74. package/src/lib/agentic/execution/svm-outbound.js +86 -0
  75. package/src/lib/agentic/execution/svm-payload.d.ts +18 -0
  76. package/src/lib/agentic/execution/svm-payload.js +136 -0
  77. package/src/lib/agentic/execution/svm-public.d.ts +5 -0
  78. package/src/lib/agentic/execution/svm-public.js +182 -0
  79. package/src/lib/agentic/execution/svm-quote.d.ts +11 -0
  80. package/src/lib/agentic/execution/svm-quote.js +24 -0
  81. package/src/lib/agentic/execution/svm-send.d.ts +44 -0
  82. package/src/lib/agentic/execution/svm-send.js +90 -0
  83. package/src/lib/agentic/index.d.ts +5 -0
  84. package/src/lib/agentic/index.js +10 -0
  85. package/src/lib/agentic/management/common.d.ts +29 -0
  86. package/src/lib/agentic/management/common.js +114 -0
  87. package/src/lib/agentic/management/create.d.ts +16 -0
  88. package/src/lib/agentic/management/create.js +271 -0
  89. package/src/lib/agentic/management/duplicates.d.ts +4 -0
  90. package/src/lib/agentic/management/duplicates.js +20 -0
  91. package/src/lib/agentic/management/label.d.ts +3 -0
  92. package/src/lib/agentic/management/label.js +17 -0
  93. package/src/lib/agentic/management/prepare.d.ts +7 -0
  94. package/src/lib/agentic/management/prepare.js +95 -0
  95. package/src/lib/agentic/management/rules-write.d.ts +42 -0
  96. package/src/lib/agentic/management/rules-write.js +279 -0
  97. package/src/lib/agentic/management/svm-context.d.ts +25 -0
  98. package/src/lib/agentic/management/svm-context.js +55 -0
  99. package/src/lib/agentic/management/svm-metadata.d.ts +10 -0
  100. package/src/lib/agentic/management/svm-metadata.js +56 -0
  101. package/src/lib/agentic/management/svm-public.d.ts +6 -0
  102. package/src/lib/agentic/management/svm-public.js +125 -0
  103. package/src/lib/agentic/management/svm.d.ts +27 -0
  104. package/src/lib/agentic/management/svm.js +150 -0
  105. package/src/lib/agentic/presets/catalog.d.ts +21 -0
  106. package/src/lib/agentic/presets/catalog.js +10 -0
  107. package/src/lib/agentic/presets/index.d.ts +5 -0
  108. package/src/lib/agentic/presets/index.js +190 -0
  109. package/src/lib/agentic/presets/types.d.ts +44 -0
  110. package/src/lib/agentic/presets/types.js +3 -0
  111. package/src/lib/agentic/public-rule.d.ts +9 -0
  112. package/src/lib/agentic/public-rule.js +342 -0
  113. package/src/lib/agentic/reads/checkpoints.d.ts +17 -0
  114. package/src/lib/agentic/reads/checkpoints.js +109 -0
  115. package/src/lib/agentic/reads/rules.d.ts +42 -0
  116. package/src/lib/agentic/reads/rules.js +286 -0
  117. package/src/lib/agentic/reads/snapshot.d.ts +28 -0
  118. package/src/lib/agentic/reads/snapshot.js +85 -0
  119. package/src/lib/agentic/reads/svm.d.ts +17 -0
  120. package/src/lib/agentic/reads/svm.js +52 -0
  121. package/src/lib/agentic/reads/wallets.d.ts +25 -0
  122. package/src/lib/agentic/reads/wallets.js +122 -0
  123. package/src/lib/agentic/response.d.ts +41 -0
  124. package/src/lib/agentic/response.js +358 -0
  125. package/src/lib/agentic/revert.d.ts +7 -0
  126. package/src/lib/agentic/revert.js +102 -0
  127. package/src/lib/agentic/runtime.d.ts +58 -0
  128. package/src/lib/agentic/runtime.js +95 -0
  129. package/src/lib/agentic/utils.d.ts +57 -0
  130. package/src/lib/agentic/utils.js +165 -0
  131. package/src/lib/agentic/wallet.d.ts +32 -0
  132. package/src/lib/agentic/wallet.js +130 -0
  133. package/src/lib/constants/chain.js +1 -1
  134. package/src/lib/constants/enums.d.ts +6 -3
  135. package/src/lib/constants/enums.js +6 -3
  136. package/src/lib/constants/index.d.ts +65 -7
  137. package/src/lib/constants/index.js +18 -3
  138. package/src/lib/constants/read-state.d.ts +15 -2
  139. package/src/lib/constants/read-state.js +19 -3
  140. package/src/lib/index.d.ts +9 -3
  141. package/src/lib/index.js +11 -2
  142. package/src/lib/orchestrator/internals/errors.d.ts +7 -0
  143. package/src/lib/orchestrator/internals/errors.js +13 -1
  144. package/src/lib/orchestrator/internals/execute-standard.d.ts +3 -1
  145. package/src/lib/orchestrator/internals/execute-standard.js +3 -3
  146. package/src/lib/orchestrator/internals/outbound-sync.js +52 -7
  147. package/src/lib/orchestrator/internals/push-chain-tx.d.ts +1 -1
  148. package/src/lib/orchestrator/internals/push-chain-tx.js +13 -1
  149. package/src/lib/orchestrator/orchestrator.d.ts +3 -0
  150. package/src/lib/orchestrator/orchestrator.js +13 -1
  151. package/src/lib/orchestrator/orchestrator.types.d.ts +8 -0
  152. package/src/lib/orchestrator/route-detector.js +3 -2
  153. package/src/lib/orchestrator/svm-idl/resolve.d.ts +2 -0
  154. package/src/lib/orchestrator/svm-idl/resolve.js +11 -1
  155. package/src/lib/progress-hook/progress-hook.js +84 -0
  156. package/src/lib/progress-hook/progress-hook.types.d.ts +14 -2
  157. package/src/lib/progress-hook/progress-hook.types.js +13 -0
  158. package/src/lib/push-chain/push-chain.d.ts +58 -16
  159. package/src/lib/push-chain/push-chain.js +68 -8
  160. package/src/lib/push-client/push-client.d.ts +7 -0
  161. package/src/lib/push-client/push-client.js +41 -15
  162. package/src/lib/read-state/destination.js +6 -1
  163. package/src/lib/read-state/envelopes/evm.js +2 -3
  164. package/src/lib/read-state/envelopes/svm.js +11 -1
  165. package/src/lib/read-state/read-executor.js +4 -0
  166. package/src/lib/read-state/read-params.d.ts +71 -26
  167. package/src/lib/read-state/read-params.js +60 -15
  168. package/src/lib/read-state/read-state.types.d.ts +44 -1
  169. package/src/lib/read-state/read-state.types.js +23 -1
  170. package/src/lib/read-state/read-tracker.d.ts +6 -1
  171. package/src/lib/read-state/read-tracker.js +83 -17
  172. package/src/lib/read-state/registry.js +2 -3
  173. package/src/lib/read-state/result-decoder.js +6 -0
  174. package/src/lib/read-state/spec-builder.js +2 -2
  175. package/src/lib/read-state/svm-account.d.ts +20 -0
  176. package/src/lib/read-state/svm-account.js +114 -0
  177. package/src/lib/read-state/svm-pda.d.ts +13 -0
  178. package/src/lib/read-state/svm-pda.js +147 -0
  179. package/src/lib/universal/prc20-address.d.ts +15 -0
  180. package/src/lib/universal/prc20-address.js +135 -0
  181. package/src/lib/utils.d.ts +6 -13
  182. package/src/lib/utils.js +5 -128
  183. package/src/lib/vm-client/evm-client.js +34 -20
@@ -7,17 +7,23 @@ export { isPC20Reference } from './orchestrator/orchestrator.types';
7
7
  export { PC20Error, InvalidPC20AddressError, PC20TokenChainMismatchError, PC20WrapperNotRegisteredError, PC20RegistryMismatchError, PC20FactoryMismatchError, InvalidPC20MetadataError, PC20ExpectedButPRC20Error, PC20AmbiguousAddressError, UnsupportedPC20DestinationError, InsufficientPC20BalanceError, PC20UnknownChainNamespaceError, PC20WrapperPredictionUnavailableError, PC20ExportRevertedError, PC20UnsafeEmptyPayloadError, } from './orchestrator/internals/pc20/errors';
8
8
  export type { ChainTarget, ChainSource, UniversalTo, TransactionRouteType, UniversalExecuteParams, UniversalOutboundTxRequest, PreparedUniversalTx, CascadedTxResponse, CascadeHopInfo, CascadeTrackOptions, CascadeProgressEvent, CascadeCompletionResult, MultiChainTxResponse, OutboundTxDetails, WaitForOutboundOptions, SvmGatewayAccountMeta, SvmExecutePayloadFields, AccountStatus, UEAStatus, RescueFundsParams, } from './orchestrator/orchestrator.types';
9
9
  export { parseUEAVersion } from './orchestrator/orchestrator.types';
10
- export { TransactionRoute, detectRoute, isChainTarget } from './orchestrator/route-detector';
10
+ export { TransactionRoute, detectRoute, isChainTarget, } from './orchestrator/route-detector';
11
11
  export { DEFAULT_MAX_PC_FOR_GAS_BUFFER_BPS, MAX_PC_FOR_GAS_BUFFER_BPS_LIMIT, quoteMaxPCForGasCap, quoteMaxPCForGasCapFromNativeValue, } from './orchestrator/max-pc-for-gas';
12
12
  export type { MaxPCForGasCapInput, MaxPCForGasCapFromNativeValueInput, MaxPCForGasCapQuote, } from './orchestrator/max-pc-for-gas';
13
13
  export { getCEAAddress, getPushAccountForCEA, isCEA, chainSupportsCEA, chainSupportsOutbound, getCEAFactoryAddress, getAllCEAAddresses, } from './orchestrator/cea-utils';
14
14
  export { encodeSvmExecutePayload, isSvmChain, isValidSolanaHexAddress, buildMigrationPayload, buildErc20WithdrawalMulticall, } from './orchestrator/payload-builders';
15
15
  export type { ReadChain, ReadDestination, ResolvedDestination, ReadQuery, EvmReadQuery, SvmReadQuery, Web2ReadQuery, Web2Extract, Web2ValueType, EncodedReadQuery, ReadResultShape, DecodedReadResult, ReadPreflight, ReadSpec, ReadSpecTuple, BuildReadSpecParams, PreparedRead, ReadCallback, SimulateReadResult, ParsedReadRequest, FulfilOutcome, ReceiptLike, ReadRef, ReadLifecycleOptions, ReadFees, UniversalReadResponse, ReadResponseTuple, BatchReadResponse, } from './read-state/read-state.types';
16
- export type { ReadOptions, ReadPrepareOptions, ReadQueryOptions, ReadCallbackOptions, ReadValue, ValidateReadCall, ReadWeb2Options, ReadTrackOptions, ReadExecuteOptions } from './read-state/read-params';
17
- export { UNIVERSAL_READ_STATUS, READ_STATUS, READ_ERROR_CODE, CONTRACT_REQUEST_STATUS, TERMINAL_READ_STATUSES, } from './read-state/read-state.types';
16
+ export type { ReadOptions, ReadPrepareOptions, ReadQueryOptions, ReadCallbackOptions, ReadValue, ValidateReadCall, ReadWeb2Options, ReadTrackOptions, ReadExecuteOptions, } from './read-state/read-params';
17
+ export { UNIVERSAL_READ_STATUS, READ_STATUS, READ_ERROR_CODE, READ_OUTCOME, CONTRACT_REQUEST_STATUS, TERMINAL_READ_STATUSES, } from './read-state/read-state.types';
18
18
  export { ReadStateError, InvalidReadQueryError, InvalidReadSpecError, ReadHeightUnavailableError, UnsupportedReadDestinationError, ReadDecodeError, ReadTimeoutError, ReadNotFoundError, ReadRegistryUnavailableError, } from './read-state/errors';
19
19
  export type { ReadSpecViolation } from './read-state/errors';
20
20
  export { resolveDestination, encodeReadQuery, decodeReadResult, parseReadRequestsFromReceipt, parseFulfilOutcome, buildReadSpecFromPreflight, validateReadSpec, toCallData, sizeCallbackBudget, inferResultShape, toRequestIdHex, toReadQuery, } from './read-state';
21
21
  export { UNIVERSAL_CALLBACK_EVM } from './constants/abi/universalCallback.evm';
22
22
  export { UNIVERSAL_READ_REGISTRY_EVM } from './constants/abi/universalReadRegistry.evm';
23
+ export { PushChainExecutionError, PushChainBatchExecutionError, } from './orchestrator/internals/errors';
24
+ export type { DecodedErrorPayload } from './orchestrator/internals/errors';
25
+ export type { PushChainInitializeOptions } from './push-chain/push-chain';
26
+ export { AGENTIC_ERROR_CODE, AgenticError, AgenticRevertError, } from './agentic';
27
+ export type { AgenticAddress, AgenticDoor, AgenticErrorCode, AgenticHex, AgenticNamespace, AgenticProgressHook, AgenticTxMetadata, AgenticWallet, AllowedCall, AssetCap, Checkpoint, CheckpointKind, CreateOptions, CreateResult, ForeignChainNamespace, DecodedSolanaRule, Rule, RuleInput, Pin, Spent, WalletMarker, RulesRecord, Selector, WalletInfo, WalletSummary, } from './agentic';
23
28
  export { PushChain };
29
+ export type { Preset, PresetCategory, PresetAsset, PresetOptions, ReadyPresetOptions, PresetRuleTemplate, AgenticPresets, } from './agentic';
package/src/lib/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ReadNotFoundError = exports.ReadTimeoutError = exports.ReadDecodeError = exports.UnsupportedReadDestinationError = exports.ReadHeightUnavailableError = exports.InvalidReadSpecError = exports.InvalidReadQueryError = exports.ReadStateError = exports.TERMINAL_READ_STATUSES = exports.CONTRACT_REQUEST_STATUS = exports.READ_ERROR_CODE = exports.READ_STATUS = exports.UNIVERSAL_READ_STATUS = exports.buildErc20WithdrawalMulticall = exports.buildMigrationPayload = exports.isValidSolanaHexAddress = exports.isSvmChain = exports.encodeSvmExecutePayload = exports.getAllCEAAddresses = exports.getCEAFactoryAddress = exports.chainSupportsOutbound = exports.chainSupportsCEA = exports.isCEA = exports.getPushAccountForCEA = exports.getCEAAddress = exports.quoteMaxPCForGasCapFromNativeValue = exports.quoteMaxPCForGasCap = exports.MAX_PC_FOR_GAS_BUFFER_BPS_LIMIT = exports.DEFAULT_MAX_PC_FOR_GAS_BUFFER_BPS = exports.isChainTarget = exports.detectRoute = exports.TransactionRoute = exports.parseUEAVersion = exports.PC20UnsafeEmptyPayloadError = exports.PC20ExportRevertedError = exports.PC20WrapperPredictionUnavailableError = exports.PC20UnknownChainNamespaceError = exports.InsufficientPC20BalanceError = exports.UnsupportedPC20DestinationError = exports.PC20AmbiguousAddressError = exports.PC20ExpectedButPRC20Error = exports.InvalidPC20MetadataError = exports.PC20FactoryMismatchError = exports.PC20RegistryMismatchError = exports.PC20WrapperNotRegisteredError = exports.PC20TokenChainMismatchError = exports.InvalidPC20AddressError = exports.PC20Error = exports.isPC20Reference = exports.CHAIN = void 0;
4
- exports.PushChain = exports.UNIVERSAL_READ_REGISTRY_EVM = exports.UNIVERSAL_CALLBACK_EVM = exports.toReadQuery = exports.toRequestIdHex = exports.inferResultShape = exports.sizeCallbackBudget = exports.toCallData = exports.validateReadSpec = exports.buildReadSpecFromPreflight = exports.parseFulfilOutcome = exports.parseReadRequestsFromReceipt = exports.decodeReadResult = exports.encodeReadQuery = exports.resolveDestination = exports.ReadRegistryUnavailableError = void 0;
3
+ exports.ReadTimeoutError = exports.ReadDecodeError = exports.UnsupportedReadDestinationError = exports.ReadHeightUnavailableError = exports.InvalidReadSpecError = exports.InvalidReadQueryError = exports.ReadStateError = exports.TERMINAL_READ_STATUSES = exports.CONTRACT_REQUEST_STATUS = exports.READ_OUTCOME = exports.READ_ERROR_CODE = exports.READ_STATUS = exports.UNIVERSAL_READ_STATUS = exports.buildErc20WithdrawalMulticall = exports.buildMigrationPayload = exports.isValidSolanaHexAddress = exports.isSvmChain = exports.encodeSvmExecutePayload = exports.getAllCEAAddresses = exports.getCEAFactoryAddress = exports.chainSupportsOutbound = exports.chainSupportsCEA = exports.isCEA = exports.getPushAccountForCEA = exports.getCEAAddress = exports.quoteMaxPCForGasCapFromNativeValue = exports.quoteMaxPCForGasCap = exports.MAX_PC_FOR_GAS_BUFFER_BPS_LIMIT = exports.DEFAULT_MAX_PC_FOR_GAS_BUFFER_BPS = exports.isChainTarget = exports.detectRoute = exports.TransactionRoute = exports.parseUEAVersion = exports.PC20UnsafeEmptyPayloadError = exports.PC20ExportRevertedError = exports.PC20WrapperPredictionUnavailableError = exports.PC20UnknownChainNamespaceError = exports.InsufficientPC20BalanceError = exports.UnsupportedPC20DestinationError = exports.PC20AmbiguousAddressError = exports.PC20ExpectedButPRC20Error = exports.InvalidPC20MetadataError = exports.PC20FactoryMismatchError = exports.PC20RegistryMismatchError = exports.PC20WrapperNotRegisteredError = exports.PC20TokenChainMismatchError = exports.InvalidPC20AddressError = exports.PC20Error = exports.isPC20Reference = exports.CHAIN = void 0;
4
+ exports.PushChain = exports.AgenticRevertError = exports.AgenticError = exports.AGENTIC_ERROR_CODE = exports.PushChainBatchExecutionError = exports.PushChainExecutionError = exports.UNIVERSAL_READ_REGISTRY_EVM = exports.UNIVERSAL_CALLBACK_EVM = exports.toReadQuery = exports.toRequestIdHex = exports.inferResultShape = exports.sizeCallbackBudget = exports.toCallData = exports.validateReadSpec = exports.buildReadSpecFromPreflight = exports.parseFulfilOutcome = exports.parseReadRequestsFromReceipt = exports.decodeReadResult = exports.encodeReadQuery = exports.resolveDestination = exports.ReadRegistryUnavailableError = exports.ReadNotFoundError = void 0;
5
5
  const push_chain_1 = require("./push-chain/push-chain");
6
6
  Object.defineProperty(exports, "PushChain", { enumerable: true, get: function () { return push_chain_1.PushChain; } });
7
7
  var enums_1 = require("./constants/enums");
@@ -58,6 +58,7 @@ var read_state_types_1 = require("./read-state/read-state.types");
58
58
  Object.defineProperty(exports, "UNIVERSAL_READ_STATUS", { enumerable: true, get: function () { return read_state_types_1.UNIVERSAL_READ_STATUS; } });
59
59
  Object.defineProperty(exports, "READ_STATUS", { enumerable: true, get: function () { return read_state_types_1.READ_STATUS; } });
60
60
  Object.defineProperty(exports, "READ_ERROR_CODE", { enumerable: true, get: function () { return read_state_types_1.READ_ERROR_CODE; } });
61
+ Object.defineProperty(exports, "READ_OUTCOME", { enumerable: true, get: function () { return read_state_types_1.READ_OUTCOME; } });
61
62
  Object.defineProperty(exports, "CONTRACT_REQUEST_STATUS", { enumerable: true, get: function () { return read_state_types_1.CONTRACT_REQUEST_STATUS; } });
62
63
  Object.defineProperty(exports, "TERMINAL_READ_STATUSES", { enumerable: true, get: function () { return read_state_types_1.TERMINAL_READ_STATUSES; } });
63
64
  var errors_2 = require("./read-state/errors");
@@ -87,4 +88,12 @@ var universalCallback_evm_1 = require("./constants/abi/universalCallback.evm");
87
88
  Object.defineProperty(exports, "UNIVERSAL_CALLBACK_EVM", { enumerable: true, get: function () { return universalCallback_evm_1.UNIVERSAL_CALLBACK_EVM; } });
88
89
  var universalReadRegistry_evm_1 = require("./constants/abi/universalReadRegistry.evm");
89
90
  Object.defineProperty(exports, "UNIVERSAL_READ_REGISTRY_EVM", { enumerable: true, get: function () { return universalReadRegistry_evm_1.UNIVERSAL_READ_REGISTRY_EVM; } });
91
+ // Structured execution errors (base class of AgenticRevertError)
92
+ var errors_3 = require("./orchestrator/internals/errors");
93
+ Object.defineProperty(exports, "PushChainExecutionError", { enumerable: true, get: function () { return errors_3.PushChainExecutionError; } });
94
+ Object.defineProperty(exports, "PushChainBatchExecutionError", { enumerable: true, get: function () { return errors_3.PushChainBatchExecutionError; } });
95
+ var agentic_1 = require("./agentic");
96
+ Object.defineProperty(exports, "AGENTIC_ERROR_CODE", { enumerable: true, get: function () { return agentic_1.AGENTIC_ERROR_CODE; } });
97
+ Object.defineProperty(exports, "AgenticError", { enumerable: true, get: function () { return agentic_1.AgenticError; } });
98
+ Object.defineProperty(exports, "AgenticRevertError", { enumerable: true, get: function () { return agentic_1.AgenticRevertError; } });
90
99
  //# sourceMappingURL=index.js.map
@@ -39,11 +39,18 @@ export declare class PushChainExecutionError extends Error {
39
39
  readonly code: "PUSH_CHAIN_EXECUTION_FAILED";
40
40
  readonly gatewayTxHash?: string;
41
41
  readonly decodedError?: DecodedErrorPayload;
42
+ /** Underlying transport/RPC error, kept so raw revert data is not lost. */
43
+ readonly cause?: unknown;
42
44
  constructor(message: string, opts?: {
43
45
  gatewayTxHash?: string;
44
46
  decodedError?: DecodedErrorPayload;
47
+ cause?: unknown;
45
48
  });
46
49
  }
50
+ /** @internal A caller required an atomic native batch; sequential fallback is forbidden. */
51
+ export declare class AtomicBatchUnavailableError extends PushChainExecutionError {
52
+ constructor(message: string, cause?: unknown);
53
+ }
47
54
  /** Recovery metadata for a non-atomic Push batch. A pending hash is broadcast but unconfirmed. */
48
55
  export declare class PushChainBatchExecutionError extends PushChainExecutionError {
49
56
  readonly transactionHashes: `0x${string}`[];
@@ -10,7 +10,7 @@
10
10
  * callers.
11
11
  */
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.InsufficientUEABalanceError = exports.PushChainBatchExecutionError = exports.PushChainExecutionError = void 0;
13
+ exports.InsufficientUEABalanceError = exports.PushChainBatchExecutionError = exports.AtomicBatchUnavailableError = exports.PushChainExecutionError = void 0;
14
14
  const formatters_1 = require("../../formatters");
15
15
  /**
16
16
  * Typed error for Route 1 Push Chain tx failures. Thrown by
@@ -31,14 +31,26 @@ class PushChainExecutionError extends Error {
31
31
  code = 'PUSH_CHAIN_EXECUTION_FAILED';
32
32
  gatewayTxHash;
33
33
  decodedError;
34
+ /** Underlying transport/RPC error, kept so raw revert data is not lost. */
35
+ cause;
34
36
  constructor(message, opts = {}) {
35
37
  super((0, formatters_1.normalizePublicErrorMessage)(message));
36
38
  this.name = 'PushChainExecutionError';
37
39
  this.gatewayTxHash = opts.gatewayTxHash;
38
40
  this.decodedError = opts.decodedError;
41
+ if (opts.cause !== undefined)
42
+ this.cause = opts.cause;
39
43
  }
40
44
  }
41
45
  exports.PushChainExecutionError = PushChainExecutionError;
46
+ /** @internal A caller required an atomic native batch; sequential fallback is forbidden. */
47
+ class AtomicBatchUnavailableError extends PushChainExecutionError {
48
+ constructor(message, cause) {
49
+ super(message, { cause });
50
+ this.name = 'AtomicBatchUnavailableError';
51
+ }
52
+ }
53
+ exports.AtomicBatchUnavailableError = AtomicBatchUnavailableError;
42
54
  /** Recovery metadata for a non-atomic Push batch. A pending hash is broadcast but unconfirmed. */
43
55
  class PushChainBatchExecutionError extends PushChainExecutionError {
44
56
  transactionHashes;
@@ -3,4 +3,6 @@ import type { ExecuteParams, UniversalTxResponse } from '../orchestrator.types';
3
3
  import type { OrchestratorContext } from './context';
4
4
  import { type ResponseBuilderCallbacks } from './response-builder';
5
5
  export declare function resolveRequiredFunds(requiredGasFee: bigint, executeValue: bigint, requiredFundsOverride?: bigint): bigint;
6
- export declare function executeStandardPayload(ctx: OrchestratorContext, execute: ExecuteParams, eventBuffer: ProgressEvent[], getResponseCallbacks: () => ResponseBuilderCallbacks): Promise<UniversalTxResponse>;
6
+ export declare function executeStandardPayload(ctx: OrchestratorContext, execute: ExecuteParams, eventBuffer: ProgressEvent[], getResponseCallbacks: () => ResponseBuilderCallbacks, policy?: {
7
+ requireAtomicBatch: boolean;
8
+ }): Promise<UniversalTxResponse>;
@@ -83,7 +83,7 @@ function resolveRequiredFunds(requiredGasFee, executeValue, requiredFundsOverrid
83
83
  ? requiredFundsOverride
84
84
  : baseRequiredFunds;
85
85
  }
86
- async function executeStandardPayload(ctx, execute, eventBuffer, getResponseCallbacks) {
86
+ async function executeStandardPayload(ctx, execute, eventBuffer, getResponseCallbacks, policy) {
87
87
  const transformFn = (tx, buf = []) => (0, response_builder_1.transformToUniversalTxResponse)(ctx, tx, buf, getResponseCallbacks());
88
88
  // Set default value for value if undefined
89
89
  if (execute.value === undefined) {
@@ -104,7 +104,7 @@ async function executeStandardPayload(ctx, execute, eventBuffer, getResponseCall
104
104
  (0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_107);
105
105
  let tx;
106
106
  try {
107
- tx = await (0, push_chain_tx_1.sendPushTx)(ctx, execute, eventBuffer, transformFn);
107
+ tx = await (0, push_chain_tx_1.sendPushTx)(ctx, execute, eventBuffer, transformFn, policy?.requireAtomicBatch);
108
108
  }
109
109
  catch (err) {
110
110
  // Push Chain broadcast failed. Wallet rejection surfaces as 104-04;
@@ -116,7 +116,7 @@ async function executeStandardPayload(ctx, execute, eventBuffer, getResponseCall
116
116
  // outer orchestrator catch doesn't emit a second 199-02 on top.
117
117
  ctx._routeTerminalEmitted = true;
118
118
  if (!isUserDecline && !(err instanceof push_chain_tx_1.PushChainExecutionError)) {
119
- throw new push_chain_tx_1.PushChainExecutionError(errMsg);
119
+ throw new push_chain_tx_1.PushChainExecutionError(errMsg, { cause: err });
120
120
  }
121
121
  throw err;
122
122
  }
@@ -9,8 +9,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
9
9
  exports.OutboundFailedError = exports.OutboundTimeoutError = exports.INBOUND_INITIAL_WAIT_MS = exports.INBOUND_MAX_TIMEOUT_MS = exports.OUTBOUND_MAX_TIMEOUT_MS = exports.OUTBOUND_POLL_INTERVAL_MS = exports.OUTBOUND_INITIAL_WAIT_MS = void 0;
10
10
  exports.waitForOutboundTx = waitForOutboundTx;
11
11
  exports.waitForAllOutboundTxsV2 = waitForAllOutboundTxsV2;
12
+ const tslib_1 = require("tslib");
12
13
  const tracking_1 = require("./pc20/tracking");
13
14
  const viem_1 = require("viem");
15
+ const web3_js_1 = require("@solana/web3.js");
16
+ const bs58_1 = tslib_1.__importDefault(require("bs58"));
14
17
  const chain_1 = require("../../constants/chain");
15
18
  const enums_1 = require("../../constants/enums");
16
19
  const types_1 = require("../../generated/uexecutor/v1/types");
@@ -90,11 +93,11 @@ exports.OutboundFailedError = OutboundFailedError;
90
93
  * (preserves the silent-success bug fix); if no receipt yet or RPC failure,
91
94
  * we keep polling.
92
95
  *
93
- * EVM-only — SVM tiebreaker would need a separate signature lookup path.
96
+ * EVM receipts and confirmed/finalized Solana signatures are supported.
94
97
  */
95
- async function verifyExternalEvmReceipt(ctx, destinationChain, externalTxHash) {
98
+ async function verifyExternalReceipt(ctx, destinationChain, externalTxHash) {
96
99
  const chainInfo = chain_1.CHAIN_INFO[destinationChain];
97
- if (!chainInfo || chainInfo.vm !== enums_1.VM.EVM) {
100
+ if (!chainInfo || (chainInfo.vm !== enums_1.VM.EVM && chainInfo.vm !== enums_1.VM.SVM)) {
98
101
  return 'unsupported';
99
102
  }
100
103
  // Guard against unit-test contexts that don't pass a real rpcUrls map —
@@ -106,6 +109,45 @@ async function verifyExternalEvmReceipt(ctx, destinationChain, externalTxHash) {
106
109
  : chainInfo.defaultRPC;
107
110
  if (!rpcUrls?.length)
108
111
  return 'unsupported';
112
+ if (chainInfo.vm === enums_1.VM.SVM) {
113
+ let signature;
114
+ try {
115
+ const bytes = externalTxHash.startsWith('0x')
116
+ ? /^0x[0-9a-fA-F]{128}$/.test(externalTxHash)
117
+ ? Buffer.from(externalTxHash.slice(2), 'hex')
118
+ : new Uint8Array()
119
+ : bs58_1.default.decode(externalTxHash);
120
+ if (bytes.length !== 64)
121
+ return 'pending';
122
+ signature = bs58_1.default.encode(bytes);
123
+ }
124
+ catch {
125
+ return 'pending';
126
+ }
127
+ for (const url of rpcUrls) {
128
+ try {
129
+ const connection = new web3_js_1.Connection(url, 'confirmed');
130
+ if (`solana:${(await connection.getGenesisHash()).slice(0, 32)}` !==
131
+ destinationChain)
132
+ continue;
133
+ const result = await connection.getSignatureStatuses([signature], {
134
+ searchTransactionHistory: true,
135
+ });
136
+ const status = result.value[0];
137
+ // A processed vote can still disappear. Never report success/failure
138
+ // before the signature is confirmed or finalized on the right cluster.
139
+ if (!status ||
140
+ (status.confirmationStatus !== 'confirmed' &&
141
+ status.confirmationStatus !== 'finalized'))
142
+ return 'pending';
143
+ return status.err ? 'reverted' : 'success';
144
+ }
145
+ catch (error) {
146
+ (0, context_1.printLog)(ctx, `[verifyExternalReceipt] SVM RPC unavailable: ${error instanceof Error ? error.name : 'unknown'}`);
147
+ }
148
+ }
149
+ return 'pending';
150
+ }
109
151
  try {
110
152
  const client = (0, viem_1.createPublicClient)({
111
153
  transport: (0, viem_1.fallback)(rpcUrls.map((url) => (0, viem_1.http)(url))),
@@ -128,7 +170,7 @@ async function verifyExternalEvmReceipt(ctx, destinationChain, externalTxHash) {
128
170
  if (/not found|TransactionReceiptNotFound|could not be found/i.test(msg)) {
129
171
  return 'pending';
130
172
  }
131
- (0, context_1.printLog)(ctx, `[verifyExternalEvmReceipt] RPC error for ${destinationChain} tx ${externalTxHash}: ${msg}`);
173
+ (0, context_1.printLog)(ctx, `[verifyExternalReceipt] RPC error for ${destinationChain} tx ${externalTxHash}: ${msg}`);
132
174
  return 'pending';
133
175
  }
134
176
  }
@@ -268,7 +310,7 @@ async function waitForOutboundTx(ctx, pushChainTxHash, options = {}) {
268
310
  const isCosmosObserved = ob.outboundStatus === types_2.OutboundStatus.OBSERVED;
269
311
  if (!isCosmosObserved) {
270
312
  // Tiebreaker: ask the destination-chain RPC directly.
271
- const verdict = await verifyExternalEvmReceipt(ctx, chain, ob.observedTx.txHash);
313
+ const verdict = await verifyExternalReceipt(ctx, chain, ob.observedTx.txHash);
272
314
  if (verdict === 'reverted') {
273
315
  (0, context_1.printLog)(ctx, `[waitForOutboundTx] Source-chain RPC reports REVERTED for ${ob.destinationChain} tx ${ob.observedTx.txHash} (cosmos still ${types_1.UniversalTxStatus[statusNum] ?? statusNum})`);
274
316
  progressHook?.({
@@ -313,7 +355,10 @@ async function waitForOutboundTx(ctx, pushChainTxHash, options = {}) {
313
355
  // created, and a repeat export deploys no wrapper so nothing is
314
356
  // ever observed to backfill it. Resolve from UniversalCore instead,
315
357
  // keyed by the Push-native source token.
316
- const pc20Wrapper = await (0, tracking_1.resolvePC20WrapperForReceipt)(ctx, ob, { network: ctx.pushNetwork, rpcUrls: ctx.rpcUrls });
358
+ const pc20Wrapper = await (0, tracking_1.resolvePC20WrapperForReceipt)(ctx, ob, {
359
+ network: ctx.pushNetwork,
360
+ rpcUrls: ctx.rpcUrls,
361
+ });
317
362
  const details = {
318
363
  externalTxHash: ob.observedTx.txHash,
319
364
  destinationChain: chain,
@@ -477,7 +522,7 @@ async function waitForAllOutboundTxsV2(ctx, pushChainTxHash, outboundHops, optio
477
522
  continue;
478
523
  const isCosmosObserved = ob.outboundStatus === types_2.OutboundStatus.OBSERVED;
479
524
  if (!isCosmosObserved) {
480
- const verdict = await verifyExternalEvmReceipt(ctx, chain, externalTxHash);
525
+ const verdict = await verifyExternalReceipt(ctx, chain, externalTxHash);
481
526
  if (verdict === 'reverted') {
482
527
  for (const targetHop of pendingTargetHops) {
483
528
  targetHop.status = 'failed';
@@ -20,7 +20,7 @@ type TransformToResponseFn = (tx: TxResponse, eventBuffer: ProgressEvent[]) => P
20
20
  * For multicall arrays: executes each call as a separate transaction with
21
21
  * local nonce management and per-tx receipt confirmation.
22
22
  */
23
- export declare function sendPushTx(ctx: OrchestratorContext, execute: ExecuteParams, eventBuffer: ProgressEvent[], transformFn: TransformToResponseFn): Promise<UniversalTxResponse>;
23
+ export declare function sendPushTx(ctx: OrchestratorContext, execute: ExecuteParams, eventBuffer: ProgressEvent[], transformFn: TransformToResponseFn, requireAtomicBatch?: boolean): Promise<UniversalTxResponse>;
24
24
  export type ResignUniversalPayloadFn = () => Promise<{
25
25
  universalPayload: UniversalPayload;
26
26
  verificationData: `0x${string}`;
@@ -66,7 +66,7 @@ async function getIndexedPushTransaction(ctx, txHash, label) {
66
66
  * For multicall arrays: executes each call as a separate transaction with
67
67
  * local nonce management and per-tx receipt confirmation.
68
68
  */
69
- async function sendPushTx(ctx, execute, eventBuffer, transformFn) {
69
+ async function sendPushTx(ctx, execute, eventBuffer, transformFn, requireAtomicBatch = false) {
70
70
  if (Array.isArray(execute.data)) {
71
71
  const calls = execute.data;
72
72
  // Reject a zero `to` BEFORE route selection so behaviour is identical
@@ -82,6 +82,15 @@ async function sendPushTx(ctx, execute, eventBuffer, transformFn) {
82
82
  // (b) a wallet that can sign a 7702 authorization. When either is missing we
83
83
  // fall back to the legacy non-atomic per-call loop below.
84
84
  const executor = (0, chain_1.getBatchExecutorAddress)(ctx.universalSigner.account.chain);
85
+ if (requireAtomicBatch) {
86
+ if (!executor || !ctx.universalSigner.signAuthorization) {
87
+ throw new errors_1.AtomicBatchUnavailableError('This operation requires a sender-preserving atomic batch; the signer/network does not support EIP-7702.');
88
+ }
89
+ const code = await ctx.pushClient.publicClient.getCode({ address: executor });
90
+ if (!code || code === '0x') {
91
+ throw new errors_1.AtomicBatchUnavailableError(`Atomic batch executor ${executor} is not deployed on the connected network.`);
92
+ }
93
+ }
85
94
  if (executor && ctx.universalSigner.signAuthorization) {
86
95
  try {
87
96
  (0, context_1.printLog)(ctx, `sendPushTx — executing ${calls.length} call(s) atomically via EIP-7702 (executor: ${executor})`);
@@ -100,6 +109,9 @@ async function sendPushTx(ctx, execute, eventBuffer, transformFn) {
100
109
  // (e.g. a real revert) must surface.
101
110
  if (!(err instanceof evm_client_1.EIP7702NotSupportedError))
102
111
  throw err;
112
+ if (requireAtomicBatch) {
113
+ throw new errors_1.AtomicBatchUnavailableError('The signer could not authorize EIP-7702; no sequential transactions were sent.', err);
114
+ }
103
115
  (0, context_1.printLog)(ctx, `sendPushTx — wallet cannot sign EIP-7702 authorization; falling back to sequential execution`);
104
116
  // eslint-disable-next-line no-console
105
117
  console.warn('[push-chain] Wallet cannot produce an EIP-7702 authorization — batch ' +
@@ -97,6 +97,9 @@ export declare class Orchestrator {
97
97
  * Route 1 (Push Chain) dispatches to extracted sub-flow modules.
98
98
  */
99
99
  execute(params: ExecuteParams | UniversalExecuteParams, options?: TransactionExecutionOptions): Promise<UniversalTxResponse>;
100
+ /** @internal Sender-preserving batch. Never uses the native sequential fallback. */
101
+ executeAtomicBatch(params: ExecuteParams, options?: TransactionExecutionOptions): Promise<UniversalTxResponse>;
102
+ private executeWithPolicy;
100
103
  /**
101
104
  * Prepare a universal transaction without executing it.
102
105
  * Returns a PreparedUniversalTx that can be chained with thenOn() or sent with send().
@@ -157,6 +157,16 @@ class Orchestrator {
157
157
  * Route 1 (Push Chain) dispatches to extracted sub-flow modules.
158
158
  */
159
159
  async execute(params, options) {
160
+ return this.executeWithPolicy(params, options, false);
161
+ }
162
+ /** @internal Sender-preserving batch. Never uses the native sequential fallback. */
163
+ async executeAtomicBatch(params, options) {
164
+ if (typeof params.to !== 'string' || !Array.isArray(params.data) || params.data.length < 2 || params.funds) {
165
+ throw new Error('executeAtomicBatch requires multiple Push calls and no signer funds');
166
+ }
167
+ return this.executeWithPolicy(params, options, true);
168
+ }
169
+ async executeWithPolicy(params, options, requireAtomicBatch) {
160
170
  const inlineProgressHook = params.progressHook;
161
171
  if (options || inlineProgressHook) {
162
172
  params = {
@@ -312,7 +322,9 @@ class Orchestrator {
312
322
  ? await (0, internals_1.executeFundsOnly)(this.ctx, legacy, eventBuffer, rcb)
313
323
  : await (0, internals_1.executeFundsWithPayload)(this.ctx, legacy, eventBuffer, rcb));
314
324
  }
315
- return attachPerCallHookForWait(await (0, internals_1.executeStandardPayload)(this.ctx, execute, eventBuffer, rcb));
325
+ return attachPerCallHookForWait(await (requireAtomicBatch
326
+ ? (0, internals_1.executeStandardPayload)(this.ctx, execute, eventBuffer, rcb, { requireAtomicBatch: true })
327
+ : (0, internals_1.executeStandardPayload)(this.ctx, execute, eventBuffer, rcb)));
316
328
  }
317
329
  catch (err) {
318
330
  const errMessage = (0, formatters_1.normalizePublicErrorMessage)(err);
@@ -374,6 +374,14 @@ export interface UniversalTxResponse {
374
374
  childTxHash?: string;
375
375
  /** Transaction route (UOA_TO_PUSH, UOA_TO_CEA, CEA_TO_PUSH, CEA_TO_CEA) */
376
376
  route?: TransactionRouteType;
377
+ /**
378
+ * Agentic wallet (AGW) context, present when the transaction executed
379
+ * through an AGW. `from` is then the wallet and `origin` stays the signer;
380
+ * `agentic.rawTo` / `rawData` hold the wrapped call the signer sent.
381
+ * Outbound to/data/value summarize the first encoded destination call;
382
+ * `agentic.destinationCalls` retains the complete ordered call list.
383
+ */
384
+ agentic?: import('../agentic/agentic.types').AgenticTxMetadata;
377
385
  /**
378
386
  * @internal True when this response was produced by `trackTransaction` and
379
387
  * its progress events have already been replayed via the registered hook.
@@ -19,6 +19,7 @@ exports.detectRoute = detectRoute;
19
19
  exports.validateRouteParams = validateRouteParams;
20
20
  exports.getRouteInfo = getRouteInfo;
21
21
  const enums_1 = require("../constants/enums");
22
+ const read_state_1 = require("../constants/read-state");
22
23
  const tokens_1 = require("../constants/tokens");
23
24
  const orchestrator_types_1 = require("./orchestrator.types");
24
25
  const payload_builders_1 = require("./payload-builders");
@@ -215,8 +216,8 @@ function detectRoute(params) {
215
216
  */
216
217
  function validateRouteParams(params, context) {
217
218
  const toChain = isChainTarget(params.to) ? String(params.to.chain) : undefined;
218
- if (String(params.from?.chain ?? '') === enums_1.CHAIN.WEB2 || toChain === enums_1.CHAIN.WEB2) {
219
- throw new RouteValidationError('CHAIN.WEB2 is a read-only destination and cannot be used with transaction APIs');
219
+ if ((0, read_state_1.isWeb2ReadChain)(String(params.from?.chain ?? '')) || (0, read_state_1.isWeb2ReadChain)(toChain)) {
220
+ throw new RouteValidationError('READ.CHAIN.WEB2 is a read-only destination and cannot be used with transaction APIs');
220
221
  }
221
222
  const route = detectRoute(params);
222
223
  // Validate from.chain is supported external chain (Routes 3, 4)
@@ -12,3 +12,5 @@ export interface ResolvedSvmCall {
12
12
  ixData: Uint8Array;
13
13
  }
14
14
  export declare function resolveSvmCall(input: ResolveInput): ResolvedSvmCall;
15
+ /** Internal AGW seam: use its registry-derived authority, not the signer's CEA. */
16
+ export declare function resolveSvmCallForCea(input: ResolveInput, ceaAuthority: `0x${string}`): ResolvedSvmCall;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resolveSvmCall = resolveSvmCall;
4
+ exports.resolveSvmCallForCea = resolveSvmCallForCea;
4
5
  const web3_js_1 = require("@solana/web3.js");
5
6
  const buffer_1 = require("buffer");
6
7
  const account_1 = require("../../universal/account/account");
@@ -13,6 +14,15 @@ const CEA_AUTHORITY_NAMES = new Set([
13
14
  'ceaSigner',
14
15
  ]);
15
16
  function resolveSvmCall(input) {
17
+ return resolveCall(input);
18
+ }
19
+ /** Internal AGW seam: use its registry-derived authority, not the signer's CEA. */
20
+ function resolveSvmCallForCea(input, ceaAuthority) {
21
+ if (!/^0x[0-9a-fA-F]{64}$/.test(ceaAuthority))
22
+ throw new Error('SVM CEA authority must be 32 bytes');
23
+ return resolveCall(input, ceaAuthority);
24
+ }
25
+ function resolveCall(input, authority) {
16
26
  const idl = (0, registry_1.getIdl)(input.programAddress);
17
27
  if (!idl) {
18
28
  throw new Error(`resolveSvmCall: no IDL found for ${input.programAddress}. ` +
@@ -30,7 +40,7 @@ function resolveSvmCall(input) {
30
40
  throw new Error(`resolveSvmCall: no instruction in IDL '${idl.metadata?.name ?? idl.address}' matches discriminator [${Array.from(disc).join(',')}]`);
31
41
  }
32
42
  const programPk = new web3_js_1.PublicKey(buffer_1.Buffer.from(input.programAddress.slice(2), 'hex'));
33
- const { address: ceaPdaHex } = (0, account_1.deriveSvmCeaPda)(input.senderUea, input.targetChain, true);
43
+ const ceaPdaHex = authority ?? (0, account_1.deriveSvmCeaPda)(input.senderUea, input.targetChain, true).address;
34
44
  const accounts = [];
35
45
  for (const item of ix.accounts) {
36
46
  if ('accounts' in item) {
@@ -1058,6 +1058,27 @@ const RAW_HOOKS_READ = {
1058
1058
  response: { txHash, requestId, logIndex },
1059
1059
  level: 'SUCCESS',
1060
1060
  }),
1061
+ [progress_hook_types_1.PROGRESS_HOOK.READ_TX_104_03]: (ref) => ({
1062
+ id: progress_hook_types_1.PROGRESS_HOOK.READ_TX_104_03,
1063
+ title: 'Looking Up Request',
1064
+ message: `Looking up ${'requestId' in ref ? `read ${ref.requestId}` : `reads in ${ref.txHash}`} on Push Chain`,
1065
+ response: { ...ref },
1066
+ level: 'INFO',
1067
+ }),
1068
+ [progress_hook_types_1.PROGRESS_HOOK.READ_TX_104_04]: (requestId, status) => ({
1069
+ id: progress_hook_types_1.PROGRESS_HOOK.READ_TX_104_04,
1070
+ title: 'Request Found',
1071
+ message: `Read ${requestId} found (status ${status})`,
1072
+ response: { requestId, status },
1073
+ level: 'SUCCESS',
1074
+ }),
1075
+ [progress_hook_types_1.PROGRESS_HOOK.READ_TX_104_05]: (ref, elapsedMs) => ({
1076
+ id: progress_hook_types_1.PROGRESS_HOOK.READ_TX_104_05,
1077
+ title: 'Request Not Found',
1078
+ message: `No read found for ${'requestId' in ref ? ref.requestId : ref.txHash} after ${Math.round(elapsedMs / 1000)}s`,
1079
+ response: { ...ref, elapsedMs },
1080
+ level: 'ERROR',
1081
+ }),
1061
1082
  [progress_hook_types_1.PROGRESS_HOOK.READ_TX_105_01]: (requestId) => ({
1062
1083
  id: progress_hook_types_1.PROGRESS_HOOK.READ_TX_105_01,
1063
1084
  title: 'Awaiting Quorum',
@@ -1212,6 +1233,68 @@ const RAW_HOOKS_READ = {
1212
1233
  level: 'ERROR',
1213
1234
  }),
1214
1235
  };
1236
+ const RAW_HOOKS_AGENTIC = {
1237
+ [progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_101]: (address, index, deployed) => ({
1238
+ id: progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_101,
1239
+ title: 'Agentic Wallet Derived',
1240
+ message: `Wallet ${address} at index ${index} (${deployed ? 'deployed' : 'not deployed'}).`,
1241
+ response: { address, index, deployed },
1242
+ level: 'INFO',
1243
+ }),
1244
+ [progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_102]: (address, strategy) => ({
1245
+ id: progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_102,
1246
+ title: 'Deploy Step Added',
1247
+ message: `Deploying agentic wallet ${address} (${strategy}).`,
1248
+ response: { address, strategy },
1249
+ level: 'INFO',
1250
+ }),
1251
+ [progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_104]: (rulesIds) => ({
1252
+ id: progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_104,
1253
+ title: 'Rules Granted',
1254
+ message: `Granted ${rulesIds.length} rule${rulesIds.length === 1 ? '' : 's'}.`,
1255
+ response: { rulesIds },
1256
+ level: 'INFO',
1257
+ }),
1258
+ [progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_105]: (target) => ({
1259
+ id: progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_105,
1260
+ title: 'Rules Revoked',
1261
+ message: 'all' in target
1262
+ ? 'Revoked every rule on the wallet.'
1263
+ : `Revoked ${target.rulesIds.length} rule${target.rulesIds.length === 1 ? '' : 's'}.`,
1264
+ response: target,
1265
+ level: 'INFO',
1266
+ }),
1267
+ [progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_106]: (label) => ({
1268
+ id: progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_106,
1269
+ title: 'Label Set',
1270
+ message: `Wallet label set to "${label}".`,
1271
+ response: { label },
1272
+ level: 'INFO',
1273
+ }),
1274
+ [progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_107]: (rulesId, chainNamespace, door) => ({
1275
+ id: progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_107,
1276
+ title: 'Rule Resolved',
1277
+ message: door === 'owner'
1278
+ ? `Owner door on ${chainNamespace}; no rule applies.`
1279
+ : `Agent door on ${chainNamespace} under rule ${rulesId}.`,
1280
+ response: { rulesId: rulesId ?? null, chainNamespace, door },
1281
+ level: 'INFO',
1282
+ }),
1283
+ [progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_199_01]: (operation, txHash) => ({
1284
+ id: progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_199_01,
1285
+ title: 'Agentic Operation Done',
1286
+ message: `${operation} completed.`,
1287
+ response: { operation, txHash: txHash ?? null },
1288
+ level: 'SUCCESS',
1289
+ }),
1290
+ [progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_199_02]: (operation, code, message, decodedError) => ({
1291
+ id: progress_hook_types_1.PROGRESS_HOOK.AGENTIC_TX_199_02,
1292
+ title: 'Agentic Operation Failed',
1293
+ message: `${operation} failed: ${message}`,
1294
+ response: { operation, code, decodedError: decodedError ?? null },
1295
+ level: 'ERROR',
1296
+ }),
1297
+ };
1215
1298
  // Combine all routes into the master record
1216
1299
  const RAW_HOOKS = {
1217
1300
  ...RAW_HOOKS_R1,
@@ -1220,6 +1303,7 @@ const RAW_HOOKS = {
1220
1303
  ...RAW_HOOKS_MULTICHAIN,
1221
1304
  ...RAW_HOOKS_MIG,
1222
1305
  ...RAW_HOOKS_READ,
1306
+ ...RAW_HOOKS_AGENTIC,
1223
1307
  };
1224
1308
  // Build final hooks with timestamp injection
1225
1309
  const PROGRESS_HOOKS = Object.fromEntries(Object.entries(RAW_HOOKS).map(([key, value]) => [key, withTimestamp(value)]));
@@ -106,6 +106,9 @@ export declare enum PROGRESS_HOOK {
106
106
  READ_TX_103_03 = "READ-TX-103-03",
107
107
  READ_TX_104_01 = "READ-TX-104-01",
108
108
  READ_TX_104_02 = "READ-TX-104-02",
109
+ READ_TX_104_03 = "READ-TX-104-03",
110
+ READ_TX_104_04 = "READ-TX-104-04",
111
+ READ_TX_104_05 = "READ-TX-104-05",
109
112
  READ_TX_105_01 = "READ-TX-105-01",
110
113
  READ_TX_105_02 = "READ-TX-105-02",
111
114
  READ_TX_105_03 = "READ-TX-105-03",
@@ -131,12 +134,21 @@ export declare enum PROGRESS_HOOK {
131
134
  UEA_MIG_03 = "UEA-MIG-03",
132
135
  UEA_MIG_9901 = "UEA-MIG-9901",
133
136
  UEA_MIG_9902 = "UEA-MIG-9902",
134
- UEA_MIG_9903 = "UEA-MIG-9903"
137
+ UEA_MIG_9903 = "UEA-MIG-9903",
138
+ AGENTIC_TX_101 = "AGENTIC-TX-101",
139
+ AGENTIC_TX_102 = "AGENTIC-TX-102",
140
+ AGENTIC_TX_104 = "AGENTIC-TX-104",
141
+ AGENTIC_TX_105 = "AGENTIC-TX-105",
142
+ AGENTIC_TX_106 = "AGENTIC-TX-106",
143
+ AGENTIC_TX_107 = "AGENTIC-TX-107",
144
+ AGENTIC_TX_199_01 = "AGENTIC-TX-199-01",
145
+ AGENTIC_TX_199_02 = "AGENTIC-TX-199-02"
135
146
  }
136
147
  export type PROGRESS_HOOK_R1 = PROGRESS_HOOK.SEND_TX_101 | PROGRESS_HOOK.SEND_TX_102_01 | PROGRESS_HOOK.SEND_TX_103_01 | PROGRESS_HOOK.SEND_TX_103_02 | PROGRESS_HOOK.SEND_TX_103_03 | PROGRESS_HOOK.SEND_TX_103_03_01 | PROGRESS_HOOK.SEND_TX_103_03_02 | PROGRESS_HOOK.SEND_TX_103_03_03 | PROGRESS_HOOK.SEND_TX_103_03_04 | PROGRESS_HOOK.SEND_TX_104_01 | PROGRESS_HOOK.SEND_TX_104_02 | PROGRESS_HOOK.SEND_TX_104_03 | PROGRESS_HOOK.SEND_TX_104_04 | PROGRESS_HOOK.SEND_TX_105_01 | PROGRESS_HOOK.SEND_TX_105_02 | PROGRESS_HOOK.SEND_TX_106_01 | PROGRESS_HOOK.SEND_TX_106_02 | PROGRESS_HOOK.SEND_TX_106_03 | PROGRESS_HOOK.SEND_TX_106_03_01 | PROGRESS_HOOK.SEND_TX_106_03_02 | PROGRESS_HOOK.SEND_TX_106_04 | PROGRESS_HOOK.SEND_TX_106_05 | PROGRESS_HOOK.SEND_TX_106_06 | PROGRESS_HOOK.SEND_TX_107 | PROGRESS_HOOK.SEND_TX_199_01 | PROGRESS_HOOK.SEND_TX_199_02 | PROGRESS_HOOK.SEND_TX_199_03 | PROGRESS_HOOK.SEND_TX_199_99;
137
148
  export type PROGRESS_HOOK_R2 = PROGRESS_HOOK.SEND_TX_201 | PROGRESS_HOOK.SEND_TX_202_01 | PROGRESS_HOOK.SEND_TX_202_02 | PROGRESS_HOOK.SEND_TX_203_01 | PROGRESS_HOOK.SEND_TX_203_02 | PROGRESS_HOOK.SEND_TX_203_03 | PROGRESS_HOOK.SEND_TX_203_04 | PROGRESS_HOOK.SEND_TX_203_05 | PROGRESS_HOOK.SEND_TX_204_01 | PROGRESS_HOOK.SEND_TX_204_02 | PROGRESS_HOOK.SEND_TX_204_03 | PROGRESS_HOOK.SEND_TX_204_04 | PROGRESS_HOOK.SEND_TX_207 | PROGRESS_HOOK.SEND_TX_209_01 | PROGRESS_HOOK.SEND_TX_209_02 | PROGRESS_HOOK.SEND_TX_299_01 | PROGRESS_HOOK.SEND_TX_299_02 | PROGRESS_HOOK.SEND_TX_299_03 | PROGRESS_HOOK.SEND_TX_299_99;
138
149
  export type PROGRESS_HOOK_R3 = PROGRESS_HOOK.SEND_TX_301 | PROGRESS_HOOK.SEND_TX_302_01 | PROGRESS_HOOK.SEND_TX_302_02 | PROGRESS_HOOK.SEND_TX_303_01 | PROGRESS_HOOK.SEND_TX_303_02 | PROGRESS_HOOK.SEND_TX_303_03_01 | PROGRESS_HOOK.SEND_TX_303_03_02 | PROGRESS_HOOK.SEND_TX_303_03_03 | PROGRESS_HOOK.SEND_TX_303_04 | PROGRESS_HOOK.SEND_TX_303_05 | PROGRESS_HOOK.SEND_TX_303_06 | PROGRESS_HOOK.SEND_TX_304_01 | PROGRESS_HOOK.SEND_TX_304_02 | PROGRESS_HOOK.SEND_TX_304_03 | PROGRESS_HOOK.SEND_TX_304_04 | PROGRESS_HOOK.SEND_TX_307 | PROGRESS_HOOK.SEND_TX_309_01 | PROGRESS_HOOK.SEND_TX_309_02 | PROGRESS_HOOK.SEND_TX_309_03 | PROGRESS_HOOK.SEND_TX_310_01 | PROGRESS_HOOK.SEND_TX_310_02 | PROGRESS_HOOK.SEND_TX_399_01 | PROGRESS_HOOK.SEND_TX_399_02 | PROGRESS_HOOK.SEND_TX_399_03 | PROGRESS_HOOK.SEND_TX_399_99;
139
150
  export type PROGRESS_HOOK_MULTICHAIN = PROGRESS_HOOK.SEND_TX_001 | PROGRESS_HOOK.SEND_TX_002_01 | PROGRESS_HOOK.SEND_TX_002_99_99 | PROGRESS_HOOK.SEND_TX_003_03 | PROGRESS_HOOK.SEND_TX_003_04 | PROGRESS_HOOK.SEND_TX_003_05 | PROGRESS_HOOK.SEND_TX_999_01 | PROGRESS_HOOK.SEND_TX_999_02 | PROGRESS_HOOK.SEND_TX_999_03;
140
151
  export type PROGRESS_HOOK_MIG = PROGRESS_HOOK.UEA_MIG_01 | PROGRESS_HOOK.UEA_MIG_02 | PROGRESS_HOOK.UEA_MIG_03 | PROGRESS_HOOK.UEA_MIG_9901 | PROGRESS_HOOK.UEA_MIG_9902 | PROGRESS_HOOK.UEA_MIG_9903;
141
- export type PROGRESS_HOOK_READ = PROGRESS_HOOK.READ_TX_101 | PROGRESS_HOOK.READ_TX_102_01 | PROGRESS_HOOK.READ_TX_102_02 | PROGRESS_HOOK.READ_TX_102_03 | PROGRESS_HOOK.READ_TX_102_04 | PROGRESS_HOOK.READ_TX_102_05 | PROGRESS_HOOK.READ_TX_103_01 | PROGRESS_HOOK.READ_TX_103_02 | PROGRESS_HOOK.READ_TX_103_03 | PROGRESS_HOOK.READ_TX_104_01 | PROGRESS_HOOK.READ_TX_104_02 | PROGRESS_HOOK.READ_TX_105_01 | PROGRESS_HOOK.READ_TX_105_02 | PROGRESS_HOOK.READ_TX_105_03 | PROGRESS_HOOK.READ_TX_105_04 | PROGRESS_HOOK.READ_TX_106_01 | PROGRESS_HOOK.READ_TX_106_02 | PROGRESS_HOOK.READ_TX_106_03 | PROGRESS_HOOK.READ_TX_106_04 | PROGRESS_HOOK.READ_TX_106_05 | PROGRESS_HOOK.READ_TX_106_06 | PROGRESS_HOOK.READ_TX_199_01 | PROGRESS_HOOK.READ_TX_199_02 | PROGRESS_HOOK.READ_TX_199_03 | PROGRESS_HOOK.READ_TX_199_99 | PROGRESS_HOOK.READ_TX_001 | PROGRESS_HOOK.READ_TX_002_01 | PROGRESS_HOOK.READ_TX_002_99_99 | PROGRESS_HOOK.READ_TX_999_01 | PROGRESS_HOOK.READ_TX_999_02 | PROGRESS_HOOK.READ_TX_999_03;
152
+ export type PROGRESS_HOOK_READ = PROGRESS_HOOK.READ_TX_101 | PROGRESS_HOOK.READ_TX_102_01 | PROGRESS_HOOK.READ_TX_102_02 | PROGRESS_HOOK.READ_TX_102_03 | PROGRESS_HOOK.READ_TX_102_04 | PROGRESS_HOOK.READ_TX_102_05 | PROGRESS_HOOK.READ_TX_103_01 | PROGRESS_HOOK.READ_TX_103_02 | PROGRESS_HOOK.READ_TX_103_03 | PROGRESS_HOOK.READ_TX_104_01 | PROGRESS_HOOK.READ_TX_104_02 | PROGRESS_HOOK.READ_TX_104_03 | PROGRESS_HOOK.READ_TX_104_04 | PROGRESS_HOOK.READ_TX_104_05 | PROGRESS_HOOK.READ_TX_105_01 | PROGRESS_HOOK.READ_TX_105_02 | PROGRESS_HOOK.READ_TX_105_03 | PROGRESS_HOOK.READ_TX_105_04 | PROGRESS_HOOK.READ_TX_106_01 | PROGRESS_HOOK.READ_TX_106_02 | PROGRESS_HOOK.READ_TX_106_03 | PROGRESS_HOOK.READ_TX_106_04 | PROGRESS_HOOK.READ_TX_106_05 | PROGRESS_HOOK.READ_TX_106_06 | PROGRESS_HOOK.READ_TX_199_01 | PROGRESS_HOOK.READ_TX_199_02 | PROGRESS_HOOK.READ_TX_199_03 | PROGRESS_HOOK.READ_TX_199_99 | PROGRESS_HOOK.READ_TX_001 | PROGRESS_HOOK.READ_TX_002_01 | PROGRESS_HOOK.READ_TX_002_99_99 | PROGRESS_HOOK.READ_TX_999_01 | PROGRESS_HOOK.READ_TX_999_02 | PROGRESS_HOOK.READ_TX_999_03;
153
+ export type PROGRESS_HOOK_AGENTIC = PROGRESS_HOOK.AGENTIC_TX_101 | PROGRESS_HOOK.AGENTIC_TX_102 | PROGRESS_HOOK.AGENTIC_TX_104 | PROGRESS_HOOK.AGENTIC_TX_105 | PROGRESS_HOOK.AGENTIC_TX_106 | PROGRESS_HOOK.AGENTIC_TX_107 | PROGRESS_HOOK.AGENTIC_TX_199_01 | PROGRESS_HOOK.AGENTIC_TX_199_02;
142
154
  export {};
@@ -117,6 +117,9 @@ var PROGRESS_HOOK;
117
117
  PROGRESS_HOOK["READ_TX_103_03"] = "READ-TX-103-03";
118
118
  PROGRESS_HOOK["READ_TX_104_01"] = "READ-TX-104-01";
119
119
  PROGRESS_HOOK["READ_TX_104_02"] = "READ-TX-104-02";
120
+ PROGRESS_HOOK["READ_TX_104_03"] = "READ-TX-104-03";
121
+ PROGRESS_HOOK["READ_TX_104_04"] = "READ-TX-104-04";
122
+ PROGRESS_HOOK["READ_TX_104_05"] = "READ-TX-104-05";
120
123
  PROGRESS_HOOK["READ_TX_105_01"] = "READ-TX-105-01";
121
124
  PROGRESS_HOOK["READ_TX_105_02"] = "READ-TX-105-02";
122
125
  PROGRESS_HOOK["READ_TX_105_03"] = "READ-TX-105-03";
@@ -144,5 +147,15 @@ var PROGRESS_HOOK;
144
147
  PROGRESS_HOOK["UEA_MIG_9901"] = "UEA-MIG-9901";
145
148
  PROGRESS_HOOK["UEA_MIG_9902"] = "UEA-MIG-9902";
146
149
  PROGRESS_HOOK["UEA_MIG_9903"] = "UEA-MIG-9903";
150
+ // Agentic wallet (AGW) — AGENTIC-TX (PROPOSED in the AGW SDK spec 3.f).
151
+ // AGENTIC-TX-103 was removed by the spec (create no longer funds).
152
+ PROGRESS_HOOK["AGENTIC_TX_101"] = "AGENTIC-TX-101";
153
+ PROGRESS_HOOK["AGENTIC_TX_102"] = "AGENTIC-TX-102";
154
+ PROGRESS_HOOK["AGENTIC_TX_104"] = "AGENTIC-TX-104";
155
+ PROGRESS_HOOK["AGENTIC_TX_105"] = "AGENTIC-TX-105";
156
+ PROGRESS_HOOK["AGENTIC_TX_106"] = "AGENTIC-TX-106";
157
+ PROGRESS_HOOK["AGENTIC_TX_107"] = "AGENTIC-TX-107";
158
+ PROGRESS_HOOK["AGENTIC_TX_199_01"] = "AGENTIC-TX-199-01";
159
+ PROGRESS_HOOK["AGENTIC_TX_199_02"] = "AGENTIC-TX-199-02";
147
160
  })(PROGRESS_HOOK || (exports.PROGRESS_HOOK = PROGRESS_HOOK = {}));
148
161
  //# sourceMappingURL=progress-hook.types.js.map