UNPKG

@coolwallet/ton

Version:
59 lines (55 loc) 8.9 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.checkTransferTokenTransaction = checkTransferTokenTransaction; exports.checkTransferTransaction = checkTransferTransaction; var _bignumber = _interopRequireDefault(require("bignumber.js")); var _tonweb = _interopRequireDefault(require("tonweb")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } // The Pro card cannot display 9-digit integer numbers, so the transaction amount is limited function checkAmountCanDisplayOnProCard(transferAmount, decimals) { if (new _bignumber["default"](transferAmount).shiftedBy(-decimals).isGreaterThanOrEqualTo('100000000')) throw new Error("checkParams: pro card cannot display 9 digits"); } // The current script does not support writing 0. function checkAmountNotZero(amount) { if (new _bignumber["default"](amount).isZero()) throw new Error("checkParams: not support amount 0"); } // Check address. function checkAddressIsValid(address) { if (!_tonweb["default"].Address.isValid(address)) throw new Error("checkParams: address is invalid. address=".concat(address)); if (new _tonweb["default"].Address(address).wc !== 0) throw new Error("checkParams: we did not support other chain. address=".concat(address)); } // The script reserves 64 bytes for memo. function checkMemoLength() { var memo = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; if (new TextEncoder().encode(memo).byteLength > 64) throw new Error("checkParams: memo too long"); } function checkTransferTransaction(transaction) { var amount = transaction.amount, toAddress = transaction.toAddress, payload = transaction.payload; var TON_DECIMALS = 9; checkAmountCanDisplayOnProCard(amount, TON_DECIMALS); checkAmountNotZero(amount); checkAddressIsValid(toAddress); checkMemoLength(payload); } function checkTransferTokenTransaction(transaction) { var amount = transaction.amount, fromTokenAccount = transaction.toAddress, payload = transaction.payload; var jettonAmount = payload.jettonAmount, toAddress = payload.toAddress, forwardAmount = payload.forwardAmount, forwardPayload = payload.forwardPayload, responseAddress = payload.responseAddress; checkAmountNotZero(amount); checkAmountNotZero(jettonAmount); checkAmountNotZero(forwardAmount); checkAddressIsValid(fromTokenAccount); checkAddressIsValid(toAddress); checkAddressIsValid(responseAddress); checkMemoLength(forwardPayload); } //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYmlnbnVtYmVyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfdG9ud2ViIiwib2JqIiwiX19lc01vZHVsZSIsImNoZWNrQW1vdW50Q2FuRGlzcGxheU9uUHJvQ2FyZCIsInRyYW5zZmVyQW1vdW50IiwiZGVjaW1hbHMiLCJCaWdOdW1iZXIiLCJzaGlmdGVkQnkiLCJpc0dyZWF0ZXJUaGFuT3JFcXVhbFRvIiwiRXJyb3IiLCJjaGVja0Ftb3VudE5vdFplcm8iLCJhbW91bnQiLCJpc1plcm8iLCJjaGVja0FkZHJlc3NJc1ZhbGlkIiwiYWRkcmVzcyIsIlRvbldlYiIsIkFkZHJlc3MiLCJpc1ZhbGlkIiwiY29uY2F0Iiwid2MiLCJjaGVja01lbW9MZW5ndGgiLCJtZW1vIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwiVGV4dEVuY29kZXIiLCJlbmNvZGUiLCJieXRlTGVuZ3RoIiwiY2hlY2tUcmFuc2ZlclRyYW5zYWN0aW9uIiwidHJhbnNhY3Rpb24iLCJ0b0FkZHJlc3MiLCJwYXlsb2FkIiwiVE9OX0RFQ0lNQUxTIiwiY2hlY2tUcmFuc2ZlclRva2VuVHJhbnNhY3Rpb24iLCJmcm9tVG9rZW5BY2NvdW50IiwiamV0dG9uQW1vdW50IiwiZm9yd2FyZEFtb3VudCIsImZvcndhcmRQYXlsb2FkIiwicmVzcG9uc2VBZGRyZXNzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL3V0aWxzL2NoZWNrUGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBCaWdOdW1iZXIgZnJvbSAnYmlnbnVtYmVyLmpzJztcbmltcG9ydCBUb25XZWIgZnJvbSAndG9ud2ViJztcbmltcG9ydCB7IFRyYW5zZmVyVG9rZW5UcmFuc2FjdGlvbiwgVHJhbnNmZXJUcmFuc2FjdGlvbiB9IGZyb20gJy4uL2NvbmZpZy90eXBlcyc7XG5cbi8vIFRoZSBQcm8gY2FyZCBjYW5ub3QgZGlzcGxheSA5LWRpZ2l0IGludGVnZXIgbnVtYmVycywgc28gdGhlIHRyYW5zYWN0aW9uIGFtb3VudCBpcyBsaW1pdGVkXG5mdW5jdGlvbiBjaGVja0Ftb3VudENhbkRpc3BsYXlPblByb0NhcmQodHJhbnNmZXJBbW91bnQ6IHN0cmluZywgZGVjaW1hbHM6IHN0cmluZyB8IG51bWJlcik6IHZvaWQge1xuICBpZiAobmV3IEJpZ051bWJlcih0cmFuc2ZlckFtb3VudCkuc2hpZnRlZEJ5KC1kZWNpbWFscykuaXNHcmVhdGVyVGhhbk9yRXF1YWxUbygnMTAwMDAwMDAwJykpXG4gICAgdGhyb3cgbmV3IEVycm9yKGBjaGVja1BhcmFtczogcHJvIGNhcmQgY2Fubm90IGRpc3BsYXkgOSBkaWdpdHNgKTtcbn1cblxuLy8gVGhlIGN1cnJlbnQgc2NyaXB0IGRvZXMgbm90IHN1cHBvcnQgd3JpdGluZyAwLlxuZnVuY3Rpb24gY2hlY2tBbW91bnROb3RaZXJvKGFtb3VudDogc3RyaW5nKTogdm9pZCB7XG4gIGlmIChuZXcgQmlnTnVtYmVyKGFtb3VudCkuaXNaZXJvKCkpIHRocm93IG5ldyBFcnJvcihgY2hlY2tQYXJhbXM6IG5vdCBzdXBwb3J0IGFtb3VudCAwYCk7XG59XG5cbi8vIENoZWNrIGFkZHJlc3MuXG5mdW5jdGlvbiBjaGVja0FkZHJlc3NJc1ZhbGlkKGFkZHJlc3M6IHN0cmluZyk6IHZvaWQge1xuICBpZiAoIVRvbldlYi5BZGRyZXNzLmlzVmFsaWQoYWRkcmVzcykpIHRocm93IG5ldyBFcnJvcihgY2hlY2tQYXJhbXM6IGFkZHJlc3MgaXMgaW52YWxpZC4gYWRkcmVzcz0ke2FkZHJlc3N9YCk7XG4gIGlmIChuZXcgVG9uV2ViLkFkZHJlc3MoYWRkcmVzcykud2MgIT09IDApIHRocm93IG5ldyBFcnJvcihgY2hlY2tQYXJhbXM6IHdlIGRpZCBub3Qgc3VwcG9ydCBvdGhlciBjaGFpbi4gYWRkcmVzcz0ke2FkZHJlc3N9YCk7XG59XG5cbi8vIFRoZSBzY3JpcHQgcmVzZXJ2ZXMgNjQgYnl0ZXMgZm9yIG1lbW8uXG5mdW5jdGlvbiBjaGVja01lbW9MZW5ndGgobWVtbzogc3RyaW5nID0gJycpOiB2b2lkIHtcbiAgaWYgKG5ldyBUZXh0RW5jb2RlcigpLmVuY29kZShtZW1vKS5ieXRlTGVuZ3RoID4gNjQpIHRocm93IG5ldyBFcnJvcihgY2hlY2tQYXJhbXM6IG1lbW8gdG9vIGxvbmdgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrVHJhbnNmZXJUcmFuc2FjdGlvbih0cmFuc2FjdGlvbjogVHJhbnNmZXJUcmFuc2FjdGlvbik6IHZvaWQge1xuICBjb25zdCB7IGFtb3VudCwgdG9BZGRyZXNzLCBwYXlsb2FkIH0gPSB0cmFuc2FjdGlvbjtcblxuICBjb25zdCBUT05fREVDSU1BTFMgPSA5O1xuXG4gIGNoZWNrQW1vdW50Q2FuRGlzcGxheU9uUHJvQ2FyZChhbW91bnQsIFRPTl9ERUNJTUFMUyk7XG5cbiAgY2hlY2tBbW91bnROb3RaZXJvKGFtb3VudCk7XG5cbiAgY2hlY2tBZGRyZXNzSXNWYWxpZCh0b0FkZHJlc3MpO1xuXG4gIGNoZWNrTWVtb0xlbmd0aChwYXlsb2FkKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrVHJhbnNmZXJUb2tlblRyYW5zYWN0aW9uKHRyYW5zYWN0aW9uOiBUcmFuc2ZlclRva2VuVHJhbnNhY3Rpb24pOiB2b2lkIHtcbiAgY29uc3QgeyBhbW91bnQsIHRvQWRkcmVzczogZnJvbVRva2VuQWNjb3VudCwgcGF5bG9hZCB9ID0gdHJhbnNhY3Rpb247XG5cbiAgY29uc3QgeyBqZXR0b25BbW91bnQsIHRvQWRkcmVzcywgZm9yd2FyZEFtb3VudCwgZm9yd2FyZFBheWxvYWQsIHJlc3BvbnNlQWRkcmVzcyB9ID0gcGF5bG9hZDtcblxuICBjaGVja0Ftb3VudE5vdFplcm8oYW1vdW50KTtcbiAgY2hlY2tBbW91bnROb3RaZXJvKGpldHRvbkFtb3VudCk7XG4gIGNoZWNrQW1vdW50Tm90WmVybyhmb3J3YXJkQW1vdW50KTtcblxuICBjaGVja0FkZHJlc3NJc1ZhbGlkKGZyb21Ub2tlbkFjY291bnQpO1xuICBjaGVja0FkZHJlc3NJc1ZhbGlkKHRvQWRkcmVzcyk7XG4gIGNoZWNrQWRkcmVzc0lzVmFsaWQocmVzcG9uc2VBZGRyZXNzKTtcblxuICBjaGVja01lbW9MZW5ndGgoZm9yd2FyZFBheWxvYWQpO1xufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsVUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQTRCLFNBQUFELHVCQUFBRyxHQUFBLFdBQUFBLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLEdBQUFELEdBQUEsZ0JBQUFBLEdBQUE7QUFHNUI7QUFDQSxTQUFTRSw4QkFBOEJBLENBQUNDLGNBQXNCLEVBQUVDLFFBQXlCLEVBQVE7RUFDL0YsSUFBSSxJQUFJQyxxQkFBUyxDQUFDRixjQUFjLENBQUMsQ0FBQ0csU0FBUyxDQUFDLENBQUNGLFFBQVEsQ0FBQyxDQUFDRyxzQkFBc0IsQ0FBQyxXQUFXLENBQUMsRUFDeEYsTUFBTSxJQUFJQyxLQUFLLGdEQUFnRCxDQUFDO0FBQ3BFOztBQUVBO0FBQ0EsU0FBU0Msa0JBQWtCQSxDQUFDQyxNQUFjLEVBQVE7RUFDaEQsSUFBSSxJQUFJTCxxQkFBUyxDQUFDSyxNQUFNLENBQUMsQ0FBQ0MsTUFBTSxDQUFDLENBQUMsRUFBRSxNQUFNLElBQUlILEtBQUssb0NBQW9DLENBQUM7QUFDMUY7O0FBRUE7QUFDQSxTQUFTSSxtQkFBbUJBLENBQUNDLE9BQWUsRUFBUTtFQUNsRCxJQUFJLENBQUNDLGtCQUFNLENBQUNDLE9BQU8sQ0FBQ0MsT0FBTyxDQUFDSCxPQUFPLENBQUMsRUFBRSxNQUFNLElBQUlMLEtBQUssNkNBQUFTLE1BQUEsQ0FBNkNKLE9BQU8sQ0FBRSxDQUFDO0VBQzVHLElBQUksSUFBSUMsa0JBQU0sQ0FBQ0MsT0FBTyxDQUFDRixPQUFPLENBQUMsQ0FBQ0ssRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLElBQUlWLEtBQUsseURBQUFTLE1BQUEsQ0FBeURKLE9BQU8sQ0FBRSxDQUFDO0FBQzlIOztBQUVBO0FBQ0EsU0FBU00sZUFBZUEsQ0FBQSxFQUEwQjtFQUFBLElBQXpCQyxJQUFZLEdBQUFDLFNBQUEsQ0FBQUMsTUFBQSxRQUFBRCxTQUFBLFFBQUFFLFNBQUEsR0FBQUYsU0FBQSxNQUFHLEVBQUU7RUFDeEMsSUFBSSxJQUFJRyxXQUFXLENBQUMsQ0FBQyxDQUFDQyxNQUFNLENBQUNMLElBQUksQ0FBQyxDQUFDTSxVQUFVLEdBQUcsRUFBRSxFQUFFLE1BQU0sSUFBSWxCLEtBQUssNkJBQTZCLENBQUM7QUFDbkc7QUFFTyxTQUFTbUIsd0JBQXdCQSxDQUFDQyxXQUFnQyxFQUFRO0VBQy9FLElBQVFsQixNQUFNLEdBQXlCa0IsV0FBVyxDQUExQ2xCLE1BQU07SUFBRW1CLFNBQVMsR0FBY0QsV0FBVyxDQUFsQ0MsU0FBUztJQUFFQyxPQUFPLEdBQUtGLFdBQVcsQ0FBdkJFLE9BQU87RUFFbEMsSUFBTUMsWUFBWSxHQUFHLENBQUM7RUFFdEI3Qiw4QkFBOEIsQ0FBQ1EsTUFBTSxFQUFFcUIsWUFBWSxDQUFDO0VBRXBEdEIsa0JBQWtCLENBQUNDLE1BQU0sQ0FBQztFQUUxQkUsbUJBQW1CLENBQUNpQixTQUFTLENBQUM7RUFFOUJWLGVBQWUsQ0FBQ1csT0FBTyxDQUFDO0FBQzFCO0FBRU8sU0FBU0UsNkJBQTZCQSxDQUFDSixXQUFxQyxFQUFRO0VBQ3pGLElBQVFsQixNQUFNLEdBQTJDa0IsV0FBVyxDQUE1RGxCLE1BQU07SUFBYXVCLGdCQUFnQixHQUFjTCxXQUFXLENBQXBEQyxTQUFTO0lBQW9CQyxPQUFPLEdBQUtGLFdBQVcsQ0FBdkJFLE9BQU87RUFFcEQsSUFBUUksWUFBWSxHQUFnRUosT0FBTyxDQUFuRkksWUFBWTtJQUFFTCxTQUFTLEdBQXFEQyxPQUFPLENBQXJFRCxTQUFTO0lBQUVNLGFBQWEsR0FBc0NMLE9BQU8sQ0FBMURLLGFBQWE7SUFBRUMsY0FBYyxHQUFzQk4sT0FBTyxDQUEzQ00sY0FBYztJQUFFQyxlQUFlLEdBQUtQLE9BQU8sQ0FBM0JPLGVBQWU7RUFFL0U1QixrQkFBa0IsQ0FBQ0MsTUFBTSxDQUFDO0VBQzFCRCxrQkFBa0IsQ0FBQ3lCLFlBQVksQ0FBQztFQUNoQ3pCLGtCQUFrQixDQUFDMEIsYUFBYSxDQUFDO0VBRWpDdkIsbUJBQW1CLENBQUNxQixnQkFBZ0IsQ0FBQztFQUNyQ3JCLG1CQUFtQixDQUFDaUIsU0FBUyxDQUFDO0VBQzlCakIsbUJBQW1CLENBQUN5QixlQUFlLENBQUM7RUFFcENsQixlQUFlLENBQUNpQixjQUFjLENBQUM7QUFDakMiLCJpZ25vcmVMaXN0IjpbXX0=