@pushchain/core 5.1.3 → 5.1.4-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/package.json +29 -6
  2. package/src/lib/constants/abi/prc20.evm.d.ts +22 -2
  3. package/src/lib/constants/abi/prc20.evm.js +11 -3
  4. package/src/lib/constants/abi/universalGatewayPC.evm.d.ts +59 -0
  5. package/src/lib/constants/abi/universalGatewayPC.evm.js +26 -0
  6. package/src/lib/constants/chain.d.ts +4 -0
  7. package/src/lib/constants/chain.js +6 -2
  8. package/src/lib/index.d.ts +2 -2
  9. package/src/lib/internal/bs58.d.ts +2 -0
  10. package/src/lib/internal/bs58.js +7 -0
  11. package/src/lib/orchestrator/cea-utils.d.ts +0 -9
  12. package/src/lib/orchestrator/cea-utils.js +15 -4
  13. package/src/lib/orchestrator/internals/account-manager.d.ts +16 -0
  14. package/src/lib/orchestrator/internals/account-manager.js +191 -0
  15. package/src/lib/orchestrator/internals/cascade.d.ts +23 -0
  16. package/src/lib/orchestrator/internals/cascade.js +945 -0
  17. package/src/lib/orchestrator/internals/confirmation.d.ts +9 -0
  18. package/src/lib/orchestrator/internals/confirmation.js +123 -0
  19. package/src/lib/orchestrator/internals/context.d.ts +38 -0
  20. package/src/lib/orchestrator/internals/context.js +49 -0
  21. package/src/lib/orchestrator/internals/execute-funds-only.d.ts +11 -0
  22. package/src/lib/orchestrator/internals/execute-funds-only.js +219 -0
  23. package/src/lib/orchestrator/internals/execute-funds-payload.d.ts +11 -0
  24. package/src/lib/orchestrator/internals/execute-funds-payload.js +222 -0
  25. package/src/lib/orchestrator/internals/execute-standard.d.ts +13 -0
  26. package/src/lib/orchestrator/internals/execute-standard.js +225 -0
  27. package/src/lib/orchestrator/internals/gas-calculator.d.ts +38 -0
  28. package/src/lib/orchestrator/internals/gas-calculator.js +424 -0
  29. package/src/lib/orchestrator/internals/gateway-client.d.ts +24 -0
  30. package/src/lib/orchestrator/internals/gateway-client.js +191 -0
  31. package/src/lib/orchestrator/internals/helpers.d.ts +26 -0
  32. package/src/lib/orchestrator/internals/helpers.js +181 -0
  33. package/src/lib/orchestrator/internals/index.d.ts +24 -0
  34. package/src/lib/orchestrator/internals/index.js +132 -0
  35. package/src/lib/orchestrator/internals/outbound-sync.d.ts +49 -0
  36. package/src/lib/orchestrator/internals/outbound-sync.js +357 -0
  37. package/src/lib/orchestrator/internals/outbound-tracker.d.ts +8 -0
  38. package/src/lib/orchestrator/internals/outbound-tracker.js +64 -0
  39. package/src/lib/orchestrator/internals/payload-builder.d.ts +24 -0
  40. package/src/lib/orchestrator/internals/payload-builder.js +178 -0
  41. package/src/lib/orchestrator/internals/push-chain-tx.d.ts +32 -0
  42. package/src/lib/orchestrator/internals/push-chain-tx.js +207 -0
  43. package/src/lib/orchestrator/internals/quote.d.ts +9 -0
  44. package/src/lib/orchestrator/internals/quote.js +114 -0
  45. package/src/lib/orchestrator/internals/rescue.d.ts +20 -0
  46. package/src/lib/orchestrator/internals/rescue.js +112 -0
  47. package/src/lib/orchestrator/internals/response-builder.d.ts +26 -0
  48. package/src/lib/orchestrator/internals/response-builder.js +504 -0
  49. package/src/lib/orchestrator/internals/route-handlers.d.ts +77 -0
  50. package/src/lib/orchestrator/internals/route-handlers.js +1192 -0
  51. package/src/lib/orchestrator/internals/signing.d.ts +27 -0
  52. package/src/lib/orchestrator/internals/signing.js +258 -0
  53. package/src/lib/orchestrator/internals/svm-bridge.d.ts +21 -0
  54. package/src/lib/orchestrator/internals/svm-bridge.js +122 -0
  55. package/src/lib/orchestrator/internals/svm-helpers.d.ts +35 -0
  56. package/src/lib/orchestrator/internals/svm-helpers.js +143 -0
  57. package/src/lib/orchestrator/internals/tx-transformer.d.ts +12 -0
  58. package/src/lib/orchestrator/internals/tx-transformer.js +120 -0
  59. package/src/lib/orchestrator/internals/uea-manager.d.ts +17 -0
  60. package/src/lib/orchestrator/internals/uea-manager.js +164 -0
  61. package/src/lib/orchestrator/orchestrator.d.ts +33 -431
  62. package/src/lib/orchestrator/orchestrator.js +124 -6125
  63. package/src/lib/orchestrator/orchestrator.types.d.ts +11 -10
  64. package/src/lib/orchestrator/payload-builders.js +34 -8
  65. package/src/lib/price-fetch/price-fetch.js +19 -7
  66. package/src/lib/push-chain/push-chain.d.ts +6 -0
  67. package/src/lib/push-chain/push-chain.js +10 -2
  68. package/src/lib/push-client/push-client.d.ts +3 -0
  69. package/src/lib/push-client/push-client.js +21 -31
  70. package/src/lib/universal/account/account.d.ts +35 -16
  71. package/src/lib/universal/account/account.js +298 -16
  72. package/src/lib/universal/signer/signer.d.ts +2 -3
  73. package/src/lib/universal/signer/signer.js +65 -115
  74. package/src/lib/universal/universal.types.d.ts +41 -0
  75. package/src/lib/utils.d.ts +7 -2
  76. package/src/lib/utils.js +65 -34
  77. package/src/lib/vm-client/evm-client.js +3 -11
  78. package/src/lib/vm-client/svm-client.d.ts +0 -4
  79. package/src/lib/vm-client/svm-client.js +2 -8
  80. package/src/index.js.map +0 -1
  81. package/src/lib/cache/cache.js.map +0 -1
  82. package/src/lib/constants/abi/cea.evm.js.map +0 -1
  83. package/src/lib/constants/abi/ceaFactory.evm.js.map +0 -1
  84. package/src/lib/constants/abi/erc20.evm.js.map +0 -1
  85. package/src/lib/constants/abi/factoryV1.js.map +0 -1
  86. package/src/lib/constants/abi/feeLocker.evm.js.map +0 -1
  87. package/src/lib/constants/abi/index.js.map +0 -1
  88. package/src/lib/constants/abi/prc20.evm.js.map +0 -1
  89. package/src/lib/constants/abi/uea-factory.js.map +0 -1
  90. package/src/lib/constants/abi/uea.evm.js.map +0 -1
  91. package/src/lib/constants/abi/uea.svm.js.map +0 -1
  92. package/src/lib/constants/abi/universalGateway.evm.js.map +0 -1
  93. package/src/lib/constants/abi/universalGatewayPC.evm.js.map +0 -1
  94. package/src/lib/constants/abi/universalGatewayV0.evm.js.map +0 -1
  95. package/src/lib/constants/chain.js.map +0 -1
  96. package/src/lib/constants/enums.js.map +0 -1
  97. package/src/lib/constants/index.js.map +0 -1
  98. package/src/lib/constants/selectors.js.map +0 -1
  99. package/src/lib/constants/tokens.js.map +0 -1
  100. package/src/lib/generated/uexecutor/v1/query.js.map +0 -1
  101. package/src/lib/generated/uexecutor/v1/types.js.map +0 -1
  102. package/src/lib/generated/uexecutor/v2/index.js.map +0 -1
  103. package/src/lib/generated/uexecutor/v2/query.js.map +0 -1
  104. package/src/lib/generated/uexecutor/v2/types.js.map +0 -1
  105. package/src/lib/generated/v1/tx.js.map +0 -1
  106. package/src/lib/index.js.map +0 -1
  107. package/src/lib/internal/buffer.js.map +0 -1
  108. package/src/lib/internal/global-buffer-polyfill.js.map +0 -1
  109. package/src/lib/orchestrator/cea-utils.js.map +0 -1
  110. package/src/lib/orchestrator/orchestrator.js.map +0 -1
  111. package/src/lib/orchestrator/orchestrator.types.js.map +0 -1
  112. package/src/lib/orchestrator/payload-builders.js.map +0 -1
  113. package/src/lib/orchestrator/route-detector.js.map +0 -1
  114. package/src/lib/price-fetch/price-fetch.js.map +0 -1
  115. package/src/lib/progress-hook/progress-hook.js.map +0 -1
  116. package/src/lib/progress-hook/progress-hook.types.js.map +0 -1
  117. package/src/lib/push-chain/helpers/abis.js.map +0 -1
  118. package/src/lib/push-chain/helpers/addresses.js.map +0 -1
  119. package/src/lib/push-chain/push-chain.js.map +0 -1
  120. package/src/lib/push-client/push-client.js.map +0 -1
  121. package/src/lib/push-client/push-client.types.js.map +0 -1
  122. package/src/lib/universal/account/account.js.map +0 -1
  123. package/src/lib/universal/account/index.js.map +0 -1
  124. package/src/lib/universal/signer/index.js.map +0 -1
  125. package/src/lib/universal/signer/signer.js.map +0 -1
  126. package/src/lib/universal/signer/signer.types.js.map +0 -1
  127. package/src/lib/universal/universal.types.js.map +0 -1
  128. package/src/lib/utils.js.map +0 -1
  129. package/src/lib/vm-client/evm-client.js.map +0 -1
  130. package/src/lib/vm-client/svm-client.js.map +0 -1
  131. package/src/lib/vm-client/vm-client.types.js.map +0 -1
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+ /**
3
+ * Pure utility functions extracted from Orchestrator.
4
+ *
5
+ * These have minimal dependencies and are used across multiple submodules.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.SUPPORTED_GATEWAY_CHAINS = void 0;
9
+ exports.isPushChain = isPushChain;
10
+ exports.getPushChainForNetwork = getPushChainForNetwork;
11
+ exports.getChainNamespace = getChainNamespace;
12
+ exports.chainFromNamespace = chainFromNamespace;
13
+ exports.getNativePRC20ForChain = getNativePRC20ForChain;
14
+ exports.getUniversalGatewayPCAddress = getUniversalGatewayPCAddress;
15
+ exports.validateFeeLockTxHash = validateFeeLockTxHash;
16
+ exports.validateMainnetConnection = validateMainnetConnection;
17
+ exports.bigintReplacer = bigintReplacer;
18
+ exports.toExecuteParams = toExecuteParams;
19
+ exports.fetchOriginChainTransactionForProgress = fetchOriginChainTransactionForProgress;
20
+ const tslib_1 = require("tslib");
21
+ const web3_js_1 = require("@solana/web3.js");
22
+ const chain_1 = require("../../constants/chain");
23
+ const context_1 = require("./context");
24
+ const enums_1 = require("../../constants/enums");
25
+ /** Chains that support gateway operations (multicall, funds bridging, etc.) */
26
+ exports.SUPPORTED_GATEWAY_CHAINS = [
27
+ enums_1.CHAIN.ETHEREUM_SEPOLIA,
28
+ enums_1.CHAIN.ARBITRUM_SEPOLIA,
29
+ enums_1.CHAIN.BASE_SEPOLIA,
30
+ enums_1.CHAIN.BNB_TESTNET,
31
+ enums_1.CHAIN.SOLANA_DEVNET,
32
+ ];
33
+ // ============================================================================
34
+ // Chain Helpers
35
+ // ============================================================================
36
+ function isPushChain(chain) {
37
+ return (chain === enums_1.CHAIN.PUSH_MAINNET ||
38
+ chain === enums_1.CHAIN.PUSH_TESTNET_DONUT ||
39
+ chain === enums_1.CHAIN.PUSH_LOCALNET);
40
+ }
41
+ function getPushChainForNetwork(pushNetwork) {
42
+ if (pushNetwork === enums_1.PUSH_NETWORK.MAINNET) {
43
+ return enums_1.CHAIN.PUSH_MAINNET;
44
+ }
45
+ else if (pushNetwork === enums_1.PUSH_NETWORK.TESTNET_DONUT ||
46
+ pushNetwork === enums_1.PUSH_NETWORK.TESTNET) {
47
+ return enums_1.CHAIN.PUSH_TESTNET_DONUT;
48
+ }
49
+ else {
50
+ return enums_1.CHAIN.PUSH_LOCALNET;
51
+ }
52
+ }
53
+ function getChainNamespace(chain) {
54
+ const { vm, chainId } = chain_1.CHAIN_INFO[chain];
55
+ const namespace = chain_1.VM_NAMESPACE[vm];
56
+ return `${namespace}:${chainId}`;
57
+ }
58
+ function chainFromNamespace(namespace) {
59
+ for (const [chainKey, info] of Object.entries(chain_1.CHAIN_INFO)) {
60
+ const expected = `${chain_1.VM_NAMESPACE[info.vm]}:${info.chainId}`;
61
+ if (expected === namespace) {
62
+ return chainKey;
63
+ }
64
+ }
65
+ return null;
66
+ }
67
+ function getNativePRC20ForChain(targetChain, pushNetwork) {
68
+ const synthetics = chain_1.SYNTHETIC_PUSH_ERC20[pushNetwork];
69
+ switch (targetChain) {
70
+ case enums_1.CHAIN.ETHEREUM_SEPOLIA:
71
+ case enums_1.CHAIN.ETHEREUM_MAINNET:
72
+ return synthetics.pETH;
73
+ case enums_1.CHAIN.ARBITRUM_SEPOLIA:
74
+ return synthetics.pETH_ARB;
75
+ case enums_1.CHAIN.BASE_SEPOLIA:
76
+ return synthetics.pETH_BASE;
77
+ case enums_1.CHAIN.BNB_TESTNET:
78
+ return synthetics.pETH_BNB;
79
+ case enums_1.CHAIN.SOLANA_DEVNET:
80
+ case enums_1.CHAIN.SOLANA_TESTNET:
81
+ case enums_1.CHAIN.SOLANA_MAINNET:
82
+ return synthetics.pSOL;
83
+ default:
84
+ throw new Error(`No native PRC-20 token mapping for chain ${targetChain}. ` +
85
+ `Use 'funds' parameter to specify the token explicitly.`);
86
+ }
87
+ }
88
+ // ============================================================================
89
+ // Address / Contract Helpers
90
+ // ============================================================================
91
+ function getUniversalGatewayPCAddress() {
92
+ // UniversalGatewayPC is a precompile at a fixed address on Push Chain
93
+ return '0x00000000000000000000000000000000000000C1';
94
+ }
95
+ // ============================================================================
96
+ // Validation
97
+ // ============================================================================
98
+ /**
99
+ * Validates that a feeLockTxHash is a well-formed transaction hash.
100
+ * EVM: must be 0x-prefixed 64-hex-char string (66 chars total).
101
+ * SVM (Base58): must be at least 32 chars.
102
+ */
103
+ function validateFeeLockTxHash(feeLockTxHash) {
104
+ if (feeLockTxHash.startsWith('0x')) {
105
+ if (!/^0x[0-9a-fA-F]{64}$/.test(feeLockTxHash)) {
106
+ throw new Error(`Invalid feeLockTxHash: expected 0x-prefixed 64-character hex string, got "${feeLockTxHash}"`);
107
+ }
108
+ }
109
+ else {
110
+ if (feeLockTxHash.length < 32) {
111
+ throw new Error(`Invalid feeLockTxHash: expected Base58 transaction hash (>=32 chars), got "${feeLockTxHash}"`);
112
+ }
113
+ }
114
+ }
115
+ function validateMainnetConnection(chain, pushChainId) {
116
+ const isMainnet = [enums_1.CHAIN.ETHEREUM_MAINNET, enums_1.CHAIN.SOLANA_MAINNET].includes(chain);
117
+ if (isMainnet &&
118
+ pushChainId !== chain_1.CHAIN_INFO[enums_1.CHAIN.PUSH_MAINNET].chainId) {
119
+ throw new Error('Mainnet chains can only interact with Push Mainnet');
120
+ }
121
+ }
122
+ // ============================================================================
123
+ // Serialization
124
+ // ============================================================================
125
+ function bigintReplacer(_key, value) {
126
+ return typeof value === 'bigint' ? value.toString() : value;
127
+ }
128
+ // ============================================================================
129
+ // Params Conversion
130
+ // ============================================================================
131
+ function toExecuteParams(params) {
132
+ const to = typeof params.to === 'string'
133
+ ? params.to
134
+ : params.to.address;
135
+ return {
136
+ to,
137
+ value: params.value,
138
+ data: params.data,
139
+ funds: params.funds,
140
+ gasLimit: params.gasLimit,
141
+ maxFeePerGas: params.maxFeePerGas,
142
+ maxPriorityFeePerGas: params.maxPriorityFeePerGas,
143
+ deadline: params.deadline,
144
+ payGasWith: params.payGasWith,
145
+ feeLockTxHash: params.feeLockTxHash,
146
+ };
147
+ }
148
+ // ============================================================================
149
+ // Origin Chain Transaction for Progress
150
+ // ============================================================================
151
+ function fetchOriginChainTransactionForProgress(ctx, chain, txHashHex, txHashDisplay) {
152
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
153
+ const { vm, defaultRPC } = chain_1.CHAIN_INFO[chain];
154
+ const rpcUrls = ctx.rpcUrls[chain] || defaultRPC;
155
+ try {
156
+ if (vm === enums_1.VM.EVM) {
157
+ if (!txHashHex.startsWith('0x')) {
158
+ throw new Error('EVM transaction hash must be 0x-prefixed');
159
+ }
160
+ const evmClient = (0, context_1.getOriginEvmClient)(ctx);
161
+ const tx = yield evmClient.publicClient.getTransaction({
162
+ hash: txHashHex,
163
+ });
164
+ return tx !== null && tx !== void 0 ? tx : undefined;
165
+ }
166
+ if (vm === enums_1.VM.SVM) {
167
+ const connection = new web3_js_1.Connection(rpcUrls[0], 'confirmed');
168
+ const tx = yield connection.getTransaction(txHashDisplay, {
169
+ maxSupportedTransactionVersion: 0,
170
+ commitment: 'confirmed',
171
+ });
172
+ return tx !== null && tx !== void 0 ? tx : undefined;
173
+ }
174
+ return undefined;
175
+ }
176
+ catch (_a) {
177
+ return undefined;
178
+ }
179
+ });
180
+ }
181
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1,24 @@
1
+ export type { OrchestratorContext } from './context';
2
+ export { printLog, fireProgressHook } from './context';
3
+ export { isPushChain, getPushChainForNetwork, getChainNamespace, chainFromNamespace, getNativePRC20ForChain, getUniversalGatewayPCAddress, validateMainnetConnection, bigintReplacer, toExecuteParams, fetchOriginChainTransactionForProgress, SUPPORTED_GATEWAY_CHAINS, } from './helpers';
4
+ export { buildUniversalTxRequest, buildMulticallPayloadData, buildGatewayPayloadAndGas, } from './payload-builder';
5
+ export { computeExecutionHash, computeMigrationHash, signUniversalPayload, signMigrationPayload, encodeUniversalPayload, encodeUniversalPayloadSvm, } from './signing';
6
+ export { waitForEvmConfirmationsWithCountdown, waitForSvmConfirmationsWithCountdown, waitForLockerFeeConfirmation, } from './confirmation';
7
+ export { buildSvmUniversalTxRequest, buildSvmUniversalTxRequestFromReq, getSvmProtocolFee, getSvmGatewayLogIndexFromTx, } from './svm-helpers';
8
+ export { computeUniversalTxId, extractUniversalSubTxIdFromTx, extractAllUniversalSubTxIds, } from './outbound-tracker';
9
+ export { waitForOutboundTx, waitForAllOutboundTxsV2, OUTBOUND_INITIAL_WAIT_MS, OUTBOUND_POLL_INTERVAL_MS, OUTBOUND_MAX_TIMEOUT_MS, } from './outbound-sync';
10
+ export { transformToUniversalTxReceipt, reconstructProgressEvents, detectRouteFromUniversalTxData, } from './tx-transformer';
11
+ export { ensureErc20Allowance, queryOutboundGasFee, queryRescueGasFee, calculateNativeAmountForDeposit, calculateGasAmountFromAmountOutMinETH, } from './gas-calculator';
12
+ export { quoteExactOutput } from './quote';
13
+ export { computeUEAOffchain, computeUEA, getUEANonce, getUeaNonceForExecution, getUeaStatusAndNonce, fetchUEAVersion, } from './uea-manager';
14
+ export { getAccountStatus, upgradeAccount, fetchLatestUEAVersion, migrateCEA, } from './account-manager';
15
+ export { toGatewayRequestV1, toGatewayTokenRequestV1, sendGatewayTxWithFallback, sendGatewayTokenTxWithFallback, lockFee, getOriginGatewayContext, } from './gateway-client';
16
+ export { queryUniversalTxStatusFromGatewayTx, trackTransaction, transformToUniversalTxResponse, type ResponseBuilderCallbacks, } from './response-builder';
17
+ export { sendPushTx, sendUniversalTx, extractPcTxAndTransform } from './push-chain-tx';
18
+ export { executeMultiChain, executeUoaToCea, executeUoaToCeaSvm, executeCeaToPush, executeCeaToPushSvm, executeCeaToCea, buildPayloadForRoute, } from './route-handlers';
19
+ export { prepareTransaction, buildHopDescriptor, classifyIntoSegments, getSegmentType, composeCascade, createCascadedBuilder, type CascadeCallbacks, } from './cascade';
20
+ export { sendSVMTxWithFunds } from './svm-bridge';
21
+ export { rescueFunds } from './rescue';
22
+ export { executeFundsOnly } from './execute-funds-only';
23
+ export { executeFundsWithPayload } from './execute-funds-payload';
24
+ export { executeStandardPayload } from './execute-standard';
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getUeaNonceForExecution = exports.getUEANonce = exports.computeUEA = exports.computeUEAOffchain = exports.quoteExactOutput = exports.calculateGasAmountFromAmountOutMinETH = exports.calculateNativeAmountForDeposit = exports.queryRescueGasFee = exports.queryOutboundGasFee = exports.ensureErc20Allowance = exports.detectRouteFromUniversalTxData = exports.reconstructProgressEvents = exports.transformToUniversalTxReceipt = exports.OUTBOUND_MAX_TIMEOUT_MS = exports.OUTBOUND_POLL_INTERVAL_MS = exports.OUTBOUND_INITIAL_WAIT_MS = exports.waitForAllOutboundTxsV2 = exports.waitForOutboundTx = exports.extractAllUniversalSubTxIds = exports.extractUniversalSubTxIdFromTx = exports.computeUniversalTxId = exports.getSvmGatewayLogIndexFromTx = exports.getSvmProtocolFee = exports.buildSvmUniversalTxRequestFromReq = exports.buildSvmUniversalTxRequest = exports.waitForLockerFeeConfirmation = exports.waitForSvmConfirmationsWithCountdown = exports.waitForEvmConfirmationsWithCountdown = exports.encodeUniversalPayloadSvm = exports.encodeUniversalPayload = exports.signMigrationPayload = exports.signUniversalPayload = exports.computeMigrationHash = exports.computeExecutionHash = exports.buildGatewayPayloadAndGas = exports.buildMulticallPayloadData = exports.buildUniversalTxRequest = exports.SUPPORTED_GATEWAY_CHAINS = exports.fetchOriginChainTransactionForProgress = exports.toExecuteParams = exports.bigintReplacer = exports.validateMainnetConnection = exports.getUniversalGatewayPCAddress = exports.getNativePRC20ForChain = exports.chainFromNamespace = exports.getChainNamespace = exports.getPushChainForNetwork = exports.isPushChain = exports.fireProgressHook = exports.printLog = void 0;
4
+ exports.executeStandardPayload = exports.executeFundsWithPayload = exports.executeFundsOnly = exports.rescueFunds = exports.sendSVMTxWithFunds = exports.createCascadedBuilder = exports.composeCascade = exports.getSegmentType = exports.classifyIntoSegments = exports.buildHopDescriptor = exports.prepareTransaction = exports.buildPayloadForRoute = exports.executeCeaToCea = exports.executeCeaToPushSvm = exports.executeCeaToPush = exports.executeUoaToCeaSvm = exports.executeUoaToCea = exports.executeMultiChain = exports.extractPcTxAndTransform = exports.sendUniversalTx = exports.sendPushTx = exports.transformToUniversalTxResponse = exports.trackTransaction = exports.queryUniversalTxStatusFromGatewayTx = exports.getOriginGatewayContext = exports.lockFee = exports.sendGatewayTokenTxWithFallback = exports.sendGatewayTxWithFallback = exports.toGatewayTokenRequestV1 = exports.toGatewayRequestV1 = exports.migrateCEA = exports.fetchLatestUEAVersion = exports.upgradeAccount = exports.getAccountStatus = exports.fetchUEAVersion = exports.getUeaStatusAndNonce = void 0;
5
+ var context_1 = require("./context");
6
+ Object.defineProperty(exports, "printLog", { enumerable: true, get: function () { return context_1.printLog; } });
7
+ Object.defineProperty(exports, "fireProgressHook", { enumerable: true, get: function () { return context_1.fireProgressHook; } });
8
+ // === Chain Utilities & Misc ===
9
+ var helpers_1 = require("./helpers");
10
+ Object.defineProperty(exports, "isPushChain", { enumerable: true, get: function () { return helpers_1.isPushChain; } });
11
+ Object.defineProperty(exports, "getPushChainForNetwork", { enumerable: true, get: function () { return helpers_1.getPushChainForNetwork; } });
12
+ Object.defineProperty(exports, "getChainNamespace", { enumerable: true, get: function () { return helpers_1.getChainNamespace; } });
13
+ Object.defineProperty(exports, "chainFromNamespace", { enumerable: true, get: function () { return helpers_1.chainFromNamespace; } });
14
+ Object.defineProperty(exports, "getNativePRC20ForChain", { enumerable: true, get: function () { return helpers_1.getNativePRC20ForChain; } });
15
+ Object.defineProperty(exports, "getUniversalGatewayPCAddress", { enumerable: true, get: function () { return helpers_1.getUniversalGatewayPCAddress; } });
16
+ Object.defineProperty(exports, "validateMainnetConnection", { enumerable: true, get: function () { return helpers_1.validateMainnetConnection; } });
17
+ Object.defineProperty(exports, "bigintReplacer", { enumerable: true, get: function () { return helpers_1.bigintReplacer; } });
18
+ Object.defineProperty(exports, "toExecuteParams", { enumerable: true, get: function () { return helpers_1.toExecuteParams; } });
19
+ Object.defineProperty(exports, "fetchOriginChainTransactionForProgress", { enumerable: true, get: function () { return helpers_1.fetchOriginChainTransactionForProgress; } });
20
+ Object.defineProperty(exports, "SUPPORTED_GATEWAY_CHAINS", { enumerable: true, get: function () { return helpers_1.SUPPORTED_GATEWAY_CHAINS; } });
21
+ // === Payload Construction ===
22
+ var payload_builder_1 = require("./payload-builder");
23
+ Object.defineProperty(exports, "buildUniversalTxRequest", { enumerable: true, get: function () { return payload_builder_1.buildUniversalTxRequest; } });
24
+ Object.defineProperty(exports, "buildMulticallPayloadData", { enumerable: true, get: function () { return payload_builder_1.buildMulticallPayloadData; } });
25
+ Object.defineProperty(exports, "buildGatewayPayloadAndGas", { enumerable: true, get: function () { return payload_builder_1.buildGatewayPayloadAndGas; } });
26
+ // === Signing & Encoding ===
27
+ var signing_1 = require("./signing");
28
+ Object.defineProperty(exports, "computeExecutionHash", { enumerable: true, get: function () { return signing_1.computeExecutionHash; } });
29
+ Object.defineProperty(exports, "computeMigrationHash", { enumerable: true, get: function () { return signing_1.computeMigrationHash; } });
30
+ Object.defineProperty(exports, "signUniversalPayload", { enumerable: true, get: function () { return signing_1.signUniversalPayload; } });
31
+ Object.defineProperty(exports, "signMigrationPayload", { enumerable: true, get: function () { return signing_1.signMigrationPayload; } });
32
+ Object.defineProperty(exports, "encodeUniversalPayload", { enumerable: true, get: function () { return signing_1.encodeUniversalPayload; } });
33
+ Object.defineProperty(exports, "encodeUniversalPayloadSvm", { enumerable: true, get: function () { return signing_1.encodeUniversalPayloadSvm; } });
34
+ // === Confirmation ===
35
+ var confirmation_1 = require("./confirmation");
36
+ Object.defineProperty(exports, "waitForEvmConfirmationsWithCountdown", { enumerable: true, get: function () { return confirmation_1.waitForEvmConfirmationsWithCountdown; } });
37
+ Object.defineProperty(exports, "waitForSvmConfirmationsWithCountdown", { enumerable: true, get: function () { return confirmation_1.waitForSvmConfirmationsWithCountdown; } });
38
+ Object.defineProperty(exports, "waitForLockerFeeConfirmation", { enumerable: true, get: function () { return confirmation_1.waitForLockerFeeConfirmation; } });
39
+ // === SVM Helpers ===
40
+ var svm_helpers_1 = require("./svm-helpers");
41
+ Object.defineProperty(exports, "buildSvmUniversalTxRequest", { enumerable: true, get: function () { return svm_helpers_1.buildSvmUniversalTxRequest; } });
42
+ Object.defineProperty(exports, "buildSvmUniversalTxRequestFromReq", { enumerable: true, get: function () { return svm_helpers_1.buildSvmUniversalTxRequestFromReq; } });
43
+ Object.defineProperty(exports, "getSvmProtocolFee", { enumerable: true, get: function () { return svm_helpers_1.getSvmProtocolFee; } });
44
+ Object.defineProperty(exports, "getSvmGatewayLogIndexFromTx", { enumerable: true, get: function () { return svm_helpers_1.getSvmGatewayLogIndexFromTx; } });
45
+ // === Outbound Tracking ===
46
+ var outbound_tracker_1 = require("./outbound-tracker");
47
+ Object.defineProperty(exports, "computeUniversalTxId", { enumerable: true, get: function () { return outbound_tracker_1.computeUniversalTxId; } });
48
+ Object.defineProperty(exports, "extractUniversalSubTxIdFromTx", { enumerable: true, get: function () { return outbound_tracker_1.extractUniversalSubTxIdFromTx; } });
49
+ Object.defineProperty(exports, "extractAllUniversalSubTxIds", { enumerable: true, get: function () { return outbound_tracker_1.extractAllUniversalSubTxIds; } });
50
+ var outbound_sync_1 = require("./outbound-sync");
51
+ Object.defineProperty(exports, "waitForOutboundTx", { enumerable: true, get: function () { return outbound_sync_1.waitForOutboundTx; } });
52
+ Object.defineProperty(exports, "waitForAllOutboundTxsV2", { enumerable: true, get: function () { return outbound_sync_1.waitForAllOutboundTxsV2; } });
53
+ Object.defineProperty(exports, "OUTBOUND_INITIAL_WAIT_MS", { enumerable: true, get: function () { return outbound_sync_1.OUTBOUND_INITIAL_WAIT_MS; } });
54
+ Object.defineProperty(exports, "OUTBOUND_POLL_INTERVAL_MS", { enumerable: true, get: function () { return outbound_sync_1.OUTBOUND_POLL_INTERVAL_MS; } });
55
+ Object.defineProperty(exports, "OUTBOUND_MAX_TIMEOUT_MS", { enumerable: true, get: function () { return outbound_sync_1.OUTBOUND_MAX_TIMEOUT_MS; } });
56
+ // === Transaction Transformation ===
57
+ var tx_transformer_1 = require("./tx-transformer");
58
+ Object.defineProperty(exports, "transformToUniversalTxReceipt", { enumerable: true, get: function () { return tx_transformer_1.transformToUniversalTxReceipt; } });
59
+ Object.defineProperty(exports, "reconstructProgressEvents", { enumerable: true, get: function () { return tx_transformer_1.reconstructProgressEvents; } });
60
+ Object.defineProperty(exports, "detectRouteFromUniversalTxData", { enumerable: true, get: function () { return tx_transformer_1.detectRouteFromUniversalTxData; } });
61
+ // === Gas & Fees ===
62
+ var gas_calculator_1 = require("./gas-calculator");
63
+ Object.defineProperty(exports, "ensureErc20Allowance", { enumerable: true, get: function () { return gas_calculator_1.ensureErc20Allowance; } });
64
+ Object.defineProperty(exports, "queryOutboundGasFee", { enumerable: true, get: function () { return gas_calculator_1.queryOutboundGasFee; } });
65
+ Object.defineProperty(exports, "queryRescueGasFee", { enumerable: true, get: function () { return gas_calculator_1.queryRescueGasFee; } });
66
+ Object.defineProperty(exports, "calculateNativeAmountForDeposit", { enumerable: true, get: function () { return gas_calculator_1.calculateNativeAmountForDeposit; } });
67
+ Object.defineProperty(exports, "calculateGasAmountFromAmountOutMinETH", { enumerable: true, get: function () { return gas_calculator_1.calculateGasAmountFromAmountOutMinETH; } });
68
+ var quote_1 = require("./quote");
69
+ Object.defineProperty(exports, "quoteExactOutput", { enumerable: true, get: function () { return quote_1.quoteExactOutput; } });
70
+ // === UEA Management ===
71
+ var uea_manager_1 = require("./uea-manager");
72
+ Object.defineProperty(exports, "computeUEAOffchain", { enumerable: true, get: function () { return uea_manager_1.computeUEAOffchain; } });
73
+ Object.defineProperty(exports, "computeUEA", { enumerable: true, get: function () { return uea_manager_1.computeUEA; } });
74
+ Object.defineProperty(exports, "getUEANonce", { enumerable: true, get: function () { return uea_manager_1.getUEANonce; } });
75
+ Object.defineProperty(exports, "getUeaNonceForExecution", { enumerable: true, get: function () { return uea_manager_1.getUeaNonceForExecution; } });
76
+ Object.defineProperty(exports, "getUeaStatusAndNonce", { enumerable: true, get: function () { return uea_manager_1.getUeaStatusAndNonce; } });
77
+ Object.defineProperty(exports, "fetchUEAVersion", { enumerable: true, get: function () { return uea_manager_1.fetchUEAVersion; } });
78
+ // === Account Management ===
79
+ var account_manager_1 = require("./account-manager");
80
+ Object.defineProperty(exports, "getAccountStatus", { enumerable: true, get: function () { return account_manager_1.getAccountStatus; } });
81
+ Object.defineProperty(exports, "upgradeAccount", { enumerable: true, get: function () { return account_manager_1.upgradeAccount; } });
82
+ Object.defineProperty(exports, "fetchLatestUEAVersion", { enumerable: true, get: function () { return account_manager_1.fetchLatestUEAVersion; } });
83
+ Object.defineProperty(exports, "migrateCEA", { enumerable: true, get: function () { return account_manager_1.migrateCEA; } });
84
+ // === Gateway Client ===
85
+ var gateway_client_1 = require("./gateway-client");
86
+ Object.defineProperty(exports, "toGatewayRequestV1", { enumerable: true, get: function () { return gateway_client_1.toGatewayRequestV1; } });
87
+ Object.defineProperty(exports, "toGatewayTokenRequestV1", { enumerable: true, get: function () { return gateway_client_1.toGatewayTokenRequestV1; } });
88
+ Object.defineProperty(exports, "sendGatewayTxWithFallback", { enumerable: true, get: function () { return gateway_client_1.sendGatewayTxWithFallback; } });
89
+ Object.defineProperty(exports, "sendGatewayTokenTxWithFallback", { enumerable: true, get: function () { return gateway_client_1.sendGatewayTokenTxWithFallback; } });
90
+ Object.defineProperty(exports, "lockFee", { enumerable: true, get: function () { return gateway_client_1.lockFee; } });
91
+ Object.defineProperty(exports, "getOriginGatewayContext", { enumerable: true, get: function () { return gateway_client_1.getOriginGatewayContext; } });
92
+ // === Response Building ===
93
+ var response_builder_1 = require("./response-builder");
94
+ Object.defineProperty(exports, "queryUniversalTxStatusFromGatewayTx", { enumerable: true, get: function () { return response_builder_1.queryUniversalTxStatusFromGatewayTx; } });
95
+ Object.defineProperty(exports, "trackTransaction", { enumerable: true, get: function () { return response_builder_1.trackTransaction; } });
96
+ Object.defineProperty(exports, "transformToUniversalTxResponse", { enumerable: true, get: function () { return response_builder_1.transformToUniversalTxResponse; } });
97
+ // === Push Chain Transactions ===
98
+ var push_chain_tx_1 = require("./push-chain-tx");
99
+ Object.defineProperty(exports, "sendPushTx", { enumerable: true, get: function () { return push_chain_tx_1.sendPushTx; } });
100
+ Object.defineProperty(exports, "sendUniversalTx", { enumerable: true, get: function () { return push_chain_tx_1.sendUniversalTx; } });
101
+ Object.defineProperty(exports, "extractPcTxAndTransform", { enumerable: true, get: function () { return push_chain_tx_1.extractPcTxAndTransform; } });
102
+ // === Route Handlers ===
103
+ var route_handlers_1 = require("./route-handlers");
104
+ Object.defineProperty(exports, "executeMultiChain", { enumerable: true, get: function () { return route_handlers_1.executeMultiChain; } });
105
+ Object.defineProperty(exports, "executeUoaToCea", { enumerable: true, get: function () { return route_handlers_1.executeUoaToCea; } });
106
+ Object.defineProperty(exports, "executeUoaToCeaSvm", { enumerable: true, get: function () { return route_handlers_1.executeUoaToCeaSvm; } });
107
+ Object.defineProperty(exports, "executeCeaToPush", { enumerable: true, get: function () { return route_handlers_1.executeCeaToPush; } });
108
+ Object.defineProperty(exports, "executeCeaToPushSvm", { enumerable: true, get: function () { return route_handlers_1.executeCeaToPushSvm; } });
109
+ Object.defineProperty(exports, "executeCeaToCea", { enumerable: true, get: function () { return route_handlers_1.executeCeaToCea; } });
110
+ Object.defineProperty(exports, "buildPayloadForRoute", { enumerable: true, get: function () { return route_handlers_1.buildPayloadForRoute; } });
111
+ // === Cascade Composition ===
112
+ var cascade_1 = require("./cascade");
113
+ Object.defineProperty(exports, "prepareTransaction", { enumerable: true, get: function () { return cascade_1.prepareTransaction; } });
114
+ Object.defineProperty(exports, "buildHopDescriptor", { enumerable: true, get: function () { return cascade_1.buildHopDescriptor; } });
115
+ Object.defineProperty(exports, "classifyIntoSegments", { enumerable: true, get: function () { return cascade_1.classifyIntoSegments; } });
116
+ Object.defineProperty(exports, "getSegmentType", { enumerable: true, get: function () { return cascade_1.getSegmentType; } });
117
+ Object.defineProperty(exports, "composeCascade", { enumerable: true, get: function () { return cascade_1.composeCascade; } });
118
+ Object.defineProperty(exports, "createCascadedBuilder", { enumerable: true, get: function () { return cascade_1.createCascadedBuilder; } });
119
+ // === SVM Bridge ===
120
+ var svm_bridge_1 = require("./svm-bridge");
121
+ Object.defineProperty(exports, "sendSVMTxWithFunds", { enumerable: true, get: function () { return svm_bridge_1.sendSVMTxWithFunds; } });
122
+ // === Rescue ===
123
+ var rescue_1 = require("./rescue");
124
+ Object.defineProperty(exports, "rescueFunds", { enumerable: true, get: function () { return rescue_1.rescueFunds; } });
125
+ // === Execute Sub-flows ===
126
+ var execute_funds_only_1 = require("./execute-funds-only");
127
+ Object.defineProperty(exports, "executeFundsOnly", { enumerable: true, get: function () { return execute_funds_only_1.executeFundsOnly; } });
128
+ var execute_funds_payload_1 = require("./execute-funds-payload");
129
+ Object.defineProperty(exports, "executeFundsWithPayload", { enumerable: true, get: function () { return execute_funds_payload_1.executeFundsWithPayload; } });
130
+ var execute_standard_1 = require("./execute-standard");
131
+ Object.defineProperty(exports, "executeStandardPayload", { enumerable: true, get: function () { return execute_standard_1.executeStandardPayload; } });
132
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Outbound transaction sync: polling helpers that wait for outbound
3
+ * transactions to complete on external chains.
4
+ *
5
+ * Extracted from Orchestrator.waitForOutboundTx / waitForAllOutboundTxsV2.
6
+ */
7
+ import { CHAIN } from '../../constants/enums';
8
+ import type { CascadeHopInfo, WaitForOutboundOptions, OutboundTxDetails, TransactionRouteType } from '../orchestrator.types';
9
+ import type { OrchestratorContext } from './context';
10
+ /** Initial wait before the first poll (ms). */
11
+ export declare const OUTBOUND_INITIAL_WAIT_MS = 20000;
12
+ /** Interval between consecutive polls (ms). */
13
+ export declare const OUTBOUND_POLL_INTERVAL_MS = 5000;
14
+ /** Maximum total timeout for the polling loop (ms). */
15
+ export declare const OUTBOUND_MAX_TIMEOUT_MS = 180000;
16
+ /**
17
+ * Wait for outbound transaction to complete and return external chain details.
18
+ * @internal Used by .wait() for outbound routes - not part of public API.
19
+ * Uses polling with configurable initial wait, interval, and timeout.
20
+ *
21
+ * Default strategy: 30s initial wait, then poll every 5s, 120s total timeout.
22
+ *
23
+ * @param ctx - Orchestrator context
24
+ * @param pushChainTxHash - The Push Chain transaction hash
25
+ * @param options - Polling configuration options
26
+ * @returns External chain tx details
27
+ * @throws Error on timeout
28
+ */
29
+ export declare function waitForOutboundTx(ctx: OrchestratorContext, pushChainTxHash: string, options?: WaitForOutboundOptions): Promise<OutboundTxDetails>;
30
+ /**
31
+ * Tracks ALL outbound transactions for a cascade with multiple outbound hops
32
+ * (e.g., BNB + Solana). Uses V2 API which returns outboundTx[] with per-outbound
33
+ * status tracking, matching each outbound to the correct hop by destination chain.
34
+ */
35
+ export declare function waitForAllOutboundTxsV2(ctx: OrchestratorContext, pushChainTxHash: string, outboundHops: CascadeHopInfo[], options: {
36
+ initialWaitMs: number;
37
+ pollingIntervalMs: number;
38
+ timeout: number;
39
+ progressHook?: (event: {
40
+ hopIndex: number;
41
+ route: TransactionRouteType;
42
+ chain: CHAIN;
43
+ status: string;
44
+ txHash?: string;
45
+ }) => void;
46
+ }): Promise<{
47
+ success: boolean;
48
+ failedAt?: number;
49
+ }>;