Eip7702TxData.deserialize constructor

Eip7702TxData.deserialize(
  1. String hash
)

Implementation

factory Eip7702TxData.deserialize(String hash) {
  /// delete transaction type
  final data = hash.substring(2);
  final decodeData = rlp.decode(dynamicToUint8List(data));
  final chainId = hexToBigInt(dynamicToString(decodeData[0])).toInt();

  final txData = EthTxDataRaw(
      nonce: hexToBigInt(dynamicToString(decodeData[1])).toInt(),
      maxPriorityFeePerGas:
          hexToBigInt(dynamicToString(decodeData[2])).toInt(),
      maxFeePerGas: hexToBigInt(dynamicToString(decodeData[3])).toInt(),
      gasLimit: hexToBigInt(dynamicToString(decodeData[4])).toInt(),
      to: dynamicToHex(decodeData[5]),
      value: hexToBigInt(dynamicToString(decodeData[6])),
      data: dynamicToHex(decodeData[7]));

  final authorization = Eip7702Authorization.deserialize(decodeData[9][0]);

  if (decodeData.length == 13) {
    txData.v = hexToBigInt(dynamicToString(decodeData[10])).toInt();
    txData.r = hexToBigInt(dynamicToString(decodeData[11]));
    txData.s = hexToBigInt(dynamicToString(decodeData[12]));
  }
  return Eip7702TxData(
      data: txData,
      network: TxNetwork(chainId: chainId),
      authorization: authorization);
}