|
| 1 | +import io |
| 2 | +import pleth |
| 3 | + |
| 4 | + |
| 5 | +def test_tuple(): |
| 6 | + k = pleth.abi.Tuple([ |
| 7 | + pleth.abi.Uint256, |
| 8 | + pleth.abi.Tuple([pleth.abi.Uint256, pleth.abi.Uint256]), |
| 9 | + pleth.abi.String, |
| 10 | + pleth.abi.String, |
| 11 | + ]) |
| 12 | + v = [0x123, [0x456, 0x789], '1234567890', 'Hello, world!'] |
| 13 | + assert k.decode(io.BytesIO(bytes(k.encode(v)))) == v |
| 14 | + |
| 15 | + |
| 16 | +def test_tuple_erc20_name(): |
| 17 | + k = pleth.abi.Tuple([pleth.abi.String]) |
| 18 | + v = bytearray([ |
| 19 | + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 20 | + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, |
| 21 | + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 22 | + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, |
| 23 | + 0x55, 0x53, 0x44, 0x20, 0x43, 0x6f, 0x69, 0x6e, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 24 | + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, |
| 25 | + ]) |
| 26 | + assert k.decode(io.BytesIO(v))[0] == 'USD Coin' |
0 commit comments