0g-chain/x/bep3/spec/03_messages.md
Denali Marsh a4c5a13822
[R4R] BEP3 module spec and clean up (#450)
* bump SDK version to v0.38.2

* fix module.go and remove codespaces

* fix coins Add()

* fixes to handlers

* migrate errors

* more fixes

* fixes fixes fixes

* build

* check for paramstore keytable

* empty param validation function (TODO)

* param validations

* fix some tests

* fix all tests

* simulation fixes (WIP)

* auction and bep3 sim refactor

* fixes

* bep3 sims fixes

* auction and pricefeed fix

* cdp sims fixes

* fix tests

* Update x/auction/keeper/auctions.go

Co-Authored-By: Denali Marsh <denali@kava.io>

* Update x/bep3/types/params.go

Co-Authored-By: Denali Marsh <denali@kava.io>

* Apply suggestions from code review

Co-Authored-By: Denali Marsh <denali@kava.io>

* Update x/bep3/keeper/swap.go

Co-Authored-By: Denali Marsh <denali@kava.io>

* address comments from review

* address comments from review

* fix: run sims

* fix: implement marshal/unmarshal JSON for validator vesting account

* fix: don't call set on sealed config

* remove swap interface

* add concepts spec

* add state spec

* add messages spec

* update event names

* implement swap expired event

* add events spec

* add params spec

* add begin block spec

* add module readme

* update alias

* revisions

* aggregate expired swap ids for event emisison

* markdown-link-check-disable for circleci

* exclude api-endpoint links in Makefile

Co-authored-by: Federico Kunze <federico.kunze94@gmail.com>
Co-authored-by: Federico Kunze <31522760+fedekunze@users.noreply.github.com>
Co-authored-by: Kevin Davis <kjydavis3@gmail.com>
2020-04-23 13:57:25 -07:00

1.6 KiB

Messages

Create swap

Swaps are created using the MsgCreateAtomicSwap message type.

// MsgCreateAtomicSwap contains an AtomicSwap struct
type MsgCreateAtomicSwap struct {
	From                sdk.AccAddress   `json:"from"  yaml:"from"`
	To                  sdk.AccAddress   `json:"to"  yaml:"to"`
	RecipientOtherChain string           `json:"recipient_other_chain"  yaml:"recipient_other_chain"`
	SenderOtherChain    string           `json:"sender_other_chain"  yaml:"sender_other_chain"`
	RandomNumberHash    tmbytes.HexBytes `json:"random_number_hash"  yaml:"random_number_hash"`
	Timestamp           int64            `json:"timestamp"  yaml:"timestamp"`
	Amount              sdk.Coins        `json:"amount"  yaml:"amount"`
	ExpectedIncome      string           `json:"expected_income"  yaml:"expected_income"`
	HeightSpan          int64            `json:"height_span"  yaml:"height_span"`
	CrossChain          bool             `json:"cross_chain"  yaml:"cross_chain"`
}

Claim swap

Active swaps are claimed using the MsgClaimAtomicSwap message type.

// MsgClaimAtomicSwap defines a AtomicSwap claim
type MsgClaimAtomicSwap struct {
	From         sdk.AccAddress   `json:"from"  yaml:"from"`
	SwapID       tmbytes.HexBytes `json:"swap_id"  yaml:"swap_id"`
	RandomNumber tmbytes.HexBytes `json:"random_number"  yaml:"random_number"`
}

Refund swap

Expired swaps are refunded using the MsgRefundAtomicSwap message type.

// MsgRefundAtomicSwap defines a refund msg
type MsgRefundAtomicSwap struct {
	From   sdk.AccAddress   `json:"from" yaml:"from"`
	SwapID tmbytes.HexBytes `json:"swap_id" yaml:"swap_id"`
}