@broxus/js-core
Version:
MobX-based JavaScript Core library
43 lines (42 loc) • 2.11 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.WrappedCurrencyVaultUtils = void 0;
const bignumber_js_1 = __importDefault(require("bignumber.js"));
const constants_1 = require("../../constants");
const contracts_1 = require("../../models/wrapped-currency-vault/contracts");
const utils_1 = require("../../utils");
class WrappedCurrencyVaultUtils {
static async wrap(provider, vaultAddress, params, args) {
return (0, contracts_1.wrappedNativeVaultContract)(provider, vaultAddress)
.methods.wrap({
gas_back_address: (0, utils_1.resolveTvmAddress)(params.remainingGasTo),
owner_address: (0, utils_1.resolveTvmAddress)(params.ownerAddress),
payload: params.payload ?? '',
tokens: params.tokens,
})
.sendDelayed({
amount: (0, bignumber_js_1.default)(params.tokens).plus((0, utils_1.toInt)(5, constants_1.DEFAULT_NATIVE_CURRENCY_DECIMALS)).toFixed(),
bounce: true,
from: (0, utils_1.resolveTvmAddress)(params.remainingGasTo),
...args,
});
}
static async getOwner(connection, vaultAddress, cachedState) {
const cache = cachedState ?? (await (0, utils_1.getFullContractState)(connection, vaultAddress));
const result = await (0, contracts_1.wrappedNativeVaultContract)(connection, vaultAddress)
.methods.owner()
.call({ cachedState: cache });
return result.owner;
}
static async getTotalWrapped(connection, vaultAddress, cachedState) {
const cache = cachedState ?? (await (0, utils_1.getFullContractState)(connection, vaultAddress));
const result = await (0, contracts_1.wrappedNativeVaultContract)(connection, vaultAddress)
.methods.total_wrapped()
.call({ cachedState: cache });
return result.total_wrapped;
}
}
exports.WrappedCurrencyVaultUtils = WrappedCurrencyVaultUtils;