packageprocessorimport("encoding/binary""math/big")// DecodeVersionNonce is an re-implementation of Encoding.sol#decodeVersionedNonce.// If the nonce is greater than 32 bytes (solidity uint256), bytes [32:] are ignoredfuncDecodeVersionedNonce(nonce*big.Int)(uint16,*big.Int){nonceBytes:=nonce.Bytes()nonceByteLen:=len(nonceBytes)ifnonceByteLen<30{// version is 0x0000return0,nonce}elseifnonceByteLen==31{// version is 0x00[01..ff]returnuint16(nonceBytes[0]),new(big.Int).SetBytes(nonceBytes[1:])}else{// fully specifiedversion:=binary.BigEndian.Uint16(nonceBytes[:2])returnversion,new(big.Int).SetBytes(nonceBytes[2:])}}