Commit Graph

7 Commits

Author SHA1 Message Date
Chirantan Ekbote 8777c22d32 cosmwasm: accounting: Use cw_transcode for events
Use cw_transcode to ensure that event attribute values are always
encoded as proper json, making it easier for clients to parse them back
into structured data.

This also lets us reuse the input messages for the events, reducing the
number of different structs that we need to track.
2023-01-16 09:28:43 +09:00
Chirantan Ekbote 5d8072e3da cosmwasm: accounting: Change error message for duplicate observation
Change the error message when handling duplicate observations from
"message already processed" -> "transfer already committed".
2023-01-04 16:17:54 +09:00
Chirantan Ekbote d53085abec cosmwasm: accounting: Include digests in transfer queries
When querying transfer details, return the digest in addition to the
details of the tokens being transferred.
2022-12-21 13:59:01 +09:00
Chirantan Ekbote d6dadb195a cosmwasm: accounting: Remove `InstantiateMsg`
Now that we're keeping track of transfer digests, initializing any on-
chain state through the `InstantiateMsg` doesn't make a lot of sense:
any state initialized this way is unverified and this message doesn't
contain enough information to generate the transfer digests.

Rather than trying to add in the necessary fields, just drop the message
completely since it won't be used in production.  It's currently only
used to initialize on-chain state for tests but the same thing can be
accomplished through the `ModifyBalance` and `SubmitVAAs` methods.
2022-12-21 13:59:01 +09:00
Chirantan Ekbote 29d28a75c0 cosmwasm: accounting: Store transfer digests
Keep track of the digests of committed transfers so that they can be
used later when handling duplicate observations / VAAs.  When processing
an observation or VAA with the same (chain, address, sequence) tuple as
a committed transfer, return a "message already processed" error when
the digests match and a "digest mismatch" error when they don't.  The
latter implies a very serious issue because transfer details shouldn't
change once they have been observed by a quorum of guardians.
2022-12-21 13:59:01 +09:00
Chirantan Ekbote 9a559f3fbd cosmwasm: accounting: Add support for chain registration
Add support for handling chain registration VAAs for the tokenbridge
contract.  This will let us deploy accounting without also having to
deploy the tokenbridge.
2022-12-19 17:14:33 +09:00
Chirantan Ekbote ac9c8cd743 cosmwasm: Add backfill method for accounting
Add a mechanism to backfill missing transfer messages by submitting
signed VAAs.  This will also be used to initialize the on-chain state
as there is too much data to initialize the contract via the normal
`instantiate` mechanism.

Fixes #1883, fixes #1884.
2022-12-15 12:22:37 +09:00