{"version":3,"sources":["webpack:///./node_modules/@ethereumjs/tx/dist.browser/eip2930Transaction.js","webpack:///./node_modules/@ethereumjs/tx/dist.browser/legacyTransaction.js","webpack:///./node_modules/@ethereumjs/tx/dist.browser/baseTransaction.js","webpack:///./node_modules/@ethereumjs/tx/dist.browser/eip1559Transaction.js","webpack:///./node_modules/@ethereumjs/tx/dist.browser/types.js","webpack:///./node_modules/@ethereumjs/tx/dist.browser/util.js","webpack:///./node_modules/@ethereumjs/tx/dist.browser/index.js","webpack:///./node_modules/@ethereumjs/tx/dist.browser/transactionFactory.js"],"names":["__extends","this","extendStatics","d","b","Object","setPrototypeOf","__proto__","Array","p","prototype","hasOwnProperty","call","TypeError","String","__","constructor","create","__assign","assign","t","s","i","n","arguments","length","apply","__read","o","m","Symbol","iterator","r","e","ar","next","done","push","value","error","defineProperty","exports","ethereumjs_util_1","baseTransaction_1","types_1","util_1","TRANSACTION_TYPE_BUFFER","Buffer","from","toString","padStart","AccessListEIP2930Transaction","_super","txData","opts","_a","_b","_this","type","DEFAULT_HARDFORK","chainId","accessList","gasPrice","common","_getCommon","chainIdBN","isActivatedEIP","Error","activeCapabilities","concat","accessListData","AccessLists","getAccessListData","AccessListJSON","verifyAccessList","BN","toBuffer","_validateCannotExceedMaxInteger","mul","gasLimit","gt","MAX_INTEGER","msg","_errorMsg","v","eqn","gteHardfork","N_DIV_2","checkMaxInitCodeSize","data","freeze","get","enumerable","configurable","fromTxData","fromSerializedTx","serialized","slice","equals","values","rlp","decode","isArray","fromValuesArray","fromRlpSerializedTx","nonce","to","validateNoLeadingZeroes","getDataFee","cache","dataFee","hardfork","cost","iaddn","getDataFeeEIP2930","isFrozen","getUpfrontCost","add","raw","bnToUnpaddedBuffer","buf","serialize","base","encode","getMessageToSign","hashMessage","message","keccak256","hash","isSigned","getMessageToVerifySignature","getSenderPublicKey","msgHash","yParity","ecrecover","addn","_processSignature","toJSON","accessListJSON","getAccessListJSON","bnToHex","errorStr","_getSharedErrorPostfix","BaseTransaction","default","Transaction","_validateTxV","chainIdDoubled","muln","eq","Capability","EIP155ReplayProtection","_getMessageToSign","supports","unpadBuffer","rlphash","vBN","iadd","numSub","subn","isEven","divn","_unsignedTxImplementsEIP155","_signedTxImplementsEIP155","onEIP155BlockOrLater","__createBinding","k","k2","desc","getOwnPropertyDescriptor","__esModule","writable","__setModuleDefault","__importStar","mod","result","__values","common_1","DEFAULT_CHAIN","Chain","Mainnet","Hardfork","Istanbul","_type","toNumber","toB","vB","rB","sB","Address","capability","includes","validate","stringError","errors","getBaseFee","verifySignature","fee","param","toCreationAddress","txDataZero","txDataNonZero","dataLength","Math","ceil","initCodeCost","imuln","publicKey","getSenderAddress","publicToAddress","sign","privateKey","hackApplied","ecsign","tx","index","indexOf","splice","copy","isSupportedChainId","chain","forCustomChain","name","networkId","bits","cannotEqual","e_1","entries","_c","_d","key","gte","MAX_UINT64","e_1_1","return","bufferToHex","hf","postfix","FeeMarketEIP1559Transaction","maxFeePerGas","maxPriorityFeePerGas","lt","baseFee","min","sub","isAccessList","isAccessListBuffer","input","firstItem","bufferAccessList","newAccessList","item","addressBuffer","address","storageItems","storageKeys","json","jsonItem","accessListItem","storageSlots","storageSlot","JSONItem","setLengthLeft","slot","accessListStorageKeyCost","accessListAddressCost","slots","__exportStar","__importDefault","TransactionFactory","legacyTransaction_1","eip2930Transaction_1","transactionFactory_1","eip1559Transaction_1","_1","txOptions","txType","fromSerializedData","EIP","fromBlockBodyData","isBuffer","getTransactionClass","transactionID","_common"],"mappings":"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","file":"js/chunk-vendors~b1d2aef6.19ca081d.js","sourcesContent":["\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ethereumjs_util_1 = require(\"ethereumjs-util\");\nvar baseTransaction_1 = require(\"./baseTransaction\");\nvar types_1 = require(\"./types\");\nvar util_1 = require(\"./util\");\nvar TRANSACTION_TYPE = 1;\nvar TRANSACTION_TYPE_BUFFER = Buffer.from(TRANSACTION_TYPE.toString(16).padStart(2, '0'), 'hex');\n/**\n * Typed transaction with optional access lists\n *\n * - TransactionType: 1\n * - EIP: [EIP-2930](https://eips.ethereum.org/EIPS/eip-2930)\n */\nvar AccessListEIP2930Transaction = /** @class */ (function (_super) {\n __extends(AccessListEIP2930Transaction, _super);\n /**\n * This constructor takes the values, validates them, assigns them and freezes the object.\n *\n * It is not recommended to use this constructor directly. Instead use\n * the static factory methods to assist in creating a Transaction object from\n * varying data types.\n */\n function AccessListEIP2930Transaction(txData, opts) {\n if (opts === void 0) { opts = {}; }\n var _this = this;\n var _a, _b;\n _this = _super.call(this, __assign(__assign({}, txData), { type: TRANSACTION_TYPE })) || this;\n /**\n * The default HF if the tx type is active on that HF\n * or the first greater HF where the tx is active.\n *\n * @hidden\n */\n _this.DEFAULT_HARDFORK = 'berlin';\n var chainId = txData.chainId, accessList = txData.accessList, gasPrice = txData.gasPrice;\n _this.common = _this._getCommon(opts.common, chainId);\n _this.chainId = _this.common.chainIdBN();\n // EIP-2718 check is done in Common\n if (!_this.common.isActivatedEIP(2930)) {\n throw new Error('EIP-2930 not enabled on Common');\n }\n _this.activeCapabilities = _this.activeCapabilities.concat([2718, 2930]);\n // Populate the access list fields\n var accessListData = util_1.AccessLists.getAccessListData(accessList !== null && accessList !== void 0 ? accessList : []);\n _this.accessList = accessListData.accessList;\n _this.AccessListJSON = accessListData.AccessListJSON;\n // Verify the access list format.\n util_1.AccessLists.verifyAccessList(_this.accessList);\n _this.gasPrice = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(gasPrice === '' ? '0x' : gasPrice));\n _this._validateCannotExceedMaxInteger({\n gasPrice: _this.gasPrice,\n });\n if (_this.gasPrice.mul(_this.gasLimit).gt(ethereumjs_util_1.MAX_INTEGER)) {\n var msg = _this._errorMsg('gasLimit * gasPrice cannot exceed MAX_INTEGER');\n throw new Error(msg);\n }\n if (_this.v && !_this.v.eqn(0) && !_this.v.eqn(1)) {\n var msg = _this._errorMsg('The y-parity of the transaction should either be 0 or 1');\n throw new Error(msg);\n }\n if (_this.common.gteHardfork('homestead') && ((_a = _this.s) === null || _a === void 0 ? void 0 : _a.gt(types_1.N_DIV_2))) {\n var msg = _this._errorMsg('Invalid Signature: s-values greater than secp256k1n/2 are considered invalid');\n throw new Error(msg);\n }\n if (_this.common.isActivatedEIP(3860)) {\n (0, util_1.checkMaxInitCodeSize)(_this.common, _this.data.length);\n }\n var freeze = (_b = opts === null || opts === void 0 ? void 0 : opts.freeze) !== null && _b !== void 0 ? _b : true;\n if (freeze) {\n Object.freeze(_this);\n }\n return _this;\n }\n Object.defineProperty(AccessListEIP2930Transaction.prototype, \"senderR\", {\n /**\n * EIP-2930 alias for `r`\n *\n * @deprecated use `r` instead\n */\n get: function () {\n return this.r;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AccessListEIP2930Transaction.prototype, \"senderS\", {\n /**\n * EIP-2930 alias for `s`\n *\n * @deprecated use `s` instead\n */\n get: function () {\n return this.s;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(AccessListEIP2930Transaction.prototype, \"yParity\", {\n /**\n * EIP-2930 alias for `v`\n *\n * @deprecated use `v` instead\n */\n get: function () {\n return this.v;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Instantiate a transaction from a data dictionary.\n *\n * Format: { chainId, nonce, gasPrice, gasLimit, to, value, data, accessList,\n * v, r, s }\n *\n * Notes:\n * - `chainId` will be set automatically if not provided\n * - All parameters are optional and have some basic default values\n */\n AccessListEIP2930Transaction.fromTxData = function (txData, opts) {\n if (opts === void 0) { opts = {}; }\n return new AccessListEIP2930Transaction(txData, opts);\n };\n /**\n * Instantiate a transaction from the serialized tx.\n *\n * Format: `0x01 || rlp([chainId, nonce, gasPrice, gasLimit, to, value, data, accessList,\n * signatureYParity (v), signatureR (r), signatureS (s)])`\n */\n AccessListEIP2930Transaction.fromSerializedTx = function (serialized, opts) {\n if (opts === void 0) { opts = {}; }\n if (!serialized.slice(0, 1).equals(TRANSACTION_TYPE_BUFFER)) {\n throw new Error(\"Invalid serialized tx input: not an EIP-2930 transaction (wrong tx type, expected: \".concat(TRANSACTION_TYPE, \", received: \").concat(serialized\n .slice(0, 1)\n .toString('hex')));\n }\n var values = ethereumjs_util_1.rlp.decode(serialized.slice(1));\n if (!Array.isArray(values)) {\n throw new Error('Invalid serialized tx input: must be array');\n }\n return AccessListEIP2930Transaction.fromValuesArray(values, opts);\n };\n /**\n * Instantiate a transaction from the serialized tx.\n * (alias of {@link AccessListEIP2930Transaction.fromSerializedTx})\n *\n * Note: This means that the Buffer should start with 0x01.\n *\n * @deprecated this constructor alias is deprecated and will be removed\n * in favor of the {@link AccessListEIP2930Transaction.fromSerializedTx} constructor\n */\n AccessListEIP2930Transaction.fromRlpSerializedTx = function (serialized, opts) {\n if (opts === void 0) { opts = {}; }\n return AccessListEIP2930Transaction.fromSerializedTx(serialized, opts);\n };\n /**\n * Create a transaction from a values array.\n *\n * Format: `[chainId, nonce, gasPrice, gasLimit, to, value, data, accessList,\n * signatureYParity (v), signatureR (r), signatureS (s)]`\n */\n AccessListEIP2930Transaction.fromValuesArray = function (values, opts) {\n if (opts === void 0) { opts = {}; }\n if (values.length !== 8 && values.length !== 11) {\n throw new Error('Invalid EIP-2930 transaction. Only expecting 8 values (for unsigned tx) or 11 values (for signed tx).');\n }\n var _a = __read(values, 11), chainId = _a[0], nonce = _a[1], gasPrice = _a[2], gasLimit = _a[3], to = _a[4], value = _a[5], data = _a[6], accessList = _a[7], v = _a[8], r = _a[9], s = _a[10];\n (0, ethereumjs_util_1.validateNoLeadingZeroes)({ nonce: nonce, gasPrice: gasPrice, gasLimit: gasLimit, value: value, v: v, r: r, s: s });\n var emptyAccessList = [];\n return new AccessListEIP2930Transaction({\n chainId: new ethereumjs_util_1.BN(chainId),\n nonce: nonce,\n gasPrice: gasPrice,\n gasLimit: gasLimit,\n to: to,\n value: value,\n data: data,\n accessList: accessList !== null && accessList !== void 0 ? accessList : emptyAccessList,\n v: v !== undefined ? new ethereumjs_util_1.BN(v) : undefined,\n r: r,\n s: s,\n }, opts);\n };\n /**\n * The amount of gas paid for the data in this tx\n */\n AccessListEIP2930Transaction.prototype.getDataFee = function () {\n if (this.cache.dataFee && this.cache.dataFee.hardfork === this.common.hardfork()) {\n return this.cache.dataFee.value;\n }\n var cost = _super.prototype.getDataFee.call(this);\n cost.iaddn(util_1.AccessLists.getDataFeeEIP2930(this.accessList, this.common));\n if (Object.isFrozen(this)) {\n this.cache.dataFee = {\n value: cost,\n hardfork: this.common.hardfork(),\n };\n }\n return cost;\n };\n /**\n * The up front amount that an account must have for this transaction to be valid\n */\n AccessListEIP2930Transaction.prototype.getUpfrontCost = function () {\n return this.gasLimit.mul(this.gasPrice).add(this.value);\n };\n /**\n * Returns a Buffer Array of the raw Buffers of the EIP-2930 transaction, in order.\n *\n * Format: `[chainId, nonce, gasPrice, gasLimit, to, value, data, accessList,\n * signatureYParity (v), signatureR (r), signatureS (s)]`\n *\n * Use {@link AccessListEIP2930Transaction.serialize} to add a transaction to a block\n * with {@link Block.fromValuesArray}.\n *\n * For an unsigned tx this method uses the empty Buffer values for the\n * signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant\n * representation for external signing use {@link AccessListEIP2930Transaction.getMessageToSign}.\n */\n AccessListEIP2930Transaction.prototype.raw = function () {\n return [\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.chainId),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.nonce),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.gasPrice),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.gasLimit),\n this.to !== undefined ? this.to.buf : Buffer.from([]),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.value),\n this.data,\n this.accessList,\n this.v !== undefined ? (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.v) : Buffer.from([]),\n this.r !== undefined ? (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.r) : Buffer.from([]),\n this.s !== undefined ? (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.s) : Buffer.from([]),\n ];\n };\n /**\n * Returns the serialized encoding of the EIP-2930 transaction.\n *\n * Format: `0x01 || rlp([chainId, nonce, gasPrice, gasLimit, to, value, data, accessList,\n * signatureYParity (v), signatureR (r), signatureS (s)])`\n *\n * Note that in contrast to the legacy tx serialization format this is not\n * valid RLP any more due to the raw tx type preceding and concatenated to\n * the RLP encoding of the values.\n */\n AccessListEIP2930Transaction.prototype.serialize = function () {\n var base = this.raw();\n return Buffer.concat([TRANSACTION_TYPE_BUFFER, ethereumjs_util_1.rlp.encode(base)]);\n };\n /**\n * Returns the serialized unsigned tx (hashed or raw), which can be used\n * to sign the transaction (e.g. for sending to a hardware wallet).\n *\n * Note: in contrast to the legacy tx the raw message format is already\n * serialized and doesn't need to be RLP encoded any more.\n *\n * ```javascript\n * const serializedMessage = tx.getMessageToSign(false) // use this for the HW wallet input\n * ```\n *\n * @param hashMessage - Return hashed message if set to true (default: true)\n */\n AccessListEIP2930Transaction.prototype.getMessageToSign = function (hashMessage) {\n if (hashMessage === void 0) { hashMessage = true; }\n var base = this.raw().slice(0, 8);\n var message = Buffer.concat([TRANSACTION_TYPE_BUFFER, ethereumjs_util_1.rlp.encode(base)]);\n if (hashMessage) {\n return (0, ethereumjs_util_1.keccak256)(message);\n }\n else {\n return message;\n }\n };\n /**\n * Computes a sha3-256 hash of the serialized tx.\n *\n * This method can only be used for signed txs (it throws otherwise).\n * Use {@link AccessListEIP2930Transaction.getMessageToSign} to get a tx hash for the purpose of signing.\n */\n AccessListEIP2930Transaction.prototype.hash = function () {\n if (!this.isSigned()) {\n var msg = this._errorMsg('Cannot call hash method if transaction is not signed');\n throw new Error(msg);\n }\n if (Object.isFrozen(this)) {\n if (!this.cache.hash) {\n this.cache.hash = (0, ethereumjs_util_1.keccak256)(this.serialize());\n }\n return this.cache.hash;\n }\n return (0, ethereumjs_util_1.keccak256)(this.serialize());\n };\n /**\n * Computes a sha3-256 hash which can be used to verify the signature\n */\n AccessListEIP2930Transaction.prototype.getMessageToVerifySignature = function () {\n return this.getMessageToSign();\n };\n /**\n * Returns the public key of the sender\n */\n AccessListEIP2930Transaction.prototype.getSenderPublicKey = function () {\n var _a;\n if (!this.isSigned()) {\n var msg = this._errorMsg('Cannot call this method if transaction is not signed');\n throw new Error(msg);\n }\n var msgHash = this.getMessageToVerifySignature();\n // EIP-2: All transaction signatures whose s-value is greater than secp256k1n/2 are considered invalid.\n // Reasoning: https://ethereum.stackexchange.com/a/55728\n if (this.common.gteHardfork('homestead') && ((_a = this.s) === null || _a === void 0 ? void 0 : _a.gt(types_1.N_DIV_2))) {\n var msg = this._errorMsg('Invalid Signature: s-values greater than secp256k1n/2 are considered invalid');\n throw new Error(msg);\n }\n var _b = this, yParity = _b.yParity, r = _b.r, s = _b.s;\n try {\n return (0, ethereumjs_util_1.ecrecover)(msgHash, yParity.addn(27), // Recover the 27 which was stripped from ecsign\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(r), (0, ethereumjs_util_1.bnToUnpaddedBuffer)(s));\n }\n catch (e) {\n var msg = this._errorMsg('Invalid Signature');\n throw new Error(msg);\n }\n };\n AccessListEIP2930Transaction.prototype._processSignature = function (v, r, s) {\n var opts = {\n common: this.common,\n };\n return AccessListEIP2930Transaction.fromTxData({\n chainId: this.chainId,\n nonce: this.nonce,\n gasPrice: this.gasPrice,\n gasLimit: this.gasLimit,\n to: this.to,\n value: this.value,\n data: this.data,\n accessList: this.accessList,\n v: new ethereumjs_util_1.BN(v - 27),\n r: new ethereumjs_util_1.BN(r),\n s: new ethereumjs_util_1.BN(s),\n }, opts);\n };\n /**\n * Returns an object with the JSON representation of the transaction\n */\n AccessListEIP2930Transaction.prototype.toJSON = function () {\n var accessListJSON = util_1.AccessLists.getAccessListJSON(this.accessList);\n return {\n chainId: (0, ethereumjs_util_1.bnToHex)(this.chainId),\n nonce: (0, ethereumjs_util_1.bnToHex)(this.nonce),\n gasPrice: (0, ethereumjs_util_1.bnToHex)(this.gasPrice),\n gasLimit: (0, ethereumjs_util_1.bnToHex)(this.gasLimit),\n to: this.to !== undefined ? this.to.toString() : undefined,\n value: (0, ethereumjs_util_1.bnToHex)(this.value),\n data: '0x' + this.data.toString('hex'),\n accessList: accessListJSON,\n v: this.v !== undefined ? (0, ethereumjs_util_1.bnToHex)(this.v) : undefined,\n r: this.r !== undefined ? (0, ethereumjs_util_1.bnToHex)(this.r) : undefined,\n s: this.s !== undefined ? (0, ethereumjs_util_1.bnToHex)(this.s) : undefined,\n };\n };\n /**\n * Return a compact error string representation of the object\n */\n AccessListEIP2930Transaction.prototype.errorStr = function () {\n var _a, _b;\n var errorStr = this._getSharedErrorPostfix();\n // Keep ? for this.accessList since this otherwise causes Hardhat E2E tests to fail\n errorStr += \" gasPrice=\".concat(this.gasPrice, \" accessListCount=\").concat((_b = (_a = this.accessList) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);\n return errorStr;\n };\n /**\n * Internal helper function to create an annotated error message\n *\n * @param msg Base error message\n * @hidden\n */\n AccessListEIP2930Transaction.prototype._errorMsg = function (msg) {\n return \"\".concat(msg, \" (\").concat(this.errorStr(), \")\");\n };\n return AccessListEIP2930Transaction;\n}(baseTransaction_1.BaseTransaction));\nexports.default = AccessListEIP2930Transaction;\n//# sourceMappingURL=eip2930Transaction.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ethereumjs_util_1 = require(\"ethereumjs-util\");\nvar types_1 = require(\"./types\");\nvar baseTransaction_1 = require(\"./baseTransaction\");\nvar util_1 = require(\"./util\");\nvar TRANSACTION_TYPE = 0;\n/**\n * An Ethereum non-typed (legacy) transaction\n */\nvar Transaction = /** @class */ (function (_super) {\n __extends(Transaction, _super);\n /**\n * This constructor takes the values, validates them, assigns them and freezes the object.\n *\n * It is not recommended to use this constructor directly. Instead use\n * the static factory methods to assist in creating a Transaction object from\n * varying data types.\n */\n function Transaction(txData, opts) {\n if (opts === void 0) { opts = {}; }\n var _this = this;\n var _a;\n _this = _super.call(this, __assign(__assign({}, txData), { type: TRANSACTION_TYPE })) || this;\n _this.common = _this._validateTxV(_this.v, opts.common);\n _this.gasPrice = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(txData.gasPrice === '' ? '0x' : txData.gasPrice));\n if (_this.gasPrice.mul(_this.gasLimit).gt(ethereumjs_util_1.MAX_INTEGER)) {\n var msg = _this._errorMsg('gas limit * gasPrice cannot exceed MAX_INTEGER (2^256-1)');\n throw new Error(msg);\n }\n _this._validateCannotExceedMaxInteger({ gasPrice: _this.gasPrice });\n if (_this.common.gteHardfork('spuriousDragon')) {\n if (!_this.isSigned()) {\n _this.activeCapabilities.push(types_1.Capability.EIP155ReplayProtection);\n }\n else {\n // EIP155 spec:\n // If block.number >= 2,675,000 and v = CHAIN_ID * 2 + 35 or v = CHAIN_ID * 2 + 36\n // then when computing the hash of a transaction for purposes of signing or recovering\n // instead of hashing only the first six elements (i.e. nonce, gasprice, startgas, to, value, data)\n // hash nine elements, with v replaced by CHAIN_ID, r = 0 and s = 0.\n var v = _this.v;\n var chainIdDoubled = _this.common.chainIdBN().muln(2);\n // v and chain ID meet EIP-155 conditions\n if (v.eq(chainIdDoubled.addn(35)) || v.eq(chainIdDoubled.addn(36))) {\n _this.activeCapabilities.push(types_1.Capability.EIP155ReplayProtection);\n }\n }\n }\n if (_this.common.isActivatedEIP(3860)) {\n (0, util_1.checkMaxInitCodeSize)(_this.common, _this.data.length);\n }\n var freeze = (_a = opts === null || opts === void 0 ? void 0 : opts.freeze) !== null && _a !== void 0 ? _a : true;\n if (freeze) {\n Object.freeze(_this);\n }\n return _this;\n }\n /**\n * Instantiate a transaction from a data dictionary.\n *\n * Format: { nonce, gasPrice, gasLimit, to, value, data, v, r, s }\n *\n * Notes:\n * - All parameters are optional and have some basic default values\n */\n Transaction.fromTxData = function (txData, opts) {\n if (opts === void 0) { opts = {}; }\n return new Transaction(txData, opts);\n };\n /**\n * Instantiate a transaction from the serialized tx.\n *\n * Format: `rlp([nonce, gasPrice, gasLimit, to, value, data, v, r, s])`\n */\n Transaction.fromSerializedTx = function (serialized, opts) {\n if (opts === void 0) { opts = {}; }\n var values = ethereumjs_util_1.rlp.decode(serialized);\n if (!Array.isArray(values)) {\n throw new Error('Invalid serialized tx input. Must be array');\n }\n return this.fromValuesArray(values, opts);\n };\n /**\n * Instantiate a transaction from the serialized tx.\n * (alias of {@link Transaction.fromSerializedTx})\n *\n * @deprecated this constructor alias is deprecated and will be removed\n * in favor of the {@link Transaction.fromSerializedTx} constructor\n */\n Transaction.fromRlpSerializedTx = function (serialized, opts) {\n if (opts === void 0) { opts = {}; }\n return Transaction.fromSerializedTx(serialized, opts);\n };\n /**\n * Create a transaction from a values array.\n *\n * Format: `[nonce, gasPrice, gasLimit, to, value, data, v, r, s]`\n */\n Transaction.fromValuesArray = function (values, opts) {\n if (opts === void 0) { opts = {}; }\n // If length is not 6, it has length 9. If v/r/s are empty Buffers, it is still an unsigned transaction\n // This happens if you get the RLP data from `raw()`\n if (values.length !== 6 && values.length !== 9) {\n throw new Error('Invalid transaction. Only expecting 6 values (for unsigned tx) or 9 values (for signed tx).');\n }\n var _a = __read(values, 9), nonce = _a[0], gasPrice = _a[1], gasLimit = _a[2], to = _a[3], value = _a[4], data = _a[5], v = _a[6], r = _a[7], s = _a[8];\n (0, ethereumjs_util_1.validateNoLeadingZeroes)({ nonce: nonce, gasPrice: gasPrice, gasLimit: gasLimit, value: value, v: v, r: r, s: s });\n return new Transaction({\n nonce: nonce,\n gasPrice: gasPrice,\n gasLimit: gasLimit,\n to: to,\n value: value,\n data: data,\n v: v,\n r: r,\n s: s,\n }, opts);\n };\n /**\n * Returns a Buffer Array of the raw Buffers of the legacy transaction, in order.\n *\n * Format: `[nonce, gasPrice, gasLimit, to, value, data, v, r, s]`\n *\n * For legacy txs this is also the correct format to add transactions\n * to a block with {@link Block.fromValuesArray} (use the `serialize()` method\n * for typed txs).\n *\n * For an unsigned tx this method returns the empty Buffer values\n * for the signature parameters `v`, `r` and `s`. For an EIP-155 compliant\n * representation have a look at {@link Transaction.getMessageToSign}.\n */\n Transaction.prototype.raw = function () {\n return [\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.nonce),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.gasPrice),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.gasLimit),\n this.to !== undefined ? this.to.buf : Buffer.from([]),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.value),\n this.data,\n this.v !== undefined ? (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.v) : Buffer.from([]),\n this.r !== undefined ? (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.r) : Buffer.from([]),\n this.s !== undefined ? (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.s) : Buffer.from([]),\n ];\n };\n /**\n * Returns the serialized encoding of the legacy transaction.\n *\n * Format: `rlp([nonce, gasPrice, gasLimit, to, value, data, v, r, s])`\n *\n * For an unsigned tx this method uses the empty Buffer values for the\n * signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant\n * representation for external signing use {@link Transaction.getMessageToSign}.\n */\n Transaction.prototype.serialize = function () {\n return ethereumjs_util_1.rlp.encode(this.raw());\n };\n Transaction.prototype._getMessageToSign = function () {\n var values = [\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.nonce),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.gasPrice),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.gasLimit),\n this.to !== undefined ? this.to.buf : Buffer.from([]),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.value),\n this.data,\n ];\n if (this.supports(types_1.Capability.EIP155ReplayProtection)) {\n values.push((0, ethereumjs_util_1.toBuffer)(this.common.chainIdBN()));\n values.push((0, ethereumjs_util_1.unpadBuffer)((0, ethereumjs_util_1.toBuffer)(0)));\n values.push((0, ethereumjs_util_1.unpadBuffer)((0, ethereumjs_util_1.toBuffer)(0)));\n }\n return values;\n };\n Transaction.prototype.getMessageToSign = function (hashMessage) {\n if (hashMessage === void 0) { hashMessage = true; }\n var message = this._getMessageToSign();\n if (hashMessage) {\n return (0, ethereumjs_util_1.rlphash)(message);\n }\n else {\n return message;\n }\n };\n /**\n * The amount of gas paid for the data in this tx\n */\n Transaction.prototype.getDataFee = function () {\n if (this.cache.dataFee && this.cache.dataFee.hardfork === this.common.hardfork()) {\n return this.cache.dataFee.value;\n }\n if (Object.isFrozen(this)) {\n this.cache.dataFee = {\n value: _super.prototype.getDataFee.call(this),\n hardfork: this.common.hardfork(),\n };\n }\n return _super.prototype.getDataFee.call(this);\n };\n /**\n * The up front amount that an account must have for this transaction to be valid\n */\n Transaction.prototype.getUpfrontCost = function () {\n return this.gasLimit.mul(this.gasPrice).add(this.value);\n };\n /**\n * Computes a sha3-256 hash of the serialized tx.\n *\n * This method can only be used for signed txs (it throws otherwise).\n * Use {@link Transaction.getMessageToSign} to get a tx hash for the purpose of signing.\n */\n Transaction.prototype.hash = function () {\n // In contrast to the tx type transaction implementations the `hash()` function\n // for the legacy tx does not throw if the tx is not signed.\n // This has been considered for inclusion but lead to unexpected backwards\n // compatibility problems (no concrete reference found, needs validation).\n //\n // For context see also https://github.com/ethereumjs/ethereumjs-monorepo/pull/1445,\n // September, 2021 as well as work done before.\n //\n // This should be updated along the next major version release by adding:\n //\n //if (!this.isSigned()) {\n // const msg = this._errorMsg('Cannot call hash method if transaction is not signed')\n // throw new Error(msg)\n //}\n if (Object.isFrozen(this)) {\n if (!this.cache.hash) {\n this.cache.hash = (0, ethereumjs_util_1.rlphash)(this.raw());\n }\n return this.cache.hash;\n }\n return (0, ethereumjs_util_1.rlphash)(this.raw());\n };\n /**\n * Computes a sha3-256 hash which can be used to verify the signature\n */\n Transaction.prototype.getMessageToVerifySignature = function () {\n if (!this.isSigned()) {\n var msg = this._errorMsg('This transaction is not signed');\n throw new Error(msg);\n }\n var message = this._getMessageToSign();\n return (0, ethereumjs_util_1.rlphash)(message);\n };\n /**\n * Returns the public key of the sender\n */\n Transaction.prototype.getSenderPublicKey = function () {\n var _a;\n var msgHash = this.getMessageToVerifySignature();\n // EIP-2: All transaction signatures whose s-value is greater than secp256k1n/2 are considered invalid.\n // Reasoning: https://ethereum.stackexchange.com/a/55728\n if (this.common.gteHardfork('homestead') && ((_a = this.s) === null || _a === void 0 ? void 0 : _a.gt(types_1.N_DIV_2))) {\n var msg = this._errorMsg('Invalid Signature: s-values greater than secp256k1n/2 are considered invalid');\n throw new Error(msg);\n }\n var _b = this, v = _b.v, r = _b.r, s = _b.s;\n try {\n return (0, ethereumjs_util_1.ecrecover)(msgHash, v, (0, ethereumjs_util_1.bnToUnpaddedBuffer)(r), (0, ethereumjs_util_1.bnToUnpaddedBuffer)(s), this.supports(types_1.Capability.EIP155ReplayProtection) ? this.common.chainIdBN() : undefined);\n }\n catch (e) {\n var msg = this._errorMsg('Invalid Signature');\n throw new Error(msg);\n }\n };\n /**\n * Process the v, r, s values from the `sign` method of the base transaction.\n */\n Transaction.prototype._processSignature = function (v, r, s) {\n var vBN = new ethereumjs_util_1.BN(v);\n if (this.supports(types_1.Capability.EIP155ReplayProtection)) {\n vBN.iadd(this.common.chainIdBN().muln(2).addn(8));\n }\n var opts = {\n common: this.common,\n };\n return Transaction.fromTxData({\n nonce: this.nonce,\n gasPrice: this.gasPrice,\n gasLimit: this.gasLimit,\n to: this.to,\n value: this.value,\n data: this.data,\n v: vBN,\n r: new ethereumjs_util_1.BN(r),\n s: new ethereumjs_util_1.BN(s),\n }, opts);\n };\n /**\n * Returns an object with the JSON representation of the transaction.\n */\n Transaction.prototype.toJSON = function () {\n return {\n nonce: (0, ethereumjs_util_1.bnToHex)(this.nonce),\n gasPrice: (0, ethereumjs_util_1.bnToHex)(this.gasPrice),\n gasLimit: (0, ethereumjs_util_1.bnToHex)(this.gasLimit),\n to: this.to !== undefined ? this.to.toString() : undefined,\n value: (0, ethereumjs_util_1.bnToHex)(this.value),\n data: '0x' + this.data.toString('hex'),\n v: this.v !== undefined ? (0, ethereumjs_util_1.bnToHex)(this.v) : undefined,\n r: this.r !== undefined ? (0, ethereumjs_util_1.bnToHex)(this.r) : undefined,\n s: this.s !== undefined ? (0, ethereumjs_util_1.bnToHex)(this.s) : undefined,\n };\n };\n /**\n * Validates tx's `v` value\n */\n Transaction.prototype._validateTxV = function (v, common) {\n var chainIdBN;\n // No unsigned tx and EIP-155 activated and chain ID included\n if (v !== undefined &&\n !v.eqn(0) &&\n (!common || common.gteHardfork('spuriousDragon')) &&\n !v.eqn(27) &&\n !v.eqn(28)) {\n if (common) {\n var chainIdDoubled = common.chainIdBN().muln(2);\n var isValidEIP155V = v.eq(chainIdDoubled.addn(35)) || v.eq(chainIdDoubled.addn(36));\n if (!isValidEIP155V) {\n throw new Error(\"Incompatible EIP155-based V \".concat(v, \" and chain id \").concat(common.chainIdBN(), \". See the Common parameter of the Transaction constructor to set the chain id.\"));\n }\n }\n else {\n // Derive the original chain ID\n var numSub = void 0;\n if (v.subn(35).isEven()) {\n numSub = 35;\n }\n else {\n numSub = 36;\n }\n // Use derived chain ID to create a proper Common\n chainIdBN = v.subn(numSub).divn(2);\n }\n }\n return this._getCommon(common, chainIdBN);\n };\n /**\n * @deprecated if you have called this internal method please use `tx.supports(Capabilities.EIP155ReplayProtection)` instead\n */\n Transaction.prototype._unsignedTxImplementsEIP155 = function () {\n return this.common.gteHardfork('spuriousDragon');\n };\n /**\n * @deprecated if you have called this internal method please use `tx.supports(Capabilities.EIP155ReplayProtection)` instead\n */\n Transaction.prototype._signedTxImplementsEIP155 = function () {\n if (!this.isSigned()) {\n var msg = this._errorMsg('This transaction is not signed');\n throw new Error(msg);\n }\n var onEIP155BlockOrLater = this.common.gteHardfork('spuriousDragon');\n // EIP155 spec:\n // If block.number >= 2,675,000 and v = CHAIN_ID * 2 + 35 or v = CHAIN_ID * 2 + 36, then when computing the hash of a transaction for purposes of signing or recovering, instead of hashing only the first six elements (i.e. nonce, gasprice, startgas, to, value, data), hash nine elements, with v replaced by CHAIN_ID, r = 0 and s = 0.\n var v = this.v;\n var chainIdDoubled = this.common.chainIdBN().muln(2);\n var vAndChainIdMeetEIP155Conditions = v.eq(chainIdDoubled.addn(35)) || v.eq(chainIdDoubled.addn(36));\n return vAndChainIdMeetEIP155Conditions && onEIP155BlockOrLater;\n };\n /**\n * Return a compact error string representation of the object\n */\n Transaction.prototype.errorStr = function () {\n var errorStr = this._getSharedErrorPostfix();\n errorStr += \" gasPrice=\".concat(this.gasPrice);\n return errorStr;\n };\n /**\n * Internal helper function to create an annotated error message\n *\n * @param msg Base error message\n * @hidden\n */\n Transaction.prototype._errorMsg = function (msg) {\n return \"\".concat(msg, \" (\").concat(this.errorStr(), \")\");\n };\n return Transaction;\n}(baseTransaction_1.BaseTransaction));\nexports.default = Transaction;\n//# sourceMappingURL=legacyTransaction.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __values = (this && this.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BaseTransaction = void 0;\nvar common_1 = __importStar(require(\"@ethereumjs/common\"));\nvar ethereumjs_util_1 = require(\"ethereumjs-util\");\nvar types_1 = require(\"./types\");\n/**\n * This base class will likely be subject to further\n * refactoring along the introduction of additional tx types\n * on the Ethereum network.\n *\n * It is therefore not recommended to use directly.\n */\nvar BaseTransaction = /** @class */ (function () {\n function BaseTransaction(txData) {\n this.cache = {\n hash: undefined,\n dataFee: undefined,\n };\n /**\n * List of tx type defining EIPs,\n * e.g. 1559 (fee market) and 2930 (access lists)\n * for FeeMarketEIP1559Transaction objects\n */\n this.activeCapabilities = [];\n /**\n * The default chain the tx falls back to if no Common\n * is provided and if the chain can't be derived from\n * a passed in chainId (only EIP-2718 typed txs) or\n * EIP-155 signature (legacy txs).\n *\n * @hidden\n */\n this.DEFAULT_CHAIN = common_1.Chain.Mainnet;\n /**\n * The default HF if the tx type is active on that HF\n * or the first greater HF where the tx is active.\n *\n * @hidden\n */\n this.DEFAULT_HARDFORK = common_1.Hardfork.Istanbul;\n var nonce = txData.nonce, gasLimit = txData.gasLimit, to = txData.to, value = txData.value, data = txData.data, v = txData.v, r = txData.r, s = txData.s, type = txData.type;\n this._type = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(type)).toNumber();\n var toB = (0, ethereumjs_util_1.toBuffer)(to === '' ? '0x' : to);\n var vB = (0, ethereumjs_util_1.toBuffer)(v === '' ? '0x' : v);\n var rB = (0, ethereumjs_util_1.toBuffer)(r === '' ? '0x' : r);\n var sB = (0, ethereumjs_util_1.toBuffer)(s === '' ? '0x' : s);\n this.nonce = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(nonce === '' ? '0x' : nonce));\n this.gasLimit = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(gasLimit === '' ? '0x' : gasLimit));\n this.to = toB.length > 0 ? new ethereumjs_util_1.Address(toB) : undefined;\n this.value = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(value === '' ? '0x' : value));\n this.data = (0, ethereumjs_util_1.toBuffer)(data === '' ? '0x' : data);\n this.v = vB.length > 0 ? new ethereumjs_util_1.BN(vB) : undefined;\n this.r = rB.length > 0 ? new ethereumjs_util_1.BN(rB) : undefined;\n this.s = sB.length > 0 ? new ethereumjs_util_1.BN(sB) : undefined;\n this._validateCannotExceedMaxInteger({ value: this.value, r: this.r, s: this.s });\n // geth limits gasLimit to 2^64-1\n this._validateCannotExceedMaxInteger({ gasLimit: this.gasLimit }, 64);\n // EIP-2681 limits nonce to 2^64-1 (cannot equal 2^64-1)\n this._validateCannotExceedMaxInteger({ nonce: this.nonce }, 64, true);\n }\n Object.defineProperty(BaseTransaction.prototype, \"transactionType\", {\n /**\n * Alias for {@link BaseTransaction.type}\n *\n * @deprecated Use `type` instead\n */\n get: function () {\n return this.type;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BaseTransaction.prototype, \"type\", {\n /**\n * Returns the transaction type.\n *\n * Note: legacy txs will return tx type `0`.\n */\n get: function () {\n return this._type;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Checks if a tx type defining capability is active\n * on a tx, for example the EIP-1559 fee market mechanism\n * or the EIP-2930 access list feature.\n *\n * Note that this is different from the tx type itself,\n * so EIP-2930 access lists can very well be active\n * on an EIP-1559 tx for example.\n *\n * This method can be useful for feature checks if the\n * tx type is unknown (e.g. when instantiated with\n * the tx factory).\n *\n * See `Capabilites` in the `types` module for a reference\n * on all supported capabilities.\n */\n BaseTransaction.prototype.supports = function (capability) {\n return this.activeCapabilities.includes(capability);\n };\n BaseTransaction.prototype.validate = function (stringError) {\n if (stringError === void 0) { stringError = false; }\n var errors = [];\n if (this.getBaseFee().gt(this.gasLimit)) {\n errors.push(\"gasLimit is too low. given \".concat(this.gasLimit, \", need at least \").concat(this.getBaseFee()));\n }\n if (this.isSigned() && !this.verifySignature()) {\n errors.push('Invalid Signature');\n }\n return stringError ? errors : errors.length === 0;\n };\n /**\n * The minimum amount of gas the tx must have (DataFee + TxFee + Creation Fee)\n */\n BaseTransaction.prototype.getBaseFee = function () {\n var fee = this.getDataFee().addn(this.common.param('gasPrices', 'tx'));\n if (this.common.gteHardfork('homestead') && this.toCreationAddress()) {\n fee.iaddn(this.common.param('gasPrices', 'txCreation'));\n }\n return fee;\n };\n /**\n * The amount of gas paid for the data in this tx\n */\n BaseTransaction.prototype.getDataFee = function () {\n var txDataZero = this.common.param('gasPrices', 'txDataZero');\n var txDataNonZero = this.common.param('gasPrices', 'txDataNonZero');\n var cost = 0;\n for (var i = 0; i < this.data.length; i++) {\n this.data[i] === 0 ? (cost += txDataZero) : (cost += txDataNonZero);\n }\n cost = new ethereumjs_util_1.BN(cost);\n if ((this.to === undefined || this.to === null) && this.common.isActivatedEIP(3860)) {\n var dataLength = Math.ceil(this.data.length / 32);\n var initCodeCost = new ethereumjs_util_1.BN(this.common.param('gasPrices', 'initCodeWordCost')).imuln(dataLength);\n cost.iadd(initCodeCost);\n }\n return cost;\n };\n /**\n * If the tx's `to` is to the creation address\n */\n BaseTransaction.prototype.toCreationAddress = function () {\n return this.to === undefined || this.to.buf.length === 0;\n };\n BaseTransaction.prototype.isSigned = function () {\n var _a = this, v = _a.v, r = _a.r, s = _a.s;\n if (this.type === 0) {\n if (!v || !r || !s) {\n return false;\n }\n else {\n return true;\n }\n }\n else {\n if (v === undefined || !r || !s) {\n return false;\n }\n else {\n return true;\n }\n }\n };\n /**\n * Determines if the signature is valid\n */\n BaseTransaction.prototype.verifySignature = function () {\n try {\n // Main signature verification is done in `getSenderPublicKey()`\n var publicKey = this.getSenderPublicKey();\n return (0, ethereumjs_util_1.unpadBuffer)(publicKey).length !== 0;\n }\n catch (e) {\n return false;\n }\n };\n /**\n * Returns the sender's address\n */\n BaseTransaction.prototype.getSenderAddress = function () {\n return new ethereumjs_util_1.Address((0, ethereumjs_util_1.publicToAddress)(this.getSenderPublicKey()));\n };\n /**\n * Signs a transaction.\n *\n * Note that the signed tx is returned as a new object,\n * use as follows:\n * ```javascript\n * const signedTx = tx.sign(privateKey)\n * ```\n */\n BaseTransaction.prototype.sign = function (privateKey) {\n if (privateKey.length !== 32) {\n var msg = this._errorMsg('Private key must be 32 bytes in length.');\n throw new Error(msg);\n }\n // Hack for the constellation that we have got a legacy tx after spuriousDragon with a non-EIP155 conforming signature\n // and want to recreate a signature (where EIP155 should be applied)\n // Leaving this hack lets the legacy.spec.ts -> sign(), verifySignature() test fail\n // 2021-06-23\n var hackApplied = false;\n if (this.type === 0 &&\n this.common.gteHardfork('spuriousDragon') &&\n !this.supports(types_1.Capability.EIP155ReplayProtection)) {\n this.activeCapabilities.push(types_1.Capability.EIP155ReplayProtection);\n hackApplied = true;\n }\n var msgHash = this.getMessageToSign(true);\n var _a = (0, ethereumjs_util_1.ecsign)(msgHash, privateKey), v = _a.v, r = _a.r, s = _a.s;\n var tx = this._processSignature(v, r, s);\n // Hack part 2\n if (hackApplied) {\n var index = this.activeCapabilities.indexOf(types_1.Capability.EIP155ReplayProtection);\n if (index > -1) {\n this.activeCapabilities.splice(index, 1);\n }\n }\n return tx;\n };\n /**\n * Does chain ID checks on common and returns a common\n * to be used on instantiation\n * @hidden\n *\n * @param common - {@link Common} instance from tx options\n * @param chainId - Chain ID from tx options (typed txs) or signature (legacy tx)\n */\n BaseTransaction.prototype._getCommon = function (common, chainId) {\n var _a;\n // Chain ID provided\n if (chainId) {\n var chainIdBN = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(chainId));\n if (common) {\n if (!common.chainIdBN().eq(chainIdBN)) {\n var msg = this._errorMsg('The chain ID does not match the chain ID of Common');\n throw new Error(msg);\n }\n // Common provided, chain ID does match\n // -> Return provided Common\n return common.copy();\n }\n else {\n if (common_1.default.isSupportedChainId(chainIdBN)) {\n // No Common, chain ID supported by Common\n // -> Instantiate Common with chain ID\n return new common_1.default({ chain: chainIdBN, hardfork: this.DEFAULT_HARDFORK });\n }\n else {\n // No Common, chain ID not supported by Common\n // -> Instantiate custom Common derived from DEFAULT_CHAIN\n return common_1.default.forCustomChain(this.DEFAULT_CHAIN, {\n name: 'custom-chain',\n networkId: chainIdBN,\n chainId: chainIdBN,\n }, this.DEFAULT_HARDFORK);\n }\n }\n }\n else {\n // No chain ID provided\n // -> return Common provided or create new default Common\n return ((_a = common === null || common === void 0 ? void 0 : common.copy()) !== null && _a !== void 0 ? _a : new common_1.default({ chain: this.DEFAULT_CHAIN, hardfork: this.DEFAULT_HARDFORK }));\n }\n };\n /**\n * Validates that an object with BN values cannot exceed the specified bit limit.\n * @param values Object containing string keys and BN values\n * @param bits Number of bits to check (64 or 256)\n * @param cannotEqual Pass true if the number also cannot equal one less the maximum value\n */\n BaseTransaction.prototype._validateCannotExceedMaxInteger = function (values, bits, cannotEqual) {\n var e_1, _a;\n if (bits === void 0) { bits = 256; }\n if (cannotEqual === void 0) { cannotEqual = false; }\n try {\n for (var _b = __values(Object.entries(values)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read(_c.value, 2), key = _d[0], value = _d[1];\n switch (bits) {\n case 64:\n if (cannotEqual) {\n if (value === null || value === void 0 ? void 0 : value.gte(ethereumjs_util_1.MAX_UINT64)) {\n var msg = this._errorMsg(\"\".concat(key, \" cannot equal or exceed MAX_UINT64 (2^64-1), given \").concat(value));\n throw new Error(msg);\n }\n }\n else {\n if (value === null || value === void 0 ? void 0 : value.gt(ethereumjs_util_1.MAX_UINT64)) {\n var msg = this._errorMsg(\"\".concat(key, \" cannot exceed MAX_UINT64 (2^64-1), given \").concat(value));\n throw new Error(msg);\n }\n }\n break;\n case 256:\n if (cannotEqual) {\n if (value === null || value === void 0 ? void 0 : value.gte(ethereumjs_util_1.MAX_INTEGER)) {\n var msg = this._errorMsg(\"\".concat(key, \" cannot equal or exceed MAX_INTEGER (2^256-1), given \").concat(value));\n throw new Error(msg);\n }\n }\n else {\n if (value === null || value === void 0 ? void 0 : value.gt(ethereumjs_util_1.MAX_INTEGER)) {\n var msg = this._errorMsg(\"\".concat(key, \" cannot exceed MAX_INTEGER (2^256-1), given \").concat(value));\n throw new Error(msg);\n }\n }\n break;\n default: {\n var msg = this._errorMsg('unimplemented bits value');\n throw new Error(msg);\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Returns the shared error postfix part for _error() method\n * tx type implementations.\n */\n BaseTransaction.prototype._getSharedErrorPostfix = function () {\n var hash = '';\n try {\n hash = this.isSigned() ? (0, ethereumjs_util_1.bufferToHex)(this.hash()) : 'not available (unsigned)';\n }\n catch (e) {\n hash = 'error';\n }\n var isSigned = '';\n try {\n isSigned = this.isSigned().toString();\n }\n catch (e) {\n hash = 'error';\n }\n var hf = '';\n try {\n hf = this.common.hardfork();\n }\n catch (e) {\n hf = 'error';\n }\n var postfix = \"tx type=\".concat(this.type, \" hash=\").concat(hash, \" nonce=\").concat(this.nonce, \" value=\").concat(this.value, \" \");\n postfix += \"signed=\".concat(isSigned, \" hf=\").concat(hf);\n return postfix;\n };\n return BaseTransaction;\n}());\nexports.BaseTransaction = BaseTransaction;\n//# sourceMappingURL=baseTransaction.js.map","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __read = (this && this.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ethereumjs_util_1 = require(\"ethereumjs-util\");\nvar baseTransaction_1 = require(\"./baseTransaction\");\nvar types_1 = require(\"./types\");\nvar util_1 = require(\"./util\");\nvar TRANSACTION_TYPE = 2;\nvar TRANSACTION_TYPE_BUFFER = Buffer.from(TRANSACTION_TYPE.toString(16).padStart(2, '0'), 'hex');\n/**\n * Typed transaction with a new gas fee market mechanism\n *\n * - TransactionType: 2\n * - EIP: [EIP-1559](https://eips.ethereum.org/EIPS/eip-1559)\n */\nvar FeeMarketEIP1559Transaction = /** @class */ (function (_super) {\n __extends(FeeMarketEIP1559Transaction, _super);\n /**\n * This constructor takes the values, validates them, assigns them and freezes the object.\n *\n * It is not recommended to use this constructor directly. Instead use\n * the static factory methods to assist in creating a Transaction object from\n * varying data types.\n */\n function FeeMarketEIP1559Transaction(txData, opts) {\n if (opts === void 0) { opts = {}; }\n var _this = this;\n var _a, _b;\n _this = _super.call(this, __assign(__assign({}, txData), { type: TRANSACTION_TYPE })) || this;\n /**\n * The default HF if the tx type is active on that HF\n * or the first greater HF where the tx is active.\n *\n * @hidden\n */\n _this.DEFAULT_HARDFORK = 'london';\n var chainId = txData.chainId, accessList = txData.accessList, maxFeePerGas = txData.maxFeePerGas, maxPriorityFeePerGas = txData.maxPriorityFeePerGas;\n _this.common = _this._getCommon(opts.common, chainId);\n _this.chainId = _this.common.chainIdBN();\n if (!_this.common.isActivatedEIP(1559)) {\n throw new Error('EIP-1559 not enabled on Common');\n }\n _this.activeCapabilities = _this.activeCapabilities.concat([1559, 2718, 2930]);\n // Populate the access list fields\n var accessListData = util_1.AccessLists.getAccessListData(accessList !== null && accessList !== void 0 ? accessList : []);\n _this.accessList = accessListData.accessList;\n _this.AccessListJSON = accessListData.AccessListJSON;\n // Verify the access list format.\n util_1.AccessLists.verifyAccessList(_this.accessList);\n _this.maxFeePerGas = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(maxFeePerGas === '' ? '0x' : maxFeePerGas));\n _this.maxPriorityFeePerGas = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(maxPriorityFeePerGas === '' ? '0x' : maxPriorityFeePerGas));\n _this._validateCannotExceedMaxInteger({\n maxFeePerGas: _this.maxFeePerGas,\n maxPriorityFeePerGas: _this.maxPriorityFeePerGas,\n });\n if (_this.gasLimit.mul(_this.maxFeePerGas).gt(ethereumjs_util_1.MAX_INTEGER)) {\n var msg = _this._errorMsg('gasLimit * maxFeePerGas cannot exceed MAX_INTEGER (2^256-1)');\n throw new Error(msg);\n }\n if (_this.maxFeePerGas.lt(_this.maxPriorityFeePerGas)) {\n var msg = _this._errorMsg('maxFeePerGas cannot be less than maxPriorityFeePerGas (The total must be the larger of the two)');\n throw new Error(msg);\n }\n if (_this.v && !_this.v.eqn(0) && !_this.v.eqn(1)) {\n var msg = _this._errorMsg('The y-parity of the transaction should either be 0 or 1');\n throw new Error(msg);\n }\n if (_this.common.gteHardfork('homestead') && ((_a = _this.s) === null || _a === void 0 ? void 0 : _a.gt(types_1.N_DIV_2))) {\n var msg = _this._errorMsg('Invalid Signature: s-values greater than secp256k1n/2 are considered invalid');\n throw new Error(msg);\n }\n if (_this.common.isActivatedEIP(3860)) {\n (0, util_1.checkMaxInitCodeSize)(_this.common, _this.data.length);\n }\n var freeze = (_b = opts === null || opts === void 0 ? void 0 : opts.freeze) !== null && _b !== void 0 ? _b : true;\n if (freeze) {\n Object.freeze(_this);\n }\n return _this;\n }\n Object.defineProperty(FeeMarketEIP1559Transaction.prototype, \"senderR\", {\n /**\n * EIP-2930 alias for `r`\n *\n * @deprecated use `r` instead\n */\n get: function () {\n return this.r;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FeeMarketEIP1559Transaction.prototype, \"senderS\", {\n /**\n * EIP-2930 alias for `s`\n *\n * @deprecated use `s` instead\n */\n get: function () {\n return this.s;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(FeeMarketEIP1559Transaction.prototype, \"yParity\", {\n /**\n * EIP-2930 alias for `v`\n *\n * @deprecated use `v` instead\n */\n get: function () {\n return this.v;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Instantiate a transaction from a data dictionary.\n *\n * Format: { chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data,\n * accessList, v, r, s }\n *\n * Notes:\n * - `chainId` will be set automatically if not provided\n * - All parameters are optional and have some basic default values\n */\n FeeMarketEIP1559Transaction.fromTxData = function (txData, opts) {\n if (opts === void 0) { opts = {}; }\n return new FeeMarketEIP1559Transaction(txData, opts);\n };\n /**\n * Instantiate a transaction from the serialized tx.\n *\n * Format: `0x02 || rlp([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data,\n * accessList, signatureYParity, signatureR, signatureS])`\n */\n FeeMarketEIP1559Transaction.fromSerializedTx = function (serialized, opts) {\n if (opts === void 0) { opts = {}; }\n if (!serialized.slice(0, 1).equals(TRANSACTION_TYPE_BUFFER)) {\n throw new Error(\"Invalid serialized tx input: not an EIP-1559 transaction (wrong tx type, expected: \".concat(TRANSACTION_TYPE, \", received: \").concat(serialized\n .slice(0, 1)\n .toString('hex')));\n }\n var values = ethereumjs_util_1.rlp.decode(serialized.slice(1));\n if (!Array.isArray(values)) {\n throw new Error('Invalid serialized tx input: must be array');\n }\n return FeeMarketEIP1559Transaction.fromValuesArray(values, opts);\n };\n /**\n * Instantiate a transaction from the serialized tx.\n * (alias of {@link FeeMarketEIP1559Transaction.fromSerializedTx})\n *\n * Note: This means that the Buffer should start with 0x01.\n *\n * @deprecated this constructor alias is deprecated and will be removed\n * in favor of the {@link FeeMarketEIP1559Transaction.fromSerializedTx} constructor\n */\n FeeMarketEIP1559Transaction.fromRlpSerializedTx = function (serialized, opts) {\n if (opts === void 0) { opts = {}; }\n return FeeMarketEIP1559Transaction.fromSerializedTx(serialized, opts);\n };\n /**\n * Create a transaction from a values array.\n *\n * Format: `[chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data,\n * accessList, signatureYParity, signatureR, signatureS]`\n */\n FeeMarketEIP1559Transaction.fromValuesArray = function (values, opts) {\n if (opts === void 0) { opts = {}; }\n if (values.length !== 9 && values.length !== 12) {\n throw new Error('Invalid EIP-1559 transaction. Only expecting 9 values (for unsigned tx) or 12 values (for signed tx).');\n }\n var _a = __read(values, 12), chainId = _a[0], nonce = _a[1], maxPriorityFeePerGas = _a[2], maxFeePerGas = _a[3], gasLimit = _a[4], to = _a[5], value = _a[6], data = _a[7], accessList = _a[8], v = _a[9], r = _a[10], s = _a[11];\n (0, ethereumjs_util_1.validateNoLeadingZeroes)({ nonce: nonce, maxPriorityFeePerGas: maxPriorityFeePerGas, maxFeePerGas: maxFeePerGas, gasLimit: gasLimit, value: value, v: v, r: r, s: s });\n return new FeeMarketEIP1559Transaction({\n chainId: new ethereumjs_util_1.BN(chainId),\n nonce: nonce,\n maxPriorityFeePerGas: maxPriorityFeePerGas,\n maxFeePerGas: maxFeePerGas,\n gasLimit: gasLimit,\n to: to,\n value: value,\n data: data,\n accessList: accessList !== null && accessList !== void 0 ? accessList : [],\n v: v !== undefined ? new ethereumjs_util_1.BN(v) : undefined,\n r: r,\n s: s,\n }, opts);\n };\n /**\n * The amount of gas paid for the data in this tx\n */\n FeeMarketEIP1559Transaction.prototype.getDataFee = function () {\n if (this.cache.dataFee && this.cache.dataFee.hardfork === this.common.hardfork()) {\n return this.cache.dataFee.value;\n }\n var cost = _super.prototype.getDataFee.call(this);\n cost.iaddn(util_1.AccessLists.getDataFeeEIP2930(this.accessList, this.common));\n if (Object.isFrozen(this)) {\n this.cache.dataFee = {\n value: cost,\n hardfork: this.common.hardfork(),\n };\n }\n return cost;\n };\n /**\n * The up front amount that an account must have for this transaction to be valid\n * @param baseFee The base fee of the block (will be set to 0 if not provided)\n */\n FeeMarketEIP1559Transaction.prototype.getUpfrontCost = function (baseFee) {\n if (baseFee === void 0) { baseFee = new ethereumjs_util_1.BN(0); }\n var inclusionFeePerGas = ethereumjs_util_1.BN.min(this.maxPriorityFeePerGas, this.maxFeePerGas.sub(baseFee));\n var gasPrice = inclusionFeePerGas.add(baseFee);\n return this.gasLimit.mul(gasPrice).add(this.value);\n };\n /**\n * Returns a Buffer Array of the raw Buffers of the EIP-1559 transaction, in order.\n *\n * Format: `[chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data,\n * accessList, signatureYParity, signatureR, signatureS]`\n *\n * Use {@link FeeMarketEIP1559Transaction.serialize} to add a transaction to a block\n * with {@link Block.fromValuesArray}.\n *\n * For an unsigned tx this method uses the empty Buffer values for the\n * signature parameters `v`, `r` and `s` for encoding. For an EIP-155 compliant\n * representation for external signing use {@link FeeMarketEIP1559Transaction.getMessageToSign}.\n */\n FeeMarketEIP1559Transaction.prototype.raw = function () {\n return [\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.chainId),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.nonce),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.maxPriorityFeePerGas),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.maxFeePerGas),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.gasLimit),\n this.to !== undefined ? this.to.buf : Buffer.from([]),\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.value),\n this.data,\n this.accessList,\n this.v !== undefined ? (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.v) : Buffer.from([]),\n this.r !== undefined ? (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.r) : Buffer.from([]),\n this.s !== undefined ? (0, ethereumjs_util_1.bnToUnpaddedBuffer)(this.s) : Buffer.from([]),\n ];\n };\n /**\n * Returns the serialized encoding of the EIP-1559 transaction.\n *\n * Format: `0x02 || rlp([chainId, nonce, maxPriorityFeePerGas, maxFeePerGas, gasLimit, to, value, data,\n * accessList, signatureYParity, signatureR, signatureS])`\n *\n * Note that in contrast to the legacy tx serialization format this is not\n * valid RLP any more due to the raw tx type preceding and concatenated to\n * the RLP encoding of the values.\n */\n FeeMarketEIP1559Transaction.prototype.serialize = function () {\n var base = this.raw();\n return Buffer.concat([TRANSACTION_TYPE_BUFFER, ethereumjs_util_1.rlp.encode(base)]);\n };\n /**\n * Returns the serialized unsigned tx (hashed or raw), which can be used\n * to sign the transaction (e.g. for sending to a hardware wallet).\n *\n * Note: in contrast to the legacy tx the raw message format is already\n * serialized and doesn't need to be RLP encoded any more.\n *\n * ```javascript\n * const serializedMessage = tx.getMessageToSign(false) // use this for the HW wallet input\n * ```\n *\n * @param hashMessage - Return hashed message if set to true (default: true)\n */\n FeeMarketEIP1559Transaction.prototype.getMessageToSign = function (hashMessage) {\n if (hashMessage === void 0) { hashMessage = true; }\n var base = this.raw().slice(0, 9);\n var message = Buffer.concat([TRANSACTION_TYPE_BUFFER, ethereumjs_util_1.rlp.encode(base)]);\n if (hashMessage) {\n return (0, ethereumjs_util_1.keccak256)(message);\n }\n else {\n return message;\n }\n };\n /**\n * Computes a sha3-256 hash of the serialized tx.\n *\n * This method can only be used for signed txs (it throws otherwise).\n * Use {@link FeeMarketEIP1559Transaction.getMessageToSign} to get a tx hash for the purpose of signing.\n */\n FeeMarketEIP1559Transaction.prototype.hash = function () {\n if (!this.isSigned()) {\n var msg = this._errorMsg('Cannot call hash method if transaction is not signed');\n throw new Error(msg);\n }\n if (Object.isFrozen(this)) {\n if (!this.cache.hash) {\n this.cache.hash = (0, ethereumjs_util_1.keccak256)(this.serialize());\n }\n return this.cache.hash;\n }\n return (0, ethereumjs_util_1.keccak256)(this.serialize());\n };\n /**\n * Computes a sha3-256 hash which can be used to verify the signature\n */\n FeeMarketEIP1559Transaction.prototype.getMessageToVerifySignature = function () {\n return this.getMessageToSign();\n };\n /**\n * Returns the public key of the sender\n */\n FeeMarketEIP1559Transaction.prototype.getSenderPublicKey = function () {\n var _a;\n if (!this.isSigned()) {\n var msg = this._errorMsg('Cannot call this method if transaction is not signed');\n throw new Error(msg);\n }\n var msgHash = this.getMessageToVerifySignature();\n // EIP-2: All transaction signatures whose s-value is greater than secp256k1n/2 are considered invalid.\n // Reasoning: https://ethereum.stackexchange.com/a/55728\n if (this.common.gteHardfork('homestead') && ((_a = this.s) === null || _a === void 0 ? void 0 : _a.gt(types_1.N_DIV_2))) {\n var msg = this._errorMsg('Invalid Signature: s-values greater than secp256k1n/2 are considered invalid');\n throw new Error(msg);\n }\n var _b = this, v = _b.v, r = _b.r, s = _b.s;\n try {\n return (0, ethereumjs_util_1.ecrecover)(msgHash, v.addn(27), // Recover the 27 which was stripped from ecsign\n (0, ethereumjs_util_1.bnToUnpaddedBuffer)(r), (0, ethereumjs_util_1.bnToUnpaddedBuffer)(s));\n }\n catch (e) {\n var msg = this._errorMsg('Invalid Signature');\n throw new Error(msg);\n }\n };\n FeeMarketEIP1559Transaction.prototype._processSignature = function (v, r, s) {\n var opts = {\n common: this.common,\n };\n return FeeMarketEIP1559Transaction.fromTxData({\n chainId: this.chainId,\n nonce: this.nonce,\n maxPriorityFeePerGas: this.maxPriorityFeePerGas,\n maxFeePerGas: this.maxFeePerGas,\n gasLimit: this.gasLimit,\n to: this.to,\n value: this.value,\n data: this.data,\n accessList: this.accessList,\n v: new ethereumjs_util_1.BN(v - 27),\n r: new ethereumjs_util_1.BN(r),\n s: new ethereumjs_util_1.BN(s),\n }, opts);\n };\n /**\n * Returns an object with the JSON representation of the transaction\n */\n FeeMarketEIP1559Transaction.prototype.toJSON = function () {\n var accessListJSON = util_1.AccessLists.getAccessListJSON(this.accessList);\n return {\n chainId: (0, ethereumjs_util_1.bnToHex)(this.chainId),\n nonce: (0, ethereumjs_util_1.bnToHex)(this.nonce),\n maxPriorityFeePerGas: (0, ethereumjs_util_1.bnToHex)(this.maxPriorityFeePerGas),\n maxFeePerGas: (0, ethereumjs_util_1.bnToHex)(this.maxFeePerGas),\n gasLimit: (0, ethereumjs_util_1.bnToHex)(this.gasLimit),\n to: this.to !== undefined ? this.to.toString() : undefined,\n value: (0, ethereumjs_util_1.bnToHex)(this.value),\n data: '0x' + this.data.toString('hex'),\n accessList: accessListJSON,\n v: this.v !== undefined ? (0, ethereumjs_util_1.bnToHex)(this.v) : undefined,\n r: this.r !== undefined ? (0, ethereumjs_util_1.bnToHex)(this.r) : undefined,\n s: this.s !== undefined ? (0, ethereumjs_util_1.bnToHex)(this.s) : undefined,\n };\n };\n /**\n * Return a compact error string representation of the object\n */\n FeeMarketEIP1559Transaction.prototype.errorStr = function () {\n var errorStr = this._getSharedErrorPostfix();\n errorStr += \" maxFeePerGas=\".concat(this.maxFeePerGas, \" maxPriorityFeePerGas=\").concat(this.maxPriorityFeePerGas);\n return errorStr;\n };\n /**\n * Internal helper function to create an annotated error message\n *\n * @param msg Base error message\n * @hidden\n */\n FeeMarketEIP1559Transaction.prototype._errorMsg = function (msg) {\n return \"\".concat(msg, \" (\").concat(this.errorStr(), \")\");\n };\n return FeeMarketEIP1559Transaction;\n}(baseTransaction_1.BaseTransaction));\nexports.default = FeeMarketEIP1559Transaction;\n//# sourceMappingURL=eip1559Transaction.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.N_DIV_2 = exports.isAccessList = exports.isAccessListBuffer = exports.Capability = void 0;\nvar ethereumjs_util_1 = require(\"ethereumjs-util\");\n/**\n * Can be used in conjunction with {@link Transaction.supports}\n * to query on tx capabilities\n */\nvar Capability;\n(function (Capability) {\n /**\n * Tx supports EIP-155 replay protection\n * See: [155](https://eips.ethereum.org/EIPS/eip-155) Replay Attack Protection EIP\n */\n Capability[Capability[\"EIP155ReplayProtection\"] = 155] = \"EIP155ReplayProtection\";\n /**\n * Tx supports EIP-1559 gas fee market mechansim\n * See: [1559](https://eips.ethereum.org/EIPS/eip-1559) Fee Market EIP\n */\n Capability[Capability[\"EIP1559FeeMarket\"] = 1559] = \"EIP1559FeeMarket\";\n /**\n * Tx is a typed transaction as defined in EIP-2718\n * See: [2718](https://eips.ethereum.org/EIPS/eip-2718) Transaction Type EIP\n */\n Capability[Capability[\"EIP2718TypedTransaction\"] = 2718] = \"EIP2718TypedTransaction\";\n /**\n * Tx supports access list generation as defined in EIP-2930\n * See: [2930](https://eips.ethereum.org/EIPS/eip-2930) Access Lists EIP\n */\n Capability[Capability[\"EIP2930AccessLists\"] = 2930] = \"EIP2930AccessLists\";\n})(Capability = exports.Capability || (exports.Capability = {}));\nfunction isAccessListBuffer(input) {\n if (input.length === 0) {\n return true;\n }\n var firstItem = input[0];\n if (Array.isArray(firstItem)) {\n return true;\n }\n return false;\n}\nexports.isAccessListBuffer = isAccessListBuffer;\nfunction isAccessList(input) {\n return !isAccessListBuffer(input); // This is exactly the same method, except the output is negated.\n}\nexports.isAccessList = isAccessList;\n/**\n * A const defining secp256k1n/2\n */\nexports.N_DIV_2 = new ethereumjs_util_1.BN('7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0', 16);\n//# sourceMappingURL=types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AccessLists = exports.checkMaxInitCodeSize = void 0;\nvar ethereumjs_util_1 = require(\"ethereumjs-util\");\nvar types_1 = require(\"./types\");\nfunction checkMaxInitCodeSize(common, length) {\n if (length > common.param('vm', 'maxInitCodeSize')) {\n throw new Error(\"the initcode size of this transaction is too large: it is \".concat(length, \" while the max is \").concat(common.param('vm', 'maxInitCodeSize')));\n }\n}\nexports.checkMaxInitCodeSize = checkMaxInitCodeSize;\nvar AccessLists = /** @class */ (function () {\n function AccessLists() {\n }\n AccessLists.getAccessListData = function (accessList) {\n var AccessListJSON;\n var bufferAccessList;\n if (accessList && (0, types_1.isAccessList)(accessList)) {\n AccessListJSON = accessList;\n var newAccessList = [];\n for (var i = 0; i < accessList.length; i++) {\n var item = accessList[i];\n var addressBuffer = (0, ethereumjs_util_1.toBuffer)(item.address);\n var storageItems = [];\n for (var index = 0; index < item.storageKeys.length; index++) {\n storageItems.push((0, ethereumjs_util_1.toBuffer)(item.storageKeys[index]));\n }\n newAccessList.push([addressBuffer, storageItems]);\n }\n bufferAccessList = newAccessList;\n }\n else {\n bufferAccessList = accessList !== null && accessList !== void 0 ? accessList : [];\n // build the JSON\n var json = [];\n for (var i = 0; i < bufferAccessList.length; i++) {\n var data = bufferAccessList[i];\n var address = (0, ethereumjs_util_1.bufferToHex)(data[0]);\n var storageKeys = [];\n for (var item = 0; item < data[1].length; item++) {\n storageKeys.push((0, ethereumjs_util_1.bufferToHex)(data[1][item]));\n }\n var jsonItem = {\n address: address,\n storageKeys: storageKeys,\n };\n json.push(jsonItem);\n }\n AccessListJSON = json;\n }\n return {\n AccessListJSON: AccessListJSON,\n accessList: bufferAccessList,\n };\n };\n AccessLists.verifyAccessList = function (accessList) {\n for (var key = 0; key < accessList.length; key++) {\n var accessListItem = accessList[key];\n var address = accessListItem[0];\n var storageSlots = accessListItem[1];\n if (accessListItem[2] !== undefined) {\n throw new Error('Access list item cannot have 3 elements. It can only have an address, and an array of storage slots.');\n }\n if (address.length != 20) {\n throw new Error('Invalid EIP-2930 transaction: address length should be 20 bytes');\n }\n for (var storageSlot = 0; storageSlot < storageSlots.length; storageSlot++) {\n if (storageSlots[storageSlot].length != 32) {\n throw new Error('Invalid EIP-2930 transaction: storage slot length should be 32 bytes');\n }\n }\n }\n };\n AccessLists.getAccessListJSON = function (accessList) {\n var accessListJSON = [];\n for (var index = 0; index < accessList.length; index++) {\n var item = accessList[index];\n var JSONItem = {\n address: '0x' + (0, ethereumjs_util_1.setLengthLeft)(item[0], 20).toString('hex'),\n storageKeys: [],\n };\n var storageSlots = item[1];\n for (var slot = 0; slot < storageSlots.length; slot++) {\n var storageSlot = storageSlots[slot];\n JSONItem.storageKeys.push('0x' + (0, ethereumjs_util_1.setLengthLeft)(storageSlot, 32).toString('hex'));\n }\n accessListJSON.push(JSONItem);\n }\n return accessListJSON;\n };\n AccessLists.getDataFeeEIP2930 = function (accessList, common) {\n var accessListStorageKeyCost = common.param('gasPrices', 'accessListStorageKeyCost');\n var accessListAddressCost = common.param('gasPrices', 'accessListAddressCost');\n var slots = 0;\n for (var index = 0; index < accessList.length; index++) {\n var item = accessList[index];\n var storageSlots = item[1];\n slots += storageSlots.length;\n }\n var addresses = accessList.length;\n return addresses * accessListAddressCost + slots * accessListStorageKeyCost;\n };\n return AccessLists;\n}());\nexports.AccessLists = AccessLists;\n//# sourceMappingURL=util.js.map","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FeeMarketEIP1559Transaction = exports.TransactionFactory = exports.AccessListEIP2930Transaction = exports.Transaction = void 0;\nvar legacyTransaction_1 = require(\"./legacyTransaction\");\nObject.defineProperty(exports, \"Transaction\", { enumerable: true, get: function () { return __importDefault(legacyTransaction_1).default; } });\nvar eip2930Transaction_1 = require(\"./eip2930Transaction\");\nObject.defineProperty(exports, \"AccessListEIP2930Transaction\", { enumerable: true, get: function () { return __importDefault(eip2930Transaction_1).default; } });\nvar transactionFactory_1 = require(\"./transactionFactory\");\nObject.defineProperty(exports, \"TransactionFactory\", { enumerable: true, get: function () { return __importDefault(transactionFactory_1).default; } });\nvar eip1559Transaction_1 = require(\"./eip1559Transaction\");\nObject.defineProperty(exports, \"FeeMarketEIP1559Transaction\", { enumerable: true, get: function () { return __importDefault(eip1559Transaction_1).default; } });\n__exportStar(require(\"./types\"), exports);\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ethereumjs_util_1 = require(\"ethereumjs-util\");\nvar _1 = require(\".\");\nvar TransactionFactory = /** @class */ (function () {\n // It is not possible to instantiate a TransactionFactory object.\n function TransactionFactory() {\n }\n /**\n * Create a transaction from a `txData` object\n *\n * @param txData - The transaction data. The `type` field will determine which transaction type is returned (if undefined, creates a legacy transaction)\n * @param txOptions - Options to pass on to the constructor of the transaction\n */\n TransactionFactory.fromTxData = function (txData, txOptions) {\n if (txOptions === void 0) { txOptions = {}; }\n if (!('type' in txData) || txData.type === undefined) {\n // Assume legacy transaction\n return _1.Transaction.fromTxData(txData, txOptions);\n }\n else {\n var txType = new ethereumjs_util_1.BN((0, ethereumjs_util_1.toBuffer)(txData.type)).toNumber();\n if (txType === 0) {\n return _1.Transaction.fromTxData(txData, txOptions);\n }\n else if (txType === 1) {\n return _1.AccessListEIP2930Transaction.fromTxData(txData, txOptions);\n }\n else if (txType === 2) {\n return _1.FeeMarketEIP1559Transaction.fromTxData(txData, txOptions);\n }\n else {\n throw new Error(\"Tx instantiation with type \".concat(txType, \" not supported\"));\n }\n }\n };\n /**\n * This method tries to decode serialized data.\n *\n * @param data - The data Buffer\n * @param txOptions - The transaction options\n */\n TransactionFactory.fromSerializedData = function (data, txOptions) {\n if (txOptions === void 0) { txOptions = {}; }\n if (data[0] <= 0x7f) {\n // Determine the type.\n var EIP = void 0;\n switch (data[0]) {\n case 1:\n EIP = 2930;\n break;\n case 2:\n EIP = 1559;\n break;\n default:\n throw new Error(\"TypedTransaction with ID \".concat(data[0], \" unknown\"));\n }\n if (EIP === 1559) {\n return _1.FeeMarketEIP1559Transaction.fromSerializedTx(data, txOptions);\n }\n else {\n // EIP === 2930\n return _1.AccessListEIP2930Transaction.fromSerializedTx(data, txOptions);\n }\n }\n else {\n return _1.Transaction.fromSerializedTx(data, txOptions);\n }\n };\n /**\n * When decoding a BlockBody, in the transactions field, a field is either:\n * A Buffer (a TypedTransaction - encoded as TransactionType || rlp(TransactionPayload))\n * A Buffer[] (Legacy Transaction)\n * This method returns the right transaction.\n *\n * @param data - A Buffer or Buffer[]\n * @param txOptions - The transaction options\n */\n TransactionFactory.fromBlockBodyData = function (data, txOptions) {\n if (txOptions === void 0) { txOptions = {}; }\n if (Buffer.isBuffer(data)) {\n return this.fromSerializedData(data, txOptions);\n }\n else if (Array.isArray(data)) {\n // It is a legacy transaction\n return _1.Transaction.fromValuesArray(data, txOptions);\n }\n else {\n throw new Error('Cannot decode transaction: unknown type input');\n }\n };\n /**\n * This helper method allows one to retrieve the class which matches the transactionID\n * If transactionID is undefined, returns the legacy transaction class.\n * @deprecated - This method is deprecated and will be removed on the next major release\n * @param transactionID\n * @param _common - This option is not used\n */\n TransactionFactory.getTransactionClass = function (transactionID, _common) {\n if (transactionID === void 0) { transactionID = 0; }\n var legacyTxn = transactionID == 0 || (transactionID >= 0x80 && transactionID <= 0xff);\n if (legacyTxn) {\n return _1.Transaction;\n }\n switch (transactionID) {\n case 1:\n return _1.AccessListEIP2930Transaction;\n case 2:\n return _1.FeeMarketEIP1559Transaction;\n default:\n throw new Error(\"TypedTransaction with ID \".concat(transactionID, \" unknown\"));\n }\n };\n return TransactionFactory;\n}());\nexports.default = TransactionFactory;\n//# sourceMappingURL=transactionFactory.js.map"],"sourceRoot":""}