@@ -2,6 +2,7 @@ package receipts_test
22
33import (
44 "context"
5+ "math/big"
56 "testing"
67
78 "github.com/0xsequence/ethkit/ethrpc"
@@ -13,9 +14,6 @@ import (
1314
1415func TestFetchReceiptTokenTransfers (t * testing.T ) {
1516
16- // TODO: lets find a very simple metamask erc20 transfer, and check it in the test
17- // https://arbiscan.io/tx/0x6753a97203d159702e594662729b06608cf3b9c99c0cce177b9d7b66e6456150
18-
1917 // TODO2: a txn with a bunch of different erc20 transfers inside of it, ie. batch send
2018 // this is a sequence v2 send of usdc and magic on arbitrum.. batch send
2119 // https://arbiscan.io/tx/0x65c70290232207a21ef6805ae50622def8d52b7a8f381e1c3eac24d5423e0657
@@ -34,9 +32,9 @@ func TestFetchReceiptTokenTransfers(t *testing.T) {
3432 // and we have to do a delta/diff, and return the "result" maybe "TokenTransferResult" ?
3533 // https://etherscan.io/tx/0xb11ff491495e145b07a1d3cc304f7d04b235b80af51b50da9a54095a6882fca4
3634
37- // Test 1: Simple ERC20 Transfer via EOA, which shows just a simple transfer event
35+ // Case 1: Simple ERC20 Transfer via EOA, which shows just a simple transfer event
3836 // https://arbiscan.io/tx/0x6753a97203d159702e594662729b06608cf3b9c99c0cce177b9d7b66e6456150
39- t .Run ("Simple ERC20 Transfer via EOA" , func (t * testing.T ) {
37+ t .Run ("Case 1: Simple ERC20 Transfer via EOA" , func (t * testing.T ) {
4038 provider , err := ethrpc .NewProvider ("https://nodes.sequence.app/arbitrum" )
4139 require .NoError (t , err )
4240
@@ -46,7 +44,29 @@ func TestFetchReceiptTokenTransfers(t *testing.T) {
4644 require .NotNil (t , receipt )
4745 require .Greater (t , len (transfers ), 0 )
4846
47+ // spew.Dump(transfers)
48+ require .Equal (t , 1 , len (transfers ))
49+ require .Equal (t , common .HexToAddress ("0xaf88d065e77c8cC2239327C5EDb3A432268e5831" ), transfers [0 ].Token ) // USDC
50+ require .Equal (t , common .HexToAddress ("0x1D17C0F90A0b3dFb5124C2FF56B33a0D2E202e1d" ), transfers [0 ].From )
51+ require .Equal (t , common .HexToAddress ("0x5646E2424A7b7d43740EF14bc5b4f1e00Bf9B6Ba" ), transfers [0 ].To )
52+ require .Equal (t , big .NewInt (184840 ), transfers [0 ].Value )
53+ })
54+
55+ // Case 2: a txn with a bunch of different erc20 transfers inside of it, ie. batch send
56+ // this is a sequence v2 send of usdc and magic on arbitrum.. batch send
57+ // https://arbiscan.io/tx/0x65c70290232207a21ef6805ae50622def8d52b7a8f381e1c3eac24d5423e0657
58+ t .Run ("Case 2: Batch of ERC20 Transfers via SCW" , func (t * testing.T ) {
59+ provider , err := ethrpc .NewProvider ("https://nodes.sequence.app/arbitrum" )
60+ require .NoError (t , err )
61+
62+ txnHash := common .HexToHash ("0x65c70290232207a21ef6805ae50622def8d52b7a8f381e1c3eac24d5423e0657" )
63+ receipt , transfers , err := receipts .FetchReceiptTokenTransfers (context .Background (), provider , txnHash )
64+ require .NoError (t , err )
65+ require .NotNil (t , receipt )
66+ require .Greater (t , len (transfers ), 0 )
67+
4968 spew .Dump (transfers )
69+ require .Equal (t , 2 , len (transfers ))
5070 })
5171
5272 //--
0 commit comments