UNPKG

@broxus/js-bridge-essentials

Version:

Bridge JavaScript Essentials library

124 lines (123 loc) 6.6 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TvmSolEventNativeUtils = void 0; const js_core_1 = require("@broxus/js-core"); const bs58_1 = __importDefault(require("bs58")); const contracts_1 = require("../../models/tvm-sol-event-native/contracts"); const utils_1 = require("../../utils"); class TvmSolEventNativeUtils { static async getDecodedData(connection, eventAddress, cachedState) { const state = cachedState ?? await (0, js_core_1.getFullContractState)(connection, eventAddress); const result = await (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress) .methods.getDecodedData({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return { amount: result.amount_, decimals: Number(result.decimals_), name: result.name_, proxyAddress: result.proxy_, recipientAddress: result.recipient_, remainingGasTo: result.remainingGasTo_, solanaPayload: result.solanaPayload_, symbol: result.symbol_, tokenAddress: result.token_, tokenWalletAddress: result.tokenWallet_, }; } static async getDetails(connection, eventAddress, cachedState) { const state = cachedState ?? await (0, js_core_1.getFullContractState)(connection, eventAddress); const result = await (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress) .methods.getDetails({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return { balance: result.balance, confirms: result._confirms, empty: result.empty, eventInitData: { configuration: result._eventInitData.configuration, staking: result._eventInitData.staking, voteData: { eventData: result._eventInitData.voteData.eventData, eventTimestamp: Number(result._eventInitData.voteData.eventTimestamp), eventTransactionLt: result._eventInitData.voteData.eventTransactionLt, executeAccounts: result._eventInitData.voteData.executeAccounts, executePayloadAccounts: result._eventInitData.voteData.executePayloadAccounts, executePayloadNeeded: result._eventInitData.voteData.executePayloadNeeded, }, }, initializer: result._initializer, meta: result._meta, rejects: result._rejects, requiredVotes: Number(result._requiredVotes), status: result._status, }; } static async getEventInitData(connection, eventAddress, cachedState) { const state = cachedState ?? await (0, js_core_1.getFullContractState)(connection, eventAddress); const result = await (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress) .methods.getEventInitData({ answerId: 0 }) .call({ cachedState: state, responsible: true }); return { configuration: result.value0.configuration, staking: result.value0.staking, voteData: { eventData: result.value0.voteData.eventData, eventTimestamp: Number(result.value0.voteData.eventTimestamp), eventTransactionLt: result.value0.voteData.eventTransactionLt, executeAccounts: result.value0.voteData.executeAccounts, executePayloadAccounts: result.value0.voteData.executePayloadAccounts, executePayloadNeeded: result.value0.voteData.executePayloadNeeded, }, }; } static async nonce(connection, eventAddress, cachedState) { const state = cachedState ?? await (0, js_core_1.getFullContractState)(connection, eventAddress); const result = await (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress) .methods.nonce() .call({ cachedState: state }); return result.nonce; } static async recipient(connection, eventAddress, cachedState) { const state = cachedState ?? await (0, js_core_1.getFullContractState)(connection, eventAddress); const result = await (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress) .methods.recipient() .call({ cachedState: state }); const hex = BigNumber(result.recipient).toString(16).padStart(64, '0'); const buffer = Buffer.from(hex, 'hex'); return (0, utils_1.resolveSolanaAddress)(bs58_1.default.encode(buffer)); } static async relayRound(connection, eventAddress, cachedState) { const state = cachedState ?? await (0, js_core_1.getFullContractState)(connection, eventAddress); const result = await (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress) .methods.relay_round() .call({ cachedState: state }); return result.relay_round; } static async roundNumber(connection, eventAddress, cachedState) { const state = cachedState ?? await (0, js_core_1.getFullContractState)(connection, eventAddress); const result = await (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress) .methods.round_number() .call({ cachedState: state }); return Number(result.round_number); } static async sender(connection, eventAddress, cachedState) { const state = cachedState ?? await (0, js_core_1.getFullContractState)(connection, eventAddress); const result = await (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress) .methods.sender() .call({ cachedState: state }); return result.sender; } static decodeEvent(connection, eventAddress, args) { return (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress).decodeEvent(args); } static decodeTransaction(connection, eventAddress, args) { return (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress).decodeTransaction(args); } static decodeTransactionEvents(connection, eventAddress, transaction) { return (0, contracts_1.tvmSolEventNativeContract)(connection, eventAddress).decodeTransactionEvents({ transaction }); } } exports.TvmSolEventNativeUtils = TvmSolEventNativeUtils;