@pushchain/core 5.1.2 → 5.1.4-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.
- package/package.json +30 -6
- package/src/lib/constants/abi/prc20.evm.d.ts +22 -2
- package/src/lib/constants/abi/prc20.evm.js +11 -3
- package/src/lib/constants/abi/prc20.evm.js.map +1 -1
- package/src/lib/constants/abi/universalGatewayPC.evm.d.ts +59 -0
- package/src/lib/constants/abi/universalGatewayPC.evm.js +26 -0
- package/src/lib/constants/abi/universalGatewayPC.evm.js.map +1 -1
- package/src/lib/constants/chain.d.ts +4 -0
- package/src/lib/constants/chain.js +6 -2
- package/src/lib/constants/chain.js.map +1 -1
- package/src/lib/index.d.ts +2 -2
- package/src/lib/index.js.map +1 -1
- package/src/lib/internal/bs58.d.ts +2 -0
- package/src/lib/internal/bs58.js +7 -0
- package/src/lib/internal/bs58.js.map +1 -0
- package/src/lib/orchestrator/cea-utils.d.ts +0 -9
- package/src/lib/orchestrator/cea-utils.js +15 -4
- package/src/lib/orchestrator/cea-utils.js.map +1 -1
- package/src/lib/orchestrator/internals/account-manager.d.ts +16 -0
- package/src/lib/orchestrator/internals/account-manager.js +191 -0
- package/src/lib/orchestrator/internals/account-manager.js.map +1 -0
- package/src/lib/orchestrator/internals/cascade.d.ts +23 -0
- package/src/lib/orchestrator/internals/cascade.js +945 -0
- package/src/lib/orchestrator/internals/cascade.js.map +1 -0
- package/src/lib/orchestrator/internals/confirmation.d.ts +9 -0
- package/src/lib/orchestrator/internals/confirmation.js +123 -0
- package/src/lib/orchestrator/internals/confirmation.js.map +1 -0
- package/src/lib/orchestrator/internals/context.d.ts +38 -0
- package/src/lib/orchestrator/internals/context.js +49 -0
- package/src/lib/orchestrator/internals/context.js.map +1 -0
- package/src/lib/orchestrator/internals/execute-funds-only.d.ts +11 -0
- package/src/lib/orchestrator/internals/execute-funds-only.js +219 -0
- package/src/lib/orchestrator/internals/execute-funds-only.js.map +1 -0
- package/src/lib/orchestrator/internals/execute-funds-payload.d.ts +11 -0
- package/src/lib/orchestrator/internals/execute-funds-payload.js +222 -0
- package/src/lib/orchestrator/internals/execute-funds-payload.js.map +1 -0
- package/src/lib/orchestrator/internals/execute-standard.d.ts +13 -0
- package/src/lib/orchestrator/internals/execute-standard.js +225 -0
- package/src/lib/orchestrator/internals/execute-standard.js.map +1 -0
- package/src/lib/orchestrator/internals/gas-calculator.d.ts +30 -0
- package/src/lib/orchestrator/internals/gas-calculator.js +283 -0
- package/src/lib/orchestrator/internals/gas-calculator.js.map +1 -0
- package/src/lib/orchestrator/internals/gateway-client.d.ts +24 -0
- package/src/lib/orchestrator/internals/gateway-client.js +191 -0
- package/src/lib/orchestrator/internals/gateway-client.js.map +1 -0
- package/src/lib/orchestrator/internals/helpers.d.ts +26 -0
- package/src/lib/orchestrator/internals/helpers.js +181 -0
- package/src/lib/orchestrator/internals/helpers.js.map +1 -0
- package/src/lib/orchestrator/internals/index.d.ts +24 -0
- package/src/lib/orchestrator/internals/index.js +132 -0
- package/src/lib/orchestrator/internals/index.js.map +1 -0
- package/src/lib/orchestrator/internals/outbound-sync.d.ts +49 -0
- package/src/lib/orchestrator/internals/outbound-sync.js +357 -0
- package/src/lib/orchestrator/internals/outbound-sync.js.map +1 -0
- package/src/lib/orchestrator/internals/outbound-tracker.d.ts +8 -0
- package/src/lib/orchestrator/internals/outbound-tracker.js +64 -0
- package/src/lib/orchestrator/internals/outbound-tracker.js.map +1 -0
- package/src/lib/orchestrator/internals/payload-builder.d.ts +24 -0
- package/src/lib/orchestrator/internals/payload-builder.js +178 -0
- package/src/lib/orchestrator/internals/payload-builder.js.map +1 -0
- package/src/lib/orchestrator/internals/push-chain-tx.d.ts +32 -0
- package/src/lib/orchestrator/internals/push-chain-tx.js +184 -0
- package/src/lib/orchestrator/internals/push-chain-tx.js.map +1 -0
- package/src/lib/orchestrator/internals/quote.d.ts +9 -0
- package/src/lib/orchestrator/internals/quote.js +114 -0
- package/src/lib/orchestrator/internals/quote.js.map +1 -0
- package/src/lib/orchestrator/internals/rescue.d.ts +20 -0
- package/src/lib/orchestrator/internals/rescue.js +112 -0
- package/src/lib/orchestrator/internals/rescue.js.map +1 -0
- package/src/lib/orchestrator/internals/response-builder.d.ts +26 -0
- package/src/lib/orchestrator/internals/response-builder.js +504 -0
- package/src/lib/orchestrator/internals/response-builder.js.map +1 -0
- package/src/lib/orchestrator/internals/route-handlers.d.ts +77 -0
- package/src/lib/orchestrator/internals/route-handlers.js +1203 -0
- package/src/lib/orchestrator/internals/route-handlers.js.map +1 -0
- package/src/lib/orchestrator/internals/signing.d.ts +27 -0
- package/src/lib/orchestrator/internals/signing.js +258 -0
- package/src/lib/orchestrator/internals/signing.js.map +1 -0
- package/src/lib/orchestrator/internals/svm-bridge.d.ts +21 -0
- package/src/lib/orchestrator/internals/svm-bridge.js +122 -0
- package/src/lib/orchestrator/internals/svm-bridge.js.map +1 -0
- package/src/lib/orchestrator/internals/svm-helpers.d.ts +35 -0
- package/src/lib/orchestrator/internals/svm-helpers.js +143 -0
- package/src/lib/orchestrator/internals/svm-helpers.js.map +1 -0
- package/src/lib/orchestrator/internals/tx-transformer.d.ts +12 -0
- package/src/lib/orchestrator/internals/tx-transformer.js +120 -0
- package/src/lib/orchestrator/internals/tx-transformer.js.map +1 -0
- package/src/lib/orchestrator/internals/uea-manager.d.ts +17 -0
- package/src/lib/orchestrator/internals/uea-manager.js +164 -0
- package/src/lib/orchestrator/internals/uea-manager.js.map +1 -0
- package/src/lib/orchestrator/orchestrator.d.ts +33 -426
- package/src/lib/orchestrator/orchestrator.js +124 -6056
- package/src/lib/orchestrator/orchestrator.js.map +1 -1
- package/src/lib/orchestrator/orchestrator.types.d.ts +11 -10
- package/src/lib/orchestrator/orchestrator.types.js.map +1 -1
- package/src/lib/orchestrator/payload-builders.js +35 -9
- package/src/lib/orchestrator/payload-builders.js.map +1 -1
- package/src/lib/price-fetch/price-fetch.js +19 -7
- package/src/lib/price-fetch/price-fetch.js.map +1 -1
- package/src/lib/push-chain/push-chain.d.ts +24 -3
- package/src/lib/push-chain/push-chain.js +89 -6
- package/src/lib/push-chain/push-chain.js.map +1 -1
- package/src/lib/push-client/push-client.d.ts +3 -0
- package/src/lib/push-client/push-client.js +21 -31
- package/src/lib/push-client/push-client.js.map +1 -1
- package/src/lib/universal/account/account.d.ts +40 -6
- package/src/lib/universal/account/account.js +384 -9
- package/src/lib/universal/account/account.js.map +1 -1
- package/src/lib/universal/signer/signer.d.ts +2 -3
- package/src/lib/universal/signer/signer.js +65 -115
- package/src/lib/universal/signer/signer.js.map +1 -1
- package/src/lib/universal/universal.types.d.ts +41 -0
- package/src/lib/utils.d.ts +7 -1
- package/src/lib/utils.js +65 -33
- package/src/lib/utils.js.map +1 -1
- package/src/lib/vm-client/evm-client.js +3 -11
- package/src/lib/vm-client/evm-client.js.map +1 -1
- package/src/lib/vm-client/svm-client.d.ts +0 -4
- package/src/lib/vm-client/svm-client.js +2 -8
- package/src/lib/vm-client/svm-client.js.map +1 -1
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Funds+payload execution flow — extracted from Orchestrator.execute().
|
|
4
|
+
*
|
|
5
|
+
* Handles bridging funds AND executing a payload on Push Chain
|
|
6
|
+
* for both EVM and SVM origin chains.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.executeFundsWithPayload = executeFundsWithPayload;
|
|
10
|
+
const tslib_1 = require("tslib");
|
|
11
|
+
const bs58_1 = require("../../internal/bs58");
|
|
12
|
+
const web3_js_1 = require("@solana/web3.js");
|
|
13
|
+
const viem_1 = require("viem");
|
|
14
|
+
const universalGatewayV0_json_1 = tslib_1.__importDefault(require("../../constants/abi/universalGatewayV0.json"));
|
|
15
|
+
const chain_1 = require("../../constants/chain");
|
|
16
|
+
const enums_1 = require("../../constants/enums");
|
|
17
|
+
const tokens_1 = require("../../constants/tokens");
|
|
18
|
+
const progress_hook_types_1 = require("../../progress-hook/progress-hook.types");
|
|
19
|
+
const price_fetch_1 = require("../../price-fetch/price-fetch");
|
|
20
|
+
const push_chain_1 = require("../../push-chain/push-chain");
|
|
21
|
+
const utils_1 = require("../../utils");
|
|
22
|
+
const svm_client_1 = require("../../vm-client/svm-client");
|
|
23
|
+
const context_1 = require("./context");
|
|
24
|
+
const gas_calculator_1 = require("./gas-calculator");
|
|
25
|
+
const gateway_client_1 = require("./gateway-client");
|
|
26
|
+
const payload_builder_1 = require("./payload-builder");
|
|
27
|
+
const uea_manager_1 = require("./uea-manager");
|
|
28
|
+
const confirmation_1 = require("./confirmation");
|
|
29
|
+
const response_builder_1 = require("./response-builder");
|
|
30
|
+
const push_chain_tx_1 = require("./push-chain-tx");
|
|
31
|
+
const svm_bridge_1 = require("./svm-bridge");
|
|
32
|
+
const signing_1 = require("./signing");
|
|
33
|
+
const quote_1 = require("./quote");
|
|
34
|
+
function executeFundsWithPayload(ctx, execute, eventBuffer, getResponseCallbacks) {
|
|
35
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
37
|
+
const transformFn = (tx, buf = []) => (0, response_builder_1.transformToUniversalTxResponse)(ctx, tx, buf, getResponseCallbacks());
|
|
38
|
+
const { chain, evmClient, gatewayAddress } = (0, gateway_client_1.getOriginGatewayContext)(ctx);
|
|
39
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_01, chain, ctx.universalSigner.account.address);
|
|
40
|
+
// Default token to native ETH if none provided
|
|
41
|
+
if (!execute.funds.token) {
|
|
42
|
+
const available = tokens_1.MOVEABLE_TOKENS[chain] || [];
|
|
43
|
+
const vm = chain_1.CHAIN_INFO[chain].vm;
|
|
44
|
+
const preferredSymbol = vm === enums_1.VM.EVM ? 'ETH' : vm === enums_1.VM.SVM ? 'SOL' : undefined;
|
|
45
|
+
const nativeToken = preferredSymbol
|
|
46
|
+
? available.find((t) => t.symbol === preferredSymbol)
|
|
47
|
+
: undefined;
|
|
48
|
+
if (!nativeToken) {
|
|
49
|
+
throw new Error('Native token not configured for this chain');
|
|
50
|
+
}
|
|
51
|
+
execute.funds.token = nativeToken;
|
|
52
|
+
}
|
|
53
|
+
const mechanism = execute.funds.token.mechanism;
|
|
54
|
+
let nonce;
|
|
55
|
+
let deployed;
|
|
56
|
+
const deployedHint = (_b = (_a = ctx.accountStatusCache) === null || _a === void 0 ? void 0 : _a.uea) === null || _b === void 0 ? void 0 : _b.deployed;
|
|
57
|
+
if (deployedHint) {
|
|
58
|
+
deployed = true;
|
|
59
|
+
nonce = yield (0, uea_manager_1.getUEANonce)(ctx, (0, uea_manager_1.computeUEAOffchain)(ctx));
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
const status = yield (0, uea_manager_1.getUeaStatusAndNonce)(ctx);
|
|
63
|
+
nonce = status.nonce;
|
|
64
|
+
deployed = status.deployed;
|
|
65
|
+
}
|
|
66
|
+
const { payload: universalPayload, req } = yield (0, payload_builder_1.buildGatewayPayloadAndGas)(ctx, execute, nonce, 'sendTxWithFunds', execute.funds.amount);
|
|
67
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_02_01);
|
|
68
|
+
// Compute required gas funding on Push Chain and current UEA balance
|
|
69
|
+
const gasEstimate = execute.gasLimit || BigInt(1e7);
|
|
70
|
+
const gasPrice = yield ctx.pushClient.getGasPrice();
|
|
71
|
+
const requiredGasFee = gasEstimate * gasPrice;
|
|
72
|
+
const payloadValue = (_c = execute.value) !== null && _c !== void 0 ? _c : BigInt(0);
|
|
73
|
+
const requiredFunds = requiredGasFee + payloadValue;
|
|
74
|
+
const ueaAddress = (0, uea_manager_1.computeUEAOffchain)(ctx);
|
|
75
|
+
const ueaBalance = yield ctx.pushClient.getBalance(ueaAddress);
|
|
76
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_03_02, ueaAddress, deployed);
|
|
77
|
+
// Determine USD to deposit via gateway (8 decimals) with caps: min=$1, max=$10
|
|
78
|
+
const oneUsd = utils_1.Utils.helpers.parseUnits('1', 8);
|
|
79
|
+
const tenUsd = utils_1.Utils.helpers.parseUnits('10', 8);
|
|
80
|
+
const deficit = requiredFunds > ueaBalance ? requiredFunds - ueaBalance : BigInt(0);
|
|
81
|
+
let depositUsd = deficit > BigInt(0) ? ctx.pushClient.pushToUSDC(deficit) : oneUsd;
|
|
82
|
+
if (depositUsd < oneUsd)
|
|
83
|
+
depositUsd = oneUsd;
|
|
84
|
+
if (depositUsd > tenUsd)
|
|
85
|
+
throw new Error('Deposit value exceeds max $10 worth of native token');
|
|
86
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_02_02, depositUsd);
|
|
87
|
+
// If SVM, clamp depositUsd to on-chain Config caps
|
|
88
|
+
if (chain_1.CHAIN_INFO[chain].vm === enums_1.VM.SVM) {
|
|
89
|
+
const svmClient = new svm_client_1.SvmClient({
|
|
90
|
+
rpcUrls: ctx.rpcUrls[enums_1.CHAIN.SOLANA_DEVNET] || chain_1.CHAIN_INFO[enums_1.CHAIN.SOLANA_DEVNET].defaultRPC,
|
|
91
|
+
});
|
|
92
|
+
const programId = new web3_js_1.PublicKey(universalGatewayV0_json_1.default.address);
|
|
93
|
+
const [configPda] = web3_js_1.PublicKey.findProgramAddressSync([(0, viem_1.stringToBytes)('config')], programId);
|
|
94
|
+
try {
|
|
95
|
+
const cfg = yield svmClient.readContract({
|
|
96
|
+
abi: universalGatewayV0_json_1.default, address: universalGatewayV0_json_1.default.address,
|
|
97
|
+
functionName: 'config', args: [configPda.toBase58()],
|
|
98
|
+
});
|
|
99
|
+
const minCapUsd = BigInt(((_d = cfg.minCapUniversalTxUsd) !== null && _d !== void 0 ? _d : cfg.min_cap_universal_tx_usd).toString());
|
|
100
|
+
const maxCapUsd = BigInt(((_e = cfg.maxCapUniversalTxUsd) !== null && _e !== void 0 ? _e : cfg.max_cap_universal_tx_usd).toString());
|
|
101
|
+
if (depositUsd < minCapUsd)
|
|
102
|
+
depositUsd = minCapUsd;
|
|
103
|
+
const withMargin = (minCapUsd * BigInt(12)) / BigInt(10);
|
|
104
|
+
if (depositUsd < withMargin)
|
|
105
|
+
depositUsd = withMargin;
|
|
106
|
+
if (depositUsd > maxCapUsd)
|
|
107
|
+
depositUsd = maxCapUsd;
|
|
108
|
+
}
|
|
109
|
+
catch (_m) {
|
|
110
|
+
// best-effort
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
// Convert USD(8) -> native units
|
|
114
|
+
const nativeTokenUsdPrice = yield new price_fetch_1.PriceFetch(ctx.rpcUrls).getPrice(chain);
|
|
115
|
+
const nativeDecimals = chain_1.CHAIN_INFO[chain].vm === enums_1.VM.SVM ? 9 : 18;
|
|
116
|
+
const oneNativeUnit = utils_1.Utils.helpers.parseUnits('1', nativeDecimals);
|
|
117
|
+
let nativeAmount = (depositUsd * oneNativeUnit + (nativeTokenUsdPrice - BigInt(1))) / nativeTokenUsdPrice;
|
|
118
|
+
nativeAmount = nativeAmount + BigInt(1);
|
|
119
|
+
const bridgeAmount = execute.funds.amount;
|
|
120
|
+
const symbol = execute.funds.token.symbol;
|
|
121
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_01, bridgeAmount, execute.funds.token.decimals, symbol);
|
|
122
|
+
if (chain_1.CHAIN_INFO[ctx.universalSigner.account.chain].vm === enums_1.VM.EVM) {
|
|
123
|
+
const tokenAddr = execute.funds.token.address;
|
|
124
|
+
if (mechanism === 'approve') {
|
|
125
|
+
const evmClientEvm = evmClient;
|
|
126
|
+
const gatewayAddressEvm = gatewayAddress;
|
|
127
|
+
yield (0, gas_calculator_1.ensureErc20Allowance)(ctx, evmClientEvm, tokenAddr, gatewayAddressEvm, bridgeAmount);
|
|
128
|
+
}
|
|
129
|
+
else if (mechanism === 'permit2') {
|
|
130
|
+
throw new Error('Permit2 is not supported yet');
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
let txHash;
|
|
134
|
+
try {
|
|
135
|
+
if (chain_1.CHAIN_INFO[ctx.universalSigner.account.chain].vm === enums_1.VM.EVM) {
|
|
136
|
+
const tokenAddr = execute.funds.token.address;
|
|
137
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_03_01);
|
|
138
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_03_02, ueaAddress, deployed);
|
|
139
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_04_01);
|
|
140
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_04_02);
|
|
141
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_04_03);
|
|
142
|
+
const evmClientEvm = evmClient;
|
|
143
|
+
const gatewayAddressEvm = gatewayAddress;
|
|
144
|
+
const payloadBytes = (0, signing_1.encodeUniversalPayload)(universalPayload);
|
|
145
|
+
const payWith = execute.payGasWith;
|
|
146
|
+
const gasTokenAddress = (_f = payWith === null || payWith === void 0 ? void 0 : payWith.token) === null || _f === void 0 ? void 0 : _f.address;
|
|
147
|
+
if (gasTokenAddress) {
|
|
148
|
+
if (chain !== enums_1.CHAIN.ETHEREUM_SEPOLIA) {
|
|
149
|
+
throw new Error(`Only ${push_chain_1.PushChain.utils.chains.getChainName(enums_1.CHAIN.ETHEREUM_SEPOLIA)} is supported for paying gas fees with ERC-20 tokens`);
|
|
150
|
+
}
|
|
151
|
+
let amountOutMinETH = (payWith === null || payWith === void 0 ? void 0 : payWith.minAmountOut) !== undefined ? BigInt(payWith.minAmountOut) : nativeAmount;
|
|
152
|
+
const slippageBps = (_g = payWith === null || payWith === void 0 ? void 0 : payWith.slippageBps) !== null && _g !== void 0 ? _g : 100;
|
|
153
|
+
amountOutMinETH = BigInt(push_chain_1.PushChain.utils.conversion.slippageToMinAmount(amountOutMinETH.toString(), { slippageBps }));
|
|
154
|
+
const quoteExactOutputFn = (amountOut, opts) => (0, quote_1.quoteExactOutput)(ctx, amountOut, opts);
|
|
155
|
+
const { gasAmount } = yield (0, gas_calculator_1.calculateGasAmountFromAmountOutMinETH)(ctx, gasTokenAddress, amountOutMinETH, quoteExactOutputFn);
|
|
156
|
+
const deadline = BigInt(0);
|
|
157
|
+
const ownerAddress = ctx.universalSigner.account.address;
|
|
158
|
+
const gasTokenBalance = yield evmClientEvm.getErc20Balance({
|
|
159
|
+
tokenAddress: gasTokenAddress, ownerAddress,
|
|
160
|
+
});
|
|
161
|
+
if (gasTokenBalance < gasAmount) {
|
|
162
|
+
const sym = (_j = (_h = payWith === null || payWith === void 0 ? void 0 : payWith.token) === null || _h === void 0 ? void 0 : _h.symbol) !== null && _j !== void 0 ? _j : 'gas token';
|
|
163
|
+
const decimals = (_l = (_k = payWith === null || payWith === void 0 ? void 0 : payWith.token) === null || _k === void 0 ? void 0 : _k.decimals) !== null && _l !== void 0 ? _l : 18;
|
|
164
|
+
throw new Error(`Insufficient ${sym} balance to cover gas fees: need ${utils_1.Utils.helpers.formatUnits(gasAmount, decimals)}, have ${utils_1.Utils.helpers.formatUnits(gasTokenBalance, decimals)}`);
|
|
165
|
+
}
|
|
166
|
+
yield (0, gas_calculator_1.ensureErc20Allowance)(ctx, evmClientEvm, gasTokenAddress, gatewayAddressEvm, gasAmount);
|
|
167
|
+
const reqToken = Object.assign(Object.assign({}, req), { gasToken: gasTokenAddress, gasAmount, amountOutMinETH, deadline });
|
|
168
|
+
txHash = yield (0, gateway_client_1.sendGatewayTokenTxWithFallback)(ctx, evmClientEvm, gatewayAddressEvm, reqToken, ctx.universalSigner);
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
const isNativeToken = mechanism === 'native';
|
|
172
|
+
const totalValue = isNativeToken ? nativeAmount + bridgeAmount : nativeAmount;
|
|
173
|
+
txHash = yield (0, gateway_client_1.sendGatewayTxWithFallback)(ctx, evmClientEvm, gatewayAddressEvm, req, ctx.universalSigner, totalValue);
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
txHash = yield (0, svm_bridge_1.sendSVMTxWithFunds)(ctx, {
|
|
178
|
+
execute, mechanism, universalPayload, bridgeAmount, nativeAmount, req,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
catch (err) {
|
|
183
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_04_04);
|
|
184
|
+
throw err;
|
|
185
|
+
}
|
|
186
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_04_03);
|
|
187
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_02, txHash, bridgeAmount, execute.funds.token.decimals, symbol);
|
|
188
|
+
// Awaiting confirmations
|
|
189
|
+
const signerChain = ctx.universalSigner.account.chain;
|
|
190
|
+
if (chain_1.CHAIN_INFO[signerChain].vm === enums_1.VM.EVM) {
|
|
191
|
+
yield (0, confirmation_1.waitForEvmConfirmationsWithCountdown)(ctx, evmClient, txHash, chain_1.CHAIN_INFO[signerChain].confirmations, chain_1.CHAIN_INFO[signerChain].timeout);
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
const svmClient = new svm_client_1.SvmClient({
|
|
195
|
+
rpcUrls: ctx.rpcUrls[enums_1.CHAIN.SOLANA_DEVNET] || chain_1.CHAIN_INFO[enums_1.CHAIN.SOLANA_DEVNET].defaultRPC,
|
|
196
|
+
});
|
|
197
|
+
yield (0, confirmation_1.waitForSvmConfirmationsWithCountdown)(ctx, svmClient, txHash, chain_1.CHAIN_INFO[signerChain].confirmations, chain_1.CHAIN_INFO[signerChain].timeout);
|
|
198
|
+
}
|
|
199
|
+
// Funds Flow: Confirmed on origin
|
|
200
|
+
let feeLockTxHash = txHash;
|
|
201
|
+
if (chain_1.CHAIN_INFO[ctx.universalSigner.account.chain].vm === enums_1.VM.SVM) {
|
|
202
|
+
if (feeLockTxHash && !feeLockTxHash.startsWith('0x')) {
|
|
203
|
+
const decoded = bs58_1.bs58.decode(feeLockTxHash);
|
|
204
|
+
feeLockTxHash = (0, viem_1.bytesToHex)(new Uint8Array(decoded));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_04);
|
|
208
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_05);
|
|
209
|
+
let pushChainUniversalTx;
|
|
210
|
+
if (chain_1.CHAIN_INFO[ctx.universalSigner.account.chain].vm === enums_1.VM.EVM) {
|
|
211
|
+
pushChainUniversalTx = yield (0, response_builder_1.queryUniversalTxStatusFromGatewayTx)(ctx, evmClient, gatewayAddress, txHash, 'sendTxWithFunds');
|
|
212
|
+
}
|
|
213
|
+
else {
|
|
214
|
+
pushChainUniversalTx = yield (0, response_builder_1.queryUniversalTxStatusFromGatewayTx)(ctx, undefined, undefined, txHash, 'sendTxWithFunds');
|
|
215
|
+
}
|
|
216
|
+
const response = yield (0, push_chain_tx_1.extractPcTxAndTransform)(ctx, pushChainUniversalTx, txHash, eventBuffer, 'sendTxWithFunds', transformFn);
|
|
217
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_06_06, bridgeAmount, execute.funds.token.decimals, symbol);
|
|
218
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_99_01, [response]);
|
|
219
|
+
return response;
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
//# sourceMappingURL=execute-funds-payload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-funds-payload.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/orchestrator/internals/execute-funds-payload.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Standard payload execution flow (no funds) — extracted from Orchestrator.execute().
|
|
3
|
+
*
|
|
4
|
+
* Handles payload-only execution on Push Chain:
|
|
5
|
+
* - Push-to-Push direct transactions
|
|
6
|
+
* - Fee-locking path for undeployed/underfunded UEA
|
|
7
|
+
* - Signed verification path for deployed UEA with funds
|
|
8
|
+
*/
|
|
9
|
+
import { ProgressEvent } from '../../progress-hook/progress-hook.types';
|
|
10
|
+
import type { ExecuteParams, UniversalTxResponse } from '../orchestrator.types';
|
|
11
|
+
import type { OrchestratorContext } from './context';
|
|
12
|
+
import { type ResponseBuilderCallbacks } from './response-builder';
|
|
13
|
+
export declare function executeStandardPayload(ctx: OrchestratorContext, execute: ExecuteParams, eventBuffer: ProgressEvent[], getResponseCallbacks: () => ResponseBuilderCallbacks): Promise<UniversalTxResponse>;
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Standard payload execution flow (no funds) — extracted from Orchestrator.execute().
|
|
4
|
+
*
|
|
5
|
+
* Handles payload-only execution on Push Chain:
|
|
6
|
+
* - Push-to-Push direct transactions
|
|
7
|
+
* - Fee-locking path for undeployed/underfunded UEA
|
|
8
|
+
* - Signed verification path for deployed UEA with funds
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.executeStandardPayload = executeStandardPayload;
|
|
12
|
+
const tslib_1 = require("tslib");
|
|
13
|
+
const bs58_1 = require("../../internal/bs58");
|
|
14
|
+
const viem_1 = require("viem");
|
|
15
|
+
const chain_1 = require("../../constants/chain");
|
|
16
|
+
const enums_1 = require("../../constants/enums");
|
|
17
|
+
const tx_1 = require("../../generated/v1/tx");
|
|
18
|
+
const progress_hook_types_1 = require("../../progress-hook/progress-hook.types");
|
|
19
|
+
const utils_1 = require("../../utils");
|
|
20
|
+
const evm_client_1 = require("../../vm-client/evm-client");
|
|
21
|
+
const payload_builders_1 = require("../payload-builders");
|
|
22
|
+
const context_1 = require("./context");
|
|
23
|
+
const helpers_1 = require("./helpers");
|
|
24
|
+
const payload_builder_1 = require("./payload-builder");
|
|
25
|
+
const signing_1 = require("./signing");
|
|
26
|
+
const uea_manager_1 = require("./uea-manager");
|
|
27
|
+
const confirmation_1 = require("./confirmation");
|
|
28
|
+
const gateway_client_1 = require("./gateway-client");
|
|
29
|
+
const response_builder_1 = require("./response-builder");
|
|
30
|
+
const push_chain_tx_1 = require("./push-chain-tx");
|
|
31
|
+
function executeStandardPayload(ctx, execute, eventBuffer, getResponseCallbacks) {
|
|
32
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
var _a, _b;
|
|
34
|
+
const transformFn = (tx, buf = []) => (0, response_builder_1.transformToUniversalTxResponse)(ctx, tx, buf, getResponseCallbacks());
|
|
35
|
+
// Set default value for value if undefined
|
|
36
|
+
if (execute.value === undefined) {
|
|
37
|
+
execute.value = BigInt(0);
|
|
38
|
+
}
|
|
39
|
+
const chain = ctx.universalSigner.account.chain;
|
|
40
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_01, chain, ctx.universalSigner.account.address);
|
|
41
|
+
(0, helpers_1.validateMainnetConnection)(chain, ctx.pushClient.pushChainInfo.chainId);
|
|
42
|
+
// Push to Push Tx
|
|
43
|
+
if ((0, helpers_1.isPushChain)(chain)) {
|
|
44
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_07);
|
|
45
|
+
const tx = yield (0, push_chain_tx_1.sendPushTx)(ctx, execute, eventBuffer, transformFn);
|
|
46
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_99_01, [tx]);
|
|
47
|
+
return tx;
|
|
48
|
+
}
|
|
49
|
+
// Fetch Gas details and estimate cost of execution
|
|
50
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_02_01);
|
|
51
|
+
const gasEstimate = execute.gasLimit || BigInt(1e7);
|
|
52
|
+
const gasPrice = yield ctx.pushClient.getGasPrice();
|
|
53
|
+
const requiredGasFee = gasEstimate * gasPrice;
|
|
54
|
+
const requiredFunds = requiredGasFee + execute.value;
|
|
55
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_02_02, requiredFunds);
|
|
56
|
+
// Fetch UEA Details (or use pre-fetched status if available)
|
|
57
|
+
const UEA = (0, uea_manager_1.computeUEAOffchain)(ctx);
|
|
58
|
+
let isUEADeployed;
|
|
59
|
+
let nonce;
|
|
60
|
+
let funds;
|
|
61
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_03_01);
|
|
62
|
+
if (execute._ueaStatus) {
|
|
63
|
+
isUEADeployed = execute._ueaStatus.isDeployed;
|
|
64
|
+
nonce = execute._ueaStatus.nonce;
|
|
65
|
+
funds = execute._ueaStatus.balance;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
// Skip getCode if accountStatusCache already confirmed deployment
|
|
69
|
+
const deployedHint = (_b = (_a = ctx.accountStatusCache) === null || _a === void 0 ? void 0 : _a.uea) === null || _b === void 0 ? void 0 : _b.deployed;
|
|
70
|
+
if (deployedHint) {
|
|
71
|
+
const [balance, ueaNonce] = yield Promise.all([
|
|
72
|
+
ctx.pushClient.getBalance(UEA),
|
|
73
|
+
(0, uea_manager_1.getUEANonce)(ctx, UEA),
|
|
74
|
+
]);
|
|
75
|
+
isUEADeployed = true;
|
|
76
|
+
nonce = ueaNonce;
|
|
77
|
+
funds = balance;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
const [code, balance] = yield Promise.all([
|
|
81
|
+
ctx.pushClient.publicClient.getCode({ address: UEA }),
|
|
82
|
+
ctx.pushClient.getBalance(UEA),
|
|
83
|
+
]);
|
|
84
|
+
isUEADeployed = code !== undefined;
|
|
85
|
+
nonce = isUEADeployed ? yield (0, uea_manager_1.getUEANonce)(ctx, UEA) : BigInt(0);
|
|
86
|
+
funds = balance;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_03_02, UEA, isUEADeployed);
|
|
90
|
+
// Validate and decode feeLockTxHash
|
|
91
|
+
let feeLockTxHash = execute.feeLockTxHash;
|
|
92
|
+
if (feeLockTxHash) {
|
|
93
|
+
(0, helpers_1.validateFeeLockTxHash)(feeLockTxHash);
|
|
94
|
+
if (!feeLockTxHash.startsWith('0x')) {
|
|
95
|
+
const decoded = bs58_1.bs58.decode(feeLockTxHash);
|
|
96
|
+
feeLockTxHash = (0, viem_1.bytesToHex)(new Uint8Array(decoded));
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
const feeLockingRequired = !execute._skipFeeLocking &&
|
|
100
|
+
(!isUEADeployed || funds < requiredFunds) && !feeLockTxHash;
|
|
101
|
+
// Support multicall payload encoding when execute.data is an array
|
|
102
|
+
let payloadData;
|
|
103
|
+
let payloadTo;
|
|
104
|
+
let req;
|
|
105
|
+
if (Array.isArray(execute.data)) {
|
|
106
|
+
payloadTo = viem_1.zeroAddress;
|
|
107
|
+
payloadData = (0, payload_builder_1.buildMulticallPayloadData)(ctx, execute.to, (0, payload_builders_1.buildExecuteMulticall)({ execute, ueaAddress: UEA }));
|
|
108
|
+
// Wrap in full UniversalPayload encoding for gateway req (matches non-array paths)
|
|
109
|
+
const universalPayloadForReq = JSON.parse(JSON.stringify({
|
|
110
|
+
to: viem_1.zeroAddress, value: execute.value,
|
|
111
|
+
data: payloadData,
|
|
112
|
+
gasLimit: execute.gasLimit || BigInt(5e7),
|
|
113
|
+
maxFeePerGas: execute.maxFeePerGas || BigInt(1e10),
|
|
114
|
+
maxPriorityFeePerGas: execute.maxPriorityFeePerGas || BigInt(0),
|
|
115
|
+
nonce, deadline: execute.deadline || BigInt(9999999999),
|
|
116
|
+
vType: feeLockingRequired
|
|
117
|
+
? tx_1.VerificationType.universalTxVerification
|
|
118
|
+
: tx_1.VerificationType.signedVerification,
|
|
119
|
+
}, helpers_1.bigintReplacer));
|
|
120
|
+
req = (0, payload_builder_1.buildUniversalTxRequest)(ctx.universalSigner.account.address, {
|
|
121
|
+
recipient: viem_1.zeroAddress, token: viem_1.zeroAddress, amount: BigInt(0),
|
|
122
|
+
payload: (0, signing_1.encodeUniversalPayload)(universalPayloadForReq),
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
126
|
+
if (execute.to.toLowerCase() !== UEA.toLowerCase()) {
|
|
127
|
+
if (execute.funds) {
|
|
128
|
+
payloadTo = viem_1.zeroAddress;
|
|
129
|
+
payloadData = (0, payload_builder_1.buildMulticallPayloadData)(ctx, execute.to, (0, payload_builders_1.buildExecuteMulticall)({ execute, ueaAddress: UEA }));
|
|
130
|
+
req = (0, payload_builder_1.buildUniversalTxRequest)(ctx.universalSigner.account.address, {
|
|
131
|
+
recipient: viem_1.zeroAddress, token: viem_1.zeroAddress, amount: BigInt(0), payload: payloadData,
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
payloadTo = execute.to;
|
|
136
|
+
payloadData = execute.data || '0x';
|
|
137
|
+
const reqData = (0, payload_builder_1.buildMulticallPayloadData)(ctx, execute.to, (0, payload_builders_1.buildExecuteMulticall)({ execute, ueaAddress: UEA }));
|
|
138
|
+
const universalPayloadOther = JSON.parse(JSON.stringify({
|
|
139
|
+
to: viem_1.zeroAddress, value: execute.value,
|
|
140
|
+
data: reqData,
|
|
141
|
+
gasLimit: execute.gasLimit || BigInt(5e7),
|
|
142
|
+
maxFeePerGas: execute.maxFeePerGas || BigInt(1e10),
|
|
143
|
+
maxPriorityFeePerGas: execute.maxPriorityFeePerGas || BigInt(0),
|
|
144
|
+
nonce, deadline: execute.deadline || BigInt(9999999999),
|
|
145
|
+
vType: feeLockingRequired
|
|
146
|
+
? tx_1.VerificationType.universalTxVerification
|
|
147
|
+
: tx_1.VerificationType.signedVerification,
|
|
148
|
+
}, helpers_1.bigintReplacer));
|
|
149
|
+
req = (0, payload_builder_1.buildUniversalTxRequest)(ctx.universalSigner.account.address, {
|
|
150
|
+
recipient: viem_1.zeroAddress, token: viem_1.zeroAddress, amount: BigInt(0),
|
|
151
|
+
payload: (0, signing_1.encodeUniversalPayload)(universalPayloadOther),
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
payloadTo = execute.to;
|
|
157
|
+
payloadData = execute.data || '0x';
|
|
158
|
+
const reqData = (0, payload_builder_1.buildMulticallPayloadData)(ctx, execute.to, (0, payload_builders_1.buildExecuteMulticall)({ execute, ueaAddress: UEA }));
|
|
159
|
+
const universalPayloadSelf = JSON.parse(JSON.stringify({
|
|
160
|
+
to: viem_1.zeroAddress, value: execute.value,
|
|
161
|
+
data: reqData,
|
|
162
|
+
gasLimit: execute.gasLimit || BigInt(5e7),
|
|
163
|
+
maxFeePerGas: execute.maxFeePerGas || BigInt(1e10),
|
|
164
|
+
maxPriorityFeePerGas: execute.maxPriorityFeePerGas || BigInt(0),
|
|
165
|
+
nonce, deadline: execute.deadline || BigInt(9999999999),
|
|
166
|
+
vType: feeLockingRequired
|
|
167
|
+
? tx_1.VerificationType.universalTxVerification
|
|
168
|
+
: tx_1.VerificationType.signedVerification,
|
|
169
|
+
}, helpers_1.bigintReplacer));
|
|
170
|
+
req = (0, payload_builder_1.buildUniversalTxRequest)(ctx.universalSigner.account.address, {
|
|
171
|
+
recipient: viem_1.zeroAddress, token: viem_1.zeroAddress, amount: BigInt(0),
|
|
172
|
+
payload: (0, signing_1.encodeUniversalPayload)(universalPayloadSelf),
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
const universalPayload = JSON.parse(JSON.stringify({
|
|
177
|
+
to: payloadTo, value: execute.value, data: payloadData,
|
|
178
|
+
gasLimit: execute.gasLimit || BigInt(5e7),
|
|
179
|
+
maxFeePerGas: execute.maxFeePerGas || BigInt(1e10),
|
|
180
|
+
maxPriorityFeePerGas: execute.maxPriorityFeePerGas || BigInt(0),
|
|
181
|
+
nonce, deadline: execute.deadline || BigInt(9999999999),
|
|
182
|
+
vType: feeLockingRequired
|
|
183
|
+
? tx_1.VerificationType.universalTxVerification
|
|
184
|
+
: tx_1.VerificationType.signedVerification,
|
|
185
|
+
}, helpers_1.bigintReplacer));
|
|
186
|
+
// Prepare verification data by either signature or fund locking
|
|
187
|
+
let verificationData;
|
|
188
|
+
if (!feeLockingRequired) {
|
|
189
|
+
const ueaVersion = yield (0, uea_manager_1.fetchUEAVersion)(ctx);
|
|
190
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_04_02);
|
|
191
|
+
const signature = yield (0, signing_1.signUniversalPayload)(ctx, universalPayload, UEA, ueaVersion);
|
|
192
|
+
verificationData = (0, viem_1.bytesToHex)(signature);
|
|
193
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_04_03);
|
|
194
|
+
}
|
|
195
|
+
else {
|
|
196
|
+
// Fee Locking
|
|
197
|
+
const fundDifference = requiredFunds - funds;
|
|
198
|
+
const fixedPushAmount = utils_1.Utils.helpers.parseUnits('0.001', 18);
|
|
199
|
+
const lockAmount = funds < requiredFunds ? fundDifference : fixedPushAmount;
|
|
200
|
+
const lockAmountInUSD = ctx.pushClient.pushToUSDC(lockAmount);
|
|
201
|
+
const feeLockTxHashBytes = yield (0, gateway_client_1.lockFee)(ctx, lockAmountInUSD, universalPayload, req);
|
|
202
|
+
feeLockTxHash = (0, viem_1.bytesToHex)(feeLockTxHashBytes);
|
|
203
|
+
verificationData = (0, viem_1.bytesToHex)(feeLockTxHashBytes);
|
|
204
|
+
const { vm } = chain_1.CHAIN_INFO[chain];
|
|
205
|
+
const feeLockTxHashDisplay = vm === enums_1.VM.SVM
|
|
206
|
+
? bs58_1.bs58.encode(Buffer.from(feeLockTxHashBytes))
|
|
207
|
+
: feeLockTxHash;
|
|
208
|
+
const originTx = yield (0, helpers_1.fetchOriginChainTransactionForProgress)(ctx, chain, feeLockTxHash, feeLockTxHashDisplay);
|
|
209
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_05_01, feeLockTxHashDisplay, originTx);
|
|
210
|
+
yield (0, confirmation_1.waitForLockerFeeConfirmation)(ctx, feeLockTxHashBytes);
|
|
211
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_05_02);
|
|
212
|
+
const { defaultRPC, lockerContract } = chain_1.CHAIN_INFO[chain];
|
|
213
|
+
const pushChainUniversalTx = yield (0, response_builder_1.queryUniversalTxStatusFromGatewayTx)(ctx, new evm_client_1.EvmClient({ rpcUrls: ctx.rpcUrls[chain] || defaultRPC }), lockerContract, feeLockTxHash, 'sendTxWithGas');
|
|
214
|
+
const response = yield (0, push_chain_tx_1.extractPcTxAndTransform)(ctx, pushChainUniversalTx, feeLockTxHash, eventBuffer, 'sendTxWithGas', transformFn);
|
|
215
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_99_01, [response]);
|
|
216
|
+
return response;
|
|
217
|
+
}
|
|
218
|
+
// Non-fee-locking path: Broadcasting Tx to PC via sendUniversalTx
|
|
219
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_07);
|
|
220
|
+
const transactions = yield (0, push_chain_tx_1.sendUniversalTx)(ctx, isUEADeployed, feeLockTxHash, universalPayload, verificationData, eventBuffer, transformFn);
|
|
221
|
+
(0, context_1.fireProgressHook)(ctx, progress_hook_types_1.PROGRESS_HOOK.SEND_TX_99_01, transactions);
|
|
222
|
+
return transactions[transactions.length - 1];
|
|
223
|
+
});
|
|
224
|
+
}
|
|
225
|
+
//# sourceMappingURL=execute-standard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execute-standard.js","sourceRoot":"","sources":["../../../../../../../packages/core/src/lib/orchestrator/internals/execute-standard.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gas fee queries, native amount calculations, ERC-20 allowance,
|
|
3
|
+
* and Uniswap V3 quoting — extracted from Orchestrator.
|
|
4
|
+
*/
|
|
5
|
+
import { CHAIN } from '../../constants/enums';
|
|
6
|
+
import { ConversionQuote, MoveableToken, PayableToken } from '../../constants/tokens';
|
|
7
|
+
import { EvmClient } from '../../vm-client/evm-client';
|
|
8
|
+
import type { OrchestratorContext } from './context';
|
|
9
|
+
export declare function ensureErc20Allowance(ctx: OrchestratorContext, evmClient: EvmClient, tokenAddress: `0x${string}`, spender: `0x${string}`, requiredAmount: bigint): Promise<void>;
|
|
10
|
+
export declare function queryOutboundGasFee(ctx: OrchestratorContext, prc20Token: `0x${string}`, gasLimit: bigint): Promise<{
|
|
11
|
+
gasToken: `0x${string}`;
|
|
12
|
+
gasFee: bigint;
|
|
13
|
+
protocolFee: bigint;
|
|
14
|
+
nativeValueForGas: bigint;
|
|
15
|
+
gasPrice: bigint;
|
|
16
|
+
}>;
|
|
17
|
+
export declare function queryRescueGasFee(ctx: OrchestratorContext, prc20Token: `0x${string}`): Promise<{
|
|
18
|
+
gasToken: `0x${string}`;
|
|
19
|
+
gasFee: bigint;
|
|
20
|
+
rescueGasLimit: bigint;
|
|
21
|
+
gasPrice: bigint;
|
|
22
|
+
nativeValueForGas: bigint;
|
|
23
|
+
}>;
|
|
24
|
+
export declare function calculateNativeAmountForDeposit(ctx: OrchestratorContext, chain: CHAIN, requiredFunds: bigint, ueaBalance: bigint): Promise<bigint>;
|
|
25
|
+
export declare function calculateGasAmountFromAmountOutMinETH(ctx: OrchestratorContext, gasTokenAddress: `0x${string}`, amountOutMinETH: bigint | string, quoteExactOutputFn: (amountOut: bigint, opts: {
|
|
26
|
+
from: PayableToken | undefined;
|
|
27
|
+
to: MoveableToken | undefined;
|
|
28
|
+
}) => Promise<ConversionQuote>): Promise<{
|
|
29
|
+
gasAmount: bigint;
|
|
30
|
+
}>;
|