deserialize method

Future<Transaction> deserialize (ScriptReader r)

Implementation

static Future<Transaction> deserialize(ScriptReader r) async {
  var tx = Transaction();
  tx.version = r.readUint8();
  tx.type = TxType.fromValue(r.readUint32LE());
  tx.nonce = Convert.bytesToHexStr(r.forward(4));
  tx.gasPrice = r.readUint64LE();
  tx.gasLimit = r.readUint64LE();
  tx.payer = Address(r.forward(20));

  Payload payload;
  if (tx.type == TxType.deploy) {
    payload = DeployCode();
  } else {
    payload = InvokeCode();
  }
  payload.deserialize(r);
  tx.payload = payload;

  r.readUint8();
  var sigLen = r.readVarInt();

  var buf = r.branch(r.ofst).buf;
  var pr = ProgramReader(buf);
  for (var i = 0; i < sigLen; i++) {
    tx.sigs.add(await TxSignature.deserialize(pr));
  }
  return tx;
}