UNPKG

@kaiachain/kss-bridges-celer

Version:
46 lines 3.23 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.mintCanonicalTokenRefund = void 0; const jsdom_1 = require("jsdom"); const { window } = new jsdom_1.JSDOM(); global.XMLHttpRequest = window.XMLHttpRequest; const dotenv_1 = require("dotenv"); (0, dotenv_1.config)(); const core_1 = require("../core"); const core_2 = require("../core"); const OriginalTokenVault_json_1 = __importDefault(require("../core/contract/abi/pegged/OriginalTokenVault.sol/OriginalTokenVault.json")); const OriginalTokenVaultV2_json_1 = __importDefault(require("../core/contract/abi/pegged/OriginalTokenVaultV2.sol/OriginalTokenVaultV2.json")); async function mintCanonicalTokenRefund(CBRIDGE_GATEWAY_URL, WALLET_ADDRESS, PRIVATE_KEY, SRC_CHAIN_ID, DST_CHAIN_ID, SRC_CHAIN_RPC, SLIPPAGE_TOLERANCE, TOKEN_SYMBOL, DEPOSIT_ID, AMOUNT, CONFIRMATIONS) { const transferConfigs = await (0, core_1.getTransferConfigs)(CBRIDGE_GATEWAY_URL); const originalTokenVaultAddress = transferConfigs.pegged_pair_configs.find(config => config.org_chain_id === SRC_CHAIN_ID && config.vault_version < 2)?.pegged_deposit_contract_addr; const originalTokenVault = (0, core_2.getContract)(originalTokenVaultAddress || '', OriginalTokenVault_json_1.default.abi, SRC_CHAIN_RPC, PRIVATE_KEY); const originalTokenVaultV2Address = transferConfigs.pegged_pair_configs.find(config => config.org_chain_id === SRC_CHAIN_ID && config.vault_version === 2)?.pegged_deposit_contract_addr; const originalTokenVaultV2 = (0, core_2.getContract)(originalTokenVaultV2Address || '', OriginalTokenVaultV2_json_1.default.abi, SRC_CHAIN_RPC, PRIVATE_KEY); if (!originalTokenVaultAddress && !originalTokenVaultV2Address) throw new Error('SRC_CHAIN_ID not supported by cBridge'); const pegConfig = (0, core_2.getPegConfig)(transferConfigs, SRC_CHAIN_ID, DST_CHAIN_ID, TOKEN_SYMBOL); const vaultVersion = pegConfig?.vault_version; const originalTokenContract = vaultVersion === 2 ? originalTokenVaultV2 : originalTokenVault; console.log("1. Initiating refund request..."); // Transfer status should not be 0, 5 OR 10 const transferStatus = await (0, core_1.getTransferStatus)(CBRIDGE_GATEWAY_URL, DEPOSIT_ID); if (transferStatus.status === 0) { throw new Error("cBRIDGE => TRANSFER_ID UNKNOWN / INVALID"); } else if (transferStatus.status === 5) { throw new Error("cBRIDGE => TRANSFER_ALREADY_COMPLETED / NON_REFUNDABLE"); } else if (transferStatus.status === 10) { throw new Error("cBRIDGE => TRANSFER_ALREADY_REFUNDED"); } else { console.log("1. Estimating refund request..."); const estimated = await (0, core_1.getEstimation)(CBRIDGE_GATEWAY_URL, WALLET_ADDRESS, SRC_CHAIN_ID, TOKEN_SYMBOL, AMOUNT, SLIPPAGE_TOLERANCE); return await (0, core_1.requestRefund)("MINT", originalTokenContract, CBRIDGE_GATEWAY_URL, DEPOSIT_ID, estimated, SRC_CHAIN_RPC, PRIVATE_KEY, CONFIRMATIONS); } } exports.mintCanonicalTokenRefund = mintCanonicalTokenRefund; //# sourceMappingURL=mintCanonicalTokenRefund.js.map