UNPKG

@r3l/app

Version:
113 lines (94 loc) 3.81 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.logRevert = logRevert; exports.calculateGasMargin = calculateGasMargin; exports.getTxStatusString = exports.ERROR_STATES = exports.TX_STATUS = exports.TX_TYPE = void 0; var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator")); var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator")); var _ethRevertReason = require("./eth-revert-reason"); var _constants = require("./constants"); /* eslint-disable no-console */ var TX_TYPE = { // This means we are in the process of approving a token APPROVE_TOKEN: 'APPROVE_TOKEN', DEFAULT: 'DEFAULT' }; exports.TX_TYPE = TX_TYPE; var TX_STATUS = { // User needs to click confirm tx (for ex via metamask popup) AWAITING_USER_ACTION: 'AWAITING_USER_ACTION', // Waiting for transaction to go through PENDING: 'PENDING', // Success CONFIRMED: 'CONFIRMED', // ERROR FAILED: 'FAILED' }; exports.TX_STATUS = TX_STATUS; var ERROR_STATES = { CONFIRM_REJECTED: 'MetaMask Tx Signature: User denied transaction signature.', GAS_EXCEEDED: 'gas required exceeds allowance (8000029) or always failing transaction' }; // DEPRECATED (only used on dapp right now) // TODO remove exports.ERROR_STATES = ERROR_STATES; var getTxStatusString = function getTxStatusString(txStatus, txMeta) { if (!txMeta || !txStatus) return null; var transactionHash = txMeta.transactionHash; if (txStatus === TX_STATUS.AWAITING_USER_ACTION) return "awaiting user action"; if (txStatus === TX_STATUS.PENDING) return "pending tx: ".concat(transactionHash); if (txStatus === TX_STATUS.CONFIRMED) return "confirmed tx: ".concat(transactionHash); if (txStatus === TX_STATUS.FAILED) return "failed tx: ".concat(transactionHash); return null; }; exports.getTxStatusString = getTxStatusString; function logRevert(_x) { return _logRevert.apply(this, arguments); } function _logRevert() { _logRevert = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_ref) { var contract, action, args, library, account, data, tx; return _regenerator.default.wrap(function _callee$(_context) { while (1) { switch (_context.prev = _context.next) { case 0: contract = _ref.contract, action = _ref.action, args = _ref.args, library = _ref.library, account = _ref.account; _context.prev = 1; if (!(!contract || !contract.interface)) { _context.next = 4; break; } return _context.abrupt("return", null); case 4: data = contract === null || contract === void 0 ? void 0 : contract.interface.encodeFunctionData(action, args); tx = { to: contract.address, data: data, from: account }; console.log(tx); _context.next = 9; return (0, _ethRevertReason.getRevertReason)(null, tx, _constants.PUBLIC_NETWORK, 'latest', library); case 9: return _context.abrupt("return", _context.sent); case 12: _context.prev = 12; _context.t0 = _context["catch"](1); console.error('revert error', _context.t0); return _context.abrupt("return", null); case 16: case "end": return _context.stop(); } } }, _callee, null, [[1, 12]]); })); return _logRevert.apply(this, arguments); } function calculateGasMargin(value) { var offset = value.mul(_constants.GAS_MARGIN).div(_constants.PERCENT); return value.add(offset); } //# sourceMappingURL=tx.js.map