@broxus/js-bridge-essentials
Version:
Bridge JavaScript Essentials library
124 lines (123 loc) • 6.6 kB
JavaScript
;
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;