@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
JavaScript
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
;