Fix ERC1155 transfer event processing
This commit is contained in:
parent
0554a762ee
commit
f5b179d5c2
@ -78,6 +78,10 @@ func processTransferEvent(l *bchain.RpcLog) (*bchain.TokenTransfer, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func processERC1155TransferSingleEvent(l *bchain.RpcLog) (*bchain.TokenTransfer, error) {
|
func processERC1155TransferSingleEvent(l *bchain.RpcLog) (*bchain.TokenTransfer, error) {
|
||||||
|
tl := len(l.Topics)
|
||||||
|
if tl != 4 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
from, err := addressFromPaddedHex(l.Topics[2])
|
from, err := addressFromPaddedHex(l.Topics[2])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -109,6 +113,10 @@ func processERC1155TransferSingleEvent(l *bchain.RpcLog) (*bchain.TokenTransfer,
|
|||||||
}
|
}
|
||||||
|
|
||||||
func processERC1155TransferBatchEvent(l *bchain.RpcLog) (*bchain.TokenTransfer, error) {
|
func processERC1155TransferBatchEvent(l *bchain.RpcLog) (*bchain.TokenTransfer, error) {
|
||||||
|
tl := len(l.Topics)
|
||||||
|
if tl < 4 {
|
||||||
|
return nil, nil
|
||||||
|
}
|
||||||
from, err := addressFromPaddedHex(l.Topics[2])
|
from, err := addressFromPaddedHex(l.Topics[2])
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@ -178,7 +186,7 @@ func contractGetTransfersFromLog(logs []*bchain.RpcLog) (bchain.TokenTransfers,
|
|||||||
signature := l.Topics[0]
|
signature := l.Topics[0]
|
||||||
if signature == tokenTransferEventSignature {
|
if signature == tokenTransferEventSignature {
|
||||||
tt, err = processTransferEvent(l)
|
tt, err = processTransferEvent(l)
|
||||||
} else if signature == tokenERC1155TransferSingleEventSignature && tl == 4 {
|
} else if signature == tokenERC1155TransferSingleEventSignature {
|
||||||
tt, err = processERC1155TransferSingleEvent(l)
|
tt, err = processERC1155TransferSingleEvent(l)
|
||||||
} else if signature == tokenERC1155TransferBatchEventSignature {
|
} else if signature == tokenERC1155TransferBatchEventSignature {
|
||||||
tt, err = processERC1155TransferBatchEvent(l)
|
tt, err = processERC1155TransferBatchEvent(l)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user