UNPKG

@unilogin/sdk

Version:

SDK is a JS library, that communicates with relayer. SDK allows managing contract, by creating basic contract-calling messages.

39 lines 1.73 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); var ethers_1 = require("ethers"); var IERC20_json_1 = __importDefault(require("openzeppelin-solidity/build/contracts/IERC20.json")); var commons_1 = require("@unilogin/commons"); exports.encodeTransferToMessage = function (_a) { var from = _a.from, to = _a.to, amount = _a.amount, gasParameters = _a.gasParameters, transferToken = _a.transferToken, gasLimit = _a.gasLimit; var base = { from: from, gasLimit: gasLimit, gasPrice: gasParameters.gasPrice, gasToken: gasParameters.gasToken, }; if (transferToken === commons_1.ETHER_NATIVE_TOKEN.address) { return __assign(__assign({}, base), { to: to, value: ethers_1.utils.parseEther(amount), data: '0x' }); } else { return __assign(__assign({}, base), { to: transferToken, value: 0, data: encodeERC20Transfer(to, amount) }); } }; function encodeERC20Transfer(to, amount) { return new ethers_1.utils.Interface(IERC20_json_1.default.abi).functions.transfer.encode([to, ethers_1.utils.parseEther(amount)]); } exports.encodeERC20Transfer = encodeERC20Transfer; //# sourceMappingURL=encodeTransferToMessage.js.map