Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Process BatchTransfer events #45

Merged
merged 5 commits into from
Nov 24, 2021
Merged

Conversation

awrichar
Copy link
Contributor

Also add a new "id" parameter to every transfer event, which can be used for de-duplication.

This allows more flexibility in transformation, such as emitting multiple events
based on a single input event.

Signed-off-by: Andrew Richardson <andrew.richardson@kaleido.io>
Although this is not directly triggered by the connector in any case, we
still need to listen for it in order to maintain a correct picture of all
transfers.

Treat it as a series of TransferSingle events.

Signed-off-by: Andrew Richardson <andrew.richardson@kaleido.io>
Signed-off-by: Andrew Richardson <andrew.richardson@kaleido.io>
Clients need a key that is guaranteed to be unique in order to avoid double-processing
of events. Previously we were using transactionHash, but this will not be unique in
many cases with loops that emit multiple events - for instance:
  - Calling mintNonFungible triggers a loop in Solidity
  - Calling safeBatchTransferFrom triggers a loop in the tokens service

Therefore we'll build a new id based on block number, transaction index, log index,
and an optional application-specified index. This will reliably be unique for every
event.

Signed-off-by: Andrew Richardson <andrew.richardson@kaleido.io>
}
});
} catch (err) {
// do nothing
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we at least log something here?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yea, probably a good idea

Signed-off-by: Andrew Richardson <andrew.richardson@kaleido.io>
@awrichar awrichar merged commit a2af376 into hyperledger:main Nov 24, 2021
@awrichar awrichar deleted the batch-transfer branch November 24, 2021 18:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants