UNPKG

@hashgraph/sdk

Version:
3 lines (2 loc) 1.47 kB
import*as t from"@ethersproject/rlp";import{decode as s,encode as i}from"./encoding/hex.js";import e from"./EthereumTransactionData.js";import r from"./Cache.js";class a extends e{constructor(t){super(t),this.chainId=t.chainId,this.nonce=t.nonce,this.gasPrice=t.gasPrice,this.gasLimit=t.gasLimit,this.to=t.to,this.value=t.value,this.accessList=t.accessList,this.recId=t.recId,this.r=t.r,this.s=t.s}static fromBytes(i){if(0===i.length)throw new Error("empty bytes");const e=t.decode(i.subarray(1));if(!Array.isArray(e))throw new Error("ethereum data is not a list");if(11!==e.length)throw new Error("invalid ethereum transaction data");return new a({chainId:s(e[0]),nonce:s(e[1]),gasPrice:s(e[2]),gasLimit:s(e[3]),to:s(e[4]),value:s(e[5]),callData:s(e[6]),accessList:e[7].map(t=>s(t)),recId:s(e[8]),r:s(e[9]),s:s(e[10])})}toBytes(){const i=t.encode([this.chainId,this.nonce,this.gasPrice,this.gasLimit,this.to,this.value,this.callData,this.accessList,this.recId,this.r,this.s]);return s("01"+i.substring(2))}toString(){return JSON.stringify(this.toJSON(),null,2)}toJSON(){return{chainId:i(this.chainId),nonce:i(this.nonce),gasPrice:i(this.gasPrice),gasLimit:i(this.gasLimit),to:i(this.to),value:i(this.value),callData:i(this.callData),accessList:this.accessList.map(t=>i(t)),recId:i(this.recId),r:i(this.r),s:i(this.s)}}}r.setEthereumTransactionDataEip2930FromBytes(t=>a.fromBytes(t));export{a as default}; //# sourceMappingURL=EthereumTransactionDataEip2930.js.map