mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-24 23:35:19 +00:00
Reset bep3 swaps for zero height in migration (#1135)
* reinstate and expand export test * format testdata json * sort bep3 testdata json for easier diffing * add more bep3 swap examples to test data * reset swaps for zero height * update top level migration testdata
This commit is contained in:
parent
779f8081e7
commit
e9a28cefd8
@ -1,10 +1,17 @@
|
|||||||
package app
|
package app
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"os"
|
"os"
|
||||||
|
"sort"
|
||||||
"testing"
|
"testing"
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
"github.com/stretchr/testify/require"
|
||||||
|
abci "github.com/tendermint/tendermint/abci/types"
|
||||||
"github.com/tendermint/tendermint/libs/log"
|
"github.com/tendermint/tendermint/libs/log"
|
||||||
|
tmtypes "github.com/tendermint/tendermint/types"
|
||||||
db "github.com/tendermint/tm-db"
|
db "github.com/tendermint/tm-db"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -20,43 +27,52 @@ func TestNewApp(t *testing.T) {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
// func TestExport(t *testing.T) {
|
func TestExport(t *testing.T) {
|
||||||
// db := db.NewMemDB()
|
db := db.NewMemDB()
|
||||||
// app := NewApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, AppOptions{})
|
app := NewApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, DefaultNodeHome, nil, MakeEncodingConfig(), Options{})
|
||||||
// setGenesis(app)
|
|
||||||
|
|
||||||
// // Making a new app object with the db, so that initchain hasn't been called
|
stateBytes, err := json.Marshal(NewDefaultGenesisState())
|
||||||
// newApp := NewApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, AppOptions{})
|
require.NoError(t, err)
|
||||||
// _, _, err := newApp.ExportAppStateAndValidators(false, []string{})
|
|
||||||
// require.NoError(t, err, "ExportAppStateAndValidators should not have an error")
|
|
||||||
// }
|
|
||||||
|
|
||||||
// // ensure that black listed addresses are properly set in bank keeper
|
initRequest := abci.RequestInitChain{
|
||||||
// func TestBlackListedAddrs(t *testing.T) {
|
Time: time.Date(1998, 1, 1, 0, 0, 0, 0, time.UTC),
|
||||||
// db := db.NewMemDB()
|
ChainId: "kava-test",
|
||||||
// app := NewApp(log.NewTMLogger(log.NewSyncWriter(os.Stdout)), db, nil, AppOptions{})
|
InitialHeight: 1,
|
||||||
|
ConsensusParams: tmtypes.TM2PB.ConsensusParams(tmtypes.DefaultConsensusParams()),
|
||||||
|
Validators: nil,
|
||||||
|
AppStateBytes: stateBytes,
|
||||||
|
}
|
||||||
|
app.InitChain(initRequest)
|
||||||
|
app.Commit()
|
||||||
|
|
||||||
// for acc := range mAccPerms {
|
exportedApp, err := app.ExportAppStateAndValidators(false, []string{})
|
||||||
// require.Equal(t, !allowedReceivingModAcc[acc], app.bankKeeper.BlacklistedAddr(app.supplyKeeper.GetModuleAddress(acc)))
|
require.NoError(t, err)
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// func setGenesis(app *App) error {
|
// Assume each module is exported correctly, so only check modules in genesis are present in export
|
||||||
// genesisState := NewDefaultGenesisState()
|
initialModules, err := unmarshalJSONKeys(initRequest.AppStateBytes)
|
||||||
|
require.NoError(t, err)
|
||||||
|
exportedModules, err := unmarshalJSONKeys(exportedApp.AppState)
|
||||||
|
require.NoError(t, err)
|
||||||
|
assert.ElementsMatch(t, initialModules, exportedModules)
|
||||||
|
|
||||||
// stateBytes, err := codec.MarshalJSONIndent(app.cdc, genesisState)
|
assert.Equal(t, initRequest.InitialHeight+1, exportedApp.Height) // app.Commit() increments height
|
||||||
// if err != nil {
|
assert.Equal(t, initRequest.ConsensusParams, exportedApp.ConsensusParams)
|
||||||
// return err
|
assert.Equal(t, []tmtypes.GenesisValidator(nil), exportedApp.Validators) // no validators set in default genesis
|
||||||
// }
|
}
|
||||||
|
|
||||||
// // Initialize the chain
|
// unmarshalJSONKeys extracts keys from the top level of a json blob.
|
||||||
// app.InitChain(
|
func unmarshalJSONKeys(jsonBytes []byte) ([]string, error) {
|
||||||
// abci.RequestInitChain{
|
var jsonMap map[string]json.RawMessage
|
||||||
// Validators: []abci.ValidatorUpdate{},
|
err := json.Unmarshal(jsonBytes, &jsonMap)
|
||||||
// AppStateBytes: stateBytes,
|
if err != nil {
|
||||||
// },
|
return nil, err
|
||||||
// )
|
}
|
||||||
// app.Commit()
|
|
||||||
|
|
||||||
// return nil
|
keys := make([]string, 0, len(jsonMap))
|
||||||
// }
|
for k, _ := range jsonMap {
|
||||||
|
keys = append(keys, k)
|
||||||
|
}
|
||||||
|
sort.Strings(keys)
|
||||||
|
|
||||||
|
return keys, nil
|
||||||
|
}
|
||||||
|
76
migrate/v0_16/testdata/genesis-v15.json
vendored
76
migrate/v0_16/testdata/genesis-v15.json
vendored
@ -1393,6 +1393,44 @@
|
|||||||
"status": "Completed",
|
"status": "Completed",
|
||||||
"timestamp": "1636034914"
|
"timestamp": "1636034914"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "19000000000",
|
||||||
|
"denom": "bnb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "1712118",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "Outgoing",
|
||||||
|
"expire_height": "1736797",
|
||||||
|
"random_number_hash": "280EB832A37F2265CC82F3957CE603AAD57BAD7038B876A1F28953AFA29FA1C3",
|
||||||
|
"recipient": "kava1r4v2zdhdalfj2ydazallqvrus9fkphmglhn6u6",
|
||||||
|
"recipient_other_chain": "bnb18nsgj50zvc4uq93w4j0ltz5gaxhwv7aq4qnq0p",
|
||||||
|
"sender": "kava1zw6gg4ztvly7zf25pa33mclav3spvj3ympxxna",
|
||||||
|
"sender_other_chain": "bnb1jh7uv2rm6339yue8k4mj9406k3509kr4wt5nxn",
|
||||||
|
"status": "Completed",
|
||||||
|
"timestamp": "1641976566"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "999595462080",
|
||||||
|
"denom": "busd"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "787122",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "Incoming",
|
||||||
|
"expire_height": "811799",
|
||||||
|
"random_number_hash": "BFB7CC82DA0E0C8556AC37843F5AB136B9A7A066054368F5948944282B414D83",
|
||||||
|
"recipient": "kava1eufgf0w9d7hf5mgtek4zr2upkxag9stmzx6unl",
|
||||||
|
"recipient_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
||||||
|
"sender": "kava1hh4x3a4suu5zyaeauvmv7ypf7w9llwlfufjmuu",
|
||||||
|
"sender_other_chain": "bnb1vl3wn4x8kqajg2j9wxa5y5amgzdxchutkxr6at",
|
||||||
|
"status": "Expired",
|
||||||
|
"timestamp": "1635694492"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"amount": [
|
"amount": [
|
||||||
{
|
{
|
||||||
@ -1411,6 +1449,44 @@
|
|||||||
"sender_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
"sender_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
||||||
"status": "Expired",
|
"status": "Expired",
|
||||||
"timestamp": "1635694492"
|
"timestamp": "1635694492"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "1000000",
|
||||||
|
"denom": "btcb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "0",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "Outgoing",
|
||||||
|
"expire_height": "1730589",
|
||||||
|
"random_number_hash": "A74EA1AB58D312FDF1E872D18583CACCF294E639DDA4F303939E9ADCEC081D93",
|
||||||
|
"recipient": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
||||||
|
"recipient_other_chain": "bnb1lhk5ndlgf5wz55t8k35cqj6h9l3m4l5ek2w7q6",
|
||||||
|
"sender": "kava1d2u28azje7rhqyjtxc2ex8q0cxxpw7dfm7ltq5",
|
||||||
|
"sender_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
||||||
|
"status": "Open",
|
||||||
|
"timestamp": "1641934114"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "1000000",
|
||||||
|
"denom": "btcb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "0",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "Incoming",
|
||||||
|
"expire_height": "1740000",
|
||||||
|
"random_number_hash": "39E9ADCEC081D93A74EA1A83CACCF294E639DDA4F3039B58D312FDF1E872D185",
|
||||||
|
"recipient": "kava1d2u28azje7rhqyjtxc2ex8q0cxxpw7dfm7ltq5",
|
||||||
|
"recipient_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
||||||
|
"sender": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
||||||
|
"sender_other_chain": "bnb1lhk5ndlgf5wz55t8k35cqj6h9l3m4l5ek2w7q6",
|
||||||
|
"status": "Open",
|
||||||
|
"timestamp": "1641934114"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"previous_block_time": "1970-01-01T00:00:00Z",
|
"previous_block_time": "1970-01-01T00:00:00Z",
|
||||||
|
130
migrate/v0_16/testdata/genesis-v16.json
vendored
130
migrate/v0_16/testdata/genesis-v16.json
vendored
@ -1139,32 +1139,118 @@
|
|||||||
},
|
},
|
||||||
"atomic_swaps": [
|
"atomic_swaps": [
|
||||||
{
|
{
|
||||||
"amount": [{ "denom": "btcb", "amount": "1999955998" }],
|
"amount": [
|
||||||
"random_number_hash": "6F1CF8F2E13A0C0F0A359F54E47E4E265D766B8E006D2F00BDF994ABDEF1E9E4",
|
{
|
||||||
"expire_height": "838627",
|
"amount": "1999955998",
|
||||||
"timestamp": "1636034914",
|
"denom": "btcb"
|
||||||
"sender": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
}
|
||||||
"recipient": "kava1fl2hs6y9vz986g5v52pdan9ga923n9mn5cxxkw",
|
],
|
||||||
"sender_other_chain": "bnb19k9wuv2j7c7ck8tmc7kav0r0cnt3esmkrpf25x",
|
"closed_block": "1",
|
||||||
"recipient_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
|
||||||
"closed_block": "838115",
|
|
||||||
"status": "SWAP_STATUS_COMPLETED",
|
|
||||||
"cross_chain": true,
|
"cross_chain": true,
|
||||||
"direction": "SWAP_DIRECTION_INCOMING"
|
"direction": "SWAP_DIRECTION_INCOMING",
|
||||||
|
"expire_height": "838627",
|
||||||
|
"random_number_hash": "6F1CF8F2E13A0C0F0A359F54E47E4E265D766B8E006D2F00BDF994ABDEF1E9E4",
|
||||||
|
"recipient": "kava1fl2hs6y9vz986g5v52pdan9ga923n9mn5cxxkw",
|
||||||
|
"recipient_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
||||||
|
"sender": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
||||||
|
"sender_other_chain": "bnb19k9wuv2j7c7ck8tmc7kav0r0cnt3esmkrpf25x",
|
||||||
|
"status": "SWAP_STATUS_COMPLETED",
|
||||||
|
"timestamp": "1636034914"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"amount": [{ "denom": "busd", "amount": "999595462080" }],
|
"amount": [
|
||||||
"random_number_hash": "BFB7CC82DA0E0C8556AC37843F5AB136B9A7A066054368F5948944282B414D83",
|
{
|
||||||
"expire_height": "811799",
|
"amount": "19000000000",
|
||||||
"timestamp": "1635694492",
|
"denom": "bnb"
|
||||||
"sender": "kava1eufgf0w9d7hf5mgtek4zr2upkxag9stmzx6unl",
|
}
|
||||||
"recipient": "kava1hh4x3a4suu5zyaeauvmv7ypf7w9llwlfufjmuu",
|
],
|
||||||
"sender_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
"closed_block": "1",
|
||||||
"recipient_other_chain": "bnb1vl3wn4x8kqajg2j9wxa5y5amgzdxchutkxr6at",
|
|
||||||
"closed_block": "787122",
|
|
||||||
"status": "SWAP_STATUS_EXPIRED",
|
|
||||||
"cross_chain": true,
|
"cross_chain": true,
|
||||||
"direction": "SWAP_DIRECTION_OUTGOING"
|
"direction": "SWAP_DIRECTION_OUTGOING",
|
||||||
|
"expire_height": "1736797",
|
||||||
|
"random_number_hash": "280EB832A37F2265CC82F3957CE603AAD57BAD7038B876A1F28953AFA29FA1C3",
|
||||||
|
"recipient": "kava1r4v2zdhdalfj2ydazallqvrus9fkphmglhn6u6",
|
||||||
|
"recipient_other_chain": "bnb18nsgj50zvc4uq93w4j0ltz5gaxhwv7aq4qnq0p",
|
||||||
|
"sender": "kava1zw6gg4ztvly7zf25pa33mclav3spvj3ympxxna",
|
||||||
|
"sender_other_chain": "bnb1jh7uv2rm6339yue8k4mj9406k3509kr4wt5nxn",
|
||||||
|
"status": "SWAP_STATUS_COMPLETED",
|
||||||
|
"timestamp": "1641976566"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "999595462080",
|
||||||
|
"denom": "busd"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "787122",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "SWAP_DIRECTION_INCOMING",
|
||||||
|
"expire_height": "1",
|
||||||
|
"random_number_hash": "BFB7CC82DA0E0C8556AC37843F5AB136B9A7A066054368F5948944282B414D83",
|
||||||
|
"recipient": "kava1eufgf0w9d7hf5mgtek4zr2upkxag9stmzx6unl",
|
||||||
|
"recipient_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
||||||
|
"sender": "kava1hh4x3a4suu5zyaeauvmv7ypf7w9llwlfufjmuu",
|
||||||
|
"sender_other_chain": "bnb1vl3wn4x8kqajg2j9wxa5y5amgzdxchutkxr6at",
|
||||||
|
"status": "SWAP_STATUS_EXPIRED",
|
||||||
|
"timestamp": "1635694492"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "999595462080",
|
||||||
|
"denom": "busd"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "787122",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "SWAP_DIRECTION_OUTGOING",
|
||||||
|
"expire_height": "1",
|
||||||
|
"random_number_hash": "BFB7CC82DA0E0C8556AC37843F5AB136B9A7A066054368F5948944282B414D83",
|
||||||
|
"recipient": "kava1hh4x3a4suu5zyaeauvmv7ypf7w9llwlfufjmuu",
|
||||||
|
"recipient_other_chain": "bnb1vl3wn4x8kqajg2j9wxa5y5amgzdxchutkxr6at",
|
||||||
|
"sender": "kava1eufgf0w9d7hf5mgtek4zr2upkxag9stmzx6unl",
|
||||||
|
"sender_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
||||||
|
"status": "SWAP_STATUS_EXPIRED",
|
||||||
|
"timestamp": "1635694492"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "1000000",
|
||||||
|
"denom": "btcb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "0",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "SWAP_DIRECTION_OUTGOING",
|
||||||
|
"expire_height": "24687",
|
||||||
|
"random_number_hash": "A74EA1AB58D312FDF1E872D18583CACCF294E639DDA4F303939E9ADCEC081D93",
|
||||||
|
"recipient": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
||||||
|
"recipient_other_chain": "bnb1lhk5ndlgf5wz55t8k35cqj6h9l3m4l5ek2w7q6",
|
||||||
|
"sender": "kava1d2u28azje7rhqyjtxc2ex8q0cxxpw7dfm7ltq5",
|
||||||
|
"sender_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
||||||
|
"status": "SWAP_STATUS_OPEN",
|
||||||
|
"timestamp": "1641934114"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "1000000",
|
||||||
|
"denom": "btcb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "0",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "SWAP_DIRECTION_INCOMING",
|
||||||
|
"expire_height": "1",
|
||||||
|
"random_number_hash": "39E9ADCEC081D93A74EA1A83CACCF294E639DDA4F3039B58D312FDF1E872D185",
|
||||||
|
"recipient": "kava1d2u28azje7rhqyjtxc2ex8q0cxxpw7dfm7ltq5",
|
||||||
|
"recipient_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
||||||
|
"sender": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
||||||
|
"sender_other_chain": "bnb1lhk5ndlgf5wz55t8k35cqj6h9l3m4l5ek2w7q6",
|
||||||
|
"status": "SWAP_STATUS_EXPIRED",
|
||||||
|
"timestamp": "1641934114"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"supplies": [
|
"supplies": [
|
||||||
|
@ -80,11 +80,44 @@ func migrateAtomicSwaps(oldSwaps v015bep3.AtomicSwaps) v016bep3.AtomicSwaps {
|
|||||||
CrossChain: oldSwap.CrossChain,
|
CrossChain: oldSwap.CrossChain,
|
||||||
Direction: migrateSwapDirection(oldSwap.Direction),
|
Direction: migrateSwapDirection(oldSwap.Direction),
|
||||||
}
|
}
|
||||||
|
swap = resetSwapForZeroHeight(swap)
|
||||||
newSwaps[i] = swap
|
newSwaps[i] = swap
|
||||||
}
|
}
|
||||||
return newSwaps
|
return newSwaps
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// resetSwapForZeroHeight updates swap expiry/close heights to work when the chain height is reset to zero.
|
||||||
|
func resetSwapForZeroHeight(swap v016bep3.AtomicSwap) v016bep3.AtomicSwap {
|
||||||
|
switch status := swap.Status; status {
|
||||||
|
case v016bep3.SWAP_STATUS_COMPLETED:
|
||||||
|
// Reset closed block to one so completed swaps are not held in long term storage too long.
|
||||||
|
swap.ClosedBlock = 1
|
||||||
|
case v016bep3.SWAP_STATUS_OPEN:
|
||||||
|
switch dir := swap.Direction; dir {
|
||||||
|
case v016bep3.SWAP_DIRECTION_INCOMING:
|
||||||
|
// Open incoming swaps can be expired safely. They haven't been claimed yet, so the outgoing swap on bnb will just timeout.
|
||||||
|
// The chain downtime cannot be accurately predicted, so it's easier to expire than to recalculate a correct expire height.
|
||||||
|
swap.ExpireHeight = 1
|
||||||
|
swap.Status = v016bep3.SWAP_STATUS_EXPIRED
|
||||||
|
case v016bep3.SWAP_DIRECTION_OUTGOING:
|
||||||
|
// Open outgoing swaps should be extended to allow enough time to claim after the chain launches.
|
||||||
|
// They cannot be expired as there could be an open/claimed bnb swap.
|
||||||
|
swap.ExpireHeight = 1 + 24686 // default timeout used when sending swaps from kava
|
||||||
|
case v016bep3.SWAP_DIRECTION_UNSPECIFIED:
|
||||||
|
default:
|
||||||
|
panic(fmt.Sprintf("unknown bep3 swap direction '%s'", dir))
|
||||||
|
}
|
||||||
|
case v016bep3.SWAP_STATUS_EXPIRED:
|
||||||
|
// Once a swap is marked expired the expire height is ignored. However reset to 1 to be sure.
|
||||||
|
swap.ExpireHeight = 1
|
||||||
|
case v016bep3.SWAP_STATUS_UNSPECIFIED:
|
||||||
|
default:
|
||||||
|
panic(fmt.Sprintf("unknown bep3 swap status '%s'", status))
|
||||||
|
}
|
||||||
|
|
||||||
|
return swap
|
||||||
|
}
|
||||||
|
|
||||||
func migrateSupplies(oldSupplies v015bep3.AssetSupplies) v016bep3.AssetSupplies {
|
func migrateSupplies(oldSupplies v015bep3.AssetSupplies) v016bep3.AssetSupplies {
|
||||||
newSupplies := make(v016bep3.AssetSupplies, len(oldSupplies))
|
newSupplies := make(v016bep3.AssetSupplies, len(oldSupplies))
|
||||||
for i, supply := range oldSupplies {
|
for i, supply := range oldSupplies {
|
||||||
|
@ -62,31 +62,97 @@ func (s *migrateTestSuite) TestMigrate_JSON() {
|
|||||||
s.Require().JSONEq(string(expected), string(actual))
|
s.Require().JSONEq(string(expected), string(actual))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *migrateTestSuite) TestMigrate_Swaps_Status() {
|
func (s *migrateTestSuite) TestMigrate_Swaps() {
|
||||||
|
type oldSwap struct {
|
||||||
|
ExpireHeight uint64
|
||||||
|
CloseBlock int64
|
||||||
|
Status v015bep3.SwapStatus
|
||||||
|
Direction v015bep3.SwapDirection
|
||||||
|
}
|
||||||
|
type newSwap struct {
|
||||||
|
ExpireHeight uint64
|
||||||
|
CloseBlock int64
|
||||||
|
Status v016bep3.SwapStatus
|
||||||
|
Direction v016bep3.SwapDirection
|
||||||
|
}
|
||||||
testcases := []struct {
|
testcases := []struct {
|
||||||
name string
|
name string
|
||||||
oldStatus v015bep3.SwapStatus
|
oldSwap oldSwap
|
||||||
newStatus v016bep3.SwapStatus
|
newSwap newSwap
|
||||||
}{
|
}{
|
||||||
{
|
{
|
||||||
name: "null swap status",
|
name: "invalid swap direction",
|
||||||
oldStatus: v015bep3.NULL,
|
oldSwap: oldSwap{
|
||||||
newStatus: v016bep3.SWAP_STATUS_UNSPECIFIED,
|
Direction: v015bep3.INVALID,
|
||||||
|
},
|
||||||
|
newSwap: newSwap{
|
||||||
|
Direction: v016bep3.SWAP_DIRECTION_UNSPECIFIED,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "open swap status",
|
name: "invalid swap status",
|
||||||
oldStatus: v015bep3.Open,
|
oldSwap: oldSwap{
|
||||||
newStatus: v016bep3.SWAP_STATUS_OPEN,
|
Status: v015bep3.NULL,
|
||||||
|
},
|
||||||
|
newSwap: newSwap{
|
||||||
|
Status: v016bep3.SWAP_STATUS_UNSPECIFIED,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "completed swap status",
|
name: "incoming open swap",
|
||||||
oldStatus: v015bep3.Completed,
|
oldSwap: oldSwap{
|
||||||
newStatus: v016bep3.SWAP_STATUS_COMPLETED,
|
// expire and close not set in open swaps
|
||||||
|
Status: v015bep3.Open,
|
||||||
|
Direction: v015bep3.Incoming,
|
||||||
|
},
|
||||||
|
newSwap: newSwap{
|
||||||
|
ExpireHeight: 1,
|
||||||
|
Status: v016bep3.SWAP_STATUS_EXPIRED,
|
||||||
|
Direction: v016bep3.SWAP_DIRECTION_INCOMING,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: "expired swap status",
|
name: "outgoing open swap",
|
||||||
oldStatus: v015bep3.Expired,
|
oldSwap: oldSwap{
|
||||||
newStatus: v016bep3.SWAP_STATUS_EXPIRED,
|
// expire and close not set in open swaps
|
||||||
|
Status: v015bep3.Open,
|
||||||
|
Direction: v015bep3.Outgoing,
|
||||||
|
},
|
||||||
|
newSwap: newSwap{
|
||||||
|
ExpireHeight: 24687,
|
||||||
|
Status: v016bep3.SWAP_STATUS_OPEN,
|
||||||
|
Direction: v016bep3.SWAP_DIRECTION_OUTGOING,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "completed swap",
|
||||||
|
oldSwap: oldSwap{
|
||||||
|
ExpireHeight: 1000,
|
||||||
|
CloseBlock: 900,
|
||||||
|
Status: v015bep3.Completed,
|
||||||
|
Direction: v015bep3.Incoming,
|
||||||
|
},
|
||||||
|
newSwap: newSwap{
|
||||||
|
ExpireHeight: 1000,
|
||||||
|
CloseBlock: 1,
|
||||||
|
Status: v016bep3.SWAP_STATUS_COMPLETED,
|
||||||
|
Direction: v016bep3.SWAP_DIRECTION_INCOMING,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "expired swap",
|
||||||
|
oldSwap: oldSwap{
|
||||||
|
ExpireHeight: 1000,
|
||||||
|
CloseBlock: 900,
|
||||||
|
Status: v015bep3.Expired,
|
||||||
|
Direction: v015bep3.Incoming,
|
||||||
|
},
|
||||||
|
newSwap: newSwap{
|
||||||
|
ExpireHeight: 1,
|
||||||
|
CloseBlock: 900,
|
||||||
|
Status: v016bep3.SWAP_STATUS_EXPIRED,
|
||||||
|
Direction: v016bep3.SWAP_DIRECTION_INCOMING,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -96,97 +162,32 @@ func (s *migrateTestSuite) TestMigrate_Swaps_Status() {
|
|||||||
{
|
{
|
||||||
Amount: sdk.NewCoins(sdk.NewCoin("bnb", sdk.NewInt(12))),
|
Amount: sdk.NewCoins(sdk.NewCoin("bnb", sdk.NewInt(12))),
|
||||||
RandomNumberHash: bytes.HexBytes{},
|
RandomNumberHash: bytes.HexBytes{},
|
||||||
ExpireHeight: 360,
|
ExpireHeight: tc.oldSwap.ExpireHeight,
|
||||||
Timestamp: 1110,
|
Timestamp: 1110,
|
||||||
Sender: s.addresses[0],
|
Sender: s.addresses[0],
|
||||||
Recipient: s.addresses[1],
|
Recipient: s.addresses[1],
|
||||||
RecipientOtherChain: s.addresses[0].String(),
|
RecipientOtherChain: s.addresses[0].String(),
|
||||||
SenderOtherChain: s.addresses[1].String(),
|
SenderOtherChain: s.addresses[1].String(),
|
||||||
ClosedBlock: 1,
|
ClosedBlock: tc.oldSwap.CloseBlock,
|
||||||
Status: tc.oldStatus,
|
Status: tc.oldSwap.Status,
|
||||||
CrossChain: true,
|
CrossChain: true,
|
||||||
Direction: v015bep3.Incoming,
|
Direction: tc.oldSwap.Direction,
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
expectedSwaps := v016bep3.AtomicSwaps{
|
expectedSwaps := v016bep3.AtomicSwaps{
|
||||||
{
|
{
|
||||||
Amount: sdk.NewCoins(sdk.NewCoin("bnb", sdk.NewInt(12))),
|
Amount: sdk.NewCoins(sdk.NewCoin("bnb", sdk.NewInt(12))),
|
||||||
RandomNumberHash: bytes.HexBytes{},
|
RandomNumberHash: bytes.HexBytes{},
|
||||||
ExpireHeight: 360,
|
ExpireHeight: tc.newSwap.ExpireHeight,
|
||||||
Timestamp: 1110,
|
Timestamp: 1110,
|
||||||
Sender: s.addresses[0],
|
Sender: s.addresses[0],
|
||||||
Recipient: s.addresses[1],
|
Recipient: s.addresses[1],
|
||||||
RecipientOtherChain: s.addresses[0].String(),
|
RecipientOtherChain: s.addresses[0].String(),
|
||||||
SenderOtherChain: s.addresses[1].String(),
|
SenderOtherChain: s.addresses[1].String(),
|
||||||
ClosedBlock: 1,
|
ClosedBlock: tc.newSwap.CloseBlock,
|
||||||
Status: tc.newStatus,
|
Status: tc.newSwap.Status,
|
||||||
CrossChain: true,
|
CrossChain: true,
|
||||||
Direction: v016bep3.SWAP_DIRECTION_INCOMING,
|
Direction: tc.newSwap.Direction,
|
||||||
},
|
|
||||||
}
|
|
||||||
s.v15genstate.AtomicSwaps = oldSwaps
|
|
||||||
genState := Migrate(s.v15genstate)
|
|
||||||
s.Require().Len(genState.AtomicSwaps, 1)
|
|
||||||
s.Equal(expectedSwaps, genState.AtomicSwaps)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *migrateTestSuite) TestMigrate_Swaps_Direction() {
|
|
||||||
testcases := []struct {
|
|
||||||
name string
|
|
||||||
oldDirection v015bep3.SwapDirection
|
|
||||||
newDirection v016bep3.SwapDirection
|
|
||||||
}{
|
|
||||||
{
|
|
||||||
name: "invalid swap direction",
|
|
||||||
oldDirection: v015bep3.INVALID,
|
|
||||||
newDirection: v016bep3.SWAP_DIRECTION_UNSPECIFIED,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "income swap direction",
|
|
||||||
oldDirection: v015bep3.Incoming,
|
|
||||||
newDirection: v016bep3.SWAP_DIRECTION_INCOMING,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "outgoing swap direction",
|
|
||||||
oldDirection: v015bep3.Outgoing,
|
|
||||||
newDirection: v016bep3.SWAP_DIRECTION_OUTGOING,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, tc := range testcases {
|
|
||||||
s.Run(tc.name, func() {
|
|
||||||
oldSwaps := v015bep3.AtomicSwaps{
|
|
||||||
{
|
|
||||||
Amount: sdk.NewCoins(sdk.NewCoin("bnb", sdk.NewInt(12))),
|
|
||||||
RandomNumberHash: bytes.HexBytes{},
|
|
||||||
ExpireHeight: 360,
|
|
||||||
Timestamp: 1110,
|
|
||||||
Sender: s.addresses[0],
|
|
||||||
Recipient: s.addresses[1],
|
|
||||||
RecipientOtherChain: s.addresses[0].String(),
|
|
||||||
SenderOtherChain: s.addresses[1].String(),
|
|
||||||
ClosedBlock: 1,
|
|
||||||
Status: v015bep3.Open,
|
|
||||||
CrossChain: true,
|
|
||||||
Direction: tc.oldDirection,
|
|
||||||
},
|
|
||||||
}
|
|
||||||
expectedSwaps := v016bep3.AtomicSwaps{
|
|
||||||
{
|
|
||||||
Amount: sdk.NewCoins(sdk.NewCoin("bnb", sdk.NewInt(12))),
|
|
||||||
RandomNumberHash: bytes.HexBytes{},
|
|
||||||
ExpireHeight: 360,
|
|
||||||
Timestamp: 1110,
|
|
||||||
Sender: s.addresses[0],
|
|
||||||
Recipient: s.addresses[1],
|
|
||||||
RecipientOtherChain: s.addresses[0].String(),
|
|
||||||
SenderOtherChain: s.addresses[1].String(),
|
|
||||||
ClosedBlock: 1,
|
|
||||||
Status: v016bep3.SWAP_STATUS_OPEN,
|
|
||||||
CrossChain: true,
|
|
||||||
Direction: tc.newDirection,
|
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
s.v15genstate.AtomicSwaps = oldSwaps
|
s.v15genstate.AtomicSwaps = oldSwaps
|
||||||
|
214
x/bep3/legacy/v0_16/testdata/v15-bep3.json
vendored
214
x/bep3/legacy/v0_16/testdata/v15-bep3.json
vendored
@ -1,25 +1,4 @@
|
|||||||
{
|
{
|
||||||
"supplies": [
|
|
||||||
{
|
|
||||||
"current_supply": {
|
|
||||||
"amount": "30467559434006",
|
|
||||||
"denom": "bnb"
|
|
||||||
},
|
|
||||||
"incoming_supply": {
|
|
||||||
"amount": "0",
|
|
||||||
"denom": "bnb"
|
|
||||||
},
|
|
||||||
"outgoing_supply": {
|
|
||||||
"amount": "0",
|
|
||||||
"denom": "bnb"
|
|
||||||
},
|
|
||||||
"time_elapsed": "0",
|
|
||||||
"time_limited_current_supply": {
|
|
||||||
"amount": "0",
|
|
||||||
"denom": "bnb"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"atomic_swaps": [
|
"atomic_swaps": [
|
||||||
{
|
{
|
||||||
"amount": [
|
"amount": [
|
||||||
@ -40,6 +19,44 @@
|
|||||||
"status": "Completed",
|
"status": "Completed",
|
||||||
"timestamp": "1636034914"
|
"timestamp": "1636034914"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "19000000000",
|
||||||
|
"denom": "bnb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "1712118",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "Outgoing",
|
||||||
|
"expire_height": "1736797",
|
||||||
|
"random_number_hash": "280EB832A37F2265CC82F3957CE603AAD57BAD7038B876A1F28953AFA29FA1C3",
|
||||||
|
"recipient": "kava1r4v2zdhdalfj2ydazallqvrus9fkphmglhn6u6",
|
||||||
|
"recipient_other_chain": "bnb18nsgj50zvc4uq93w4j0ltz5gaxhwv7aq4qnq0p",
|
||||||
|
"sender": "kava1zw6gg4ztvly7zf25pa33mclav3spvj3ympxxna",
|
||||||
|
"sender_other_chain": "bnb1jh7uv2rm6339yue8k4mj9406k3509kr4wt5nxn",
|
||||||
|
"status": "Completed",
|
||||||
|
"timestamp": "1641976566"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "999595462080",
|
||||||
|
"denom": "busd"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "787122",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "Incoming",
|
||||||
|
"expire_height": "811799",
|
||||||
|
"random_number_hash": "BFB7CC82DA0E0C8556AC37843F5AB136B9A7A066054368F5948944282B414D83",
|
||||||
|
"recipient": "kava1eufgf0w9d7hf5mgtek4zr2upkxag9stmzx6unl",
|
||||||
|
"recipient_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
||||||
|
"sender": "kava1hh4x3a4suu5zyaeauvmv7ypf7w9llwlfufjmuu",
|
||||||
|
"sender_other_chain": "bnb1vl3wn4x8kqajg2j9wxa5y5amgzdxchutkxr6at",
|
||||||
|
"status": "Expired",
|
||||||
|
"timestamp": "1635694492"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"amount": [
|
"amount": [
|
||||||
{
|
{
|
||||||
@ -58,79 +75,138 @@
|
|||||||
"sender_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
"sender_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
||||||
"status": "Expired",
|
"status": "Expired",
|
||||||
"timestamp": "1635694492"
|
"timestamp": "1635694492"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "1000000",
|
||||||
|
"denom": "btcb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "0",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "Outgoing",
|
||||||
|
"expire_height": "1730589",
|
||||||
|
"random_number_hash": "A74EA1AB58D312FDF1E872D18583CACCF294E639DDA4F303939E9ADCEC081D93",
|
||||||
|
"recipient": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
||||||
|
"recipient_other_chain": "bnb1lhk5ndlgf5wz55t8k35cqj6h9l3m4l5ek2w7q6",
|
||||||
|
"sender": "kava1d2u28azje7rhqyjtxc2ex8q0cxxpw7dfm7ltq5",
|
||||||
|
"sender_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
||||||
|
"status": "Open",
|
||||||
|
"timestamp": "1641934114"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "1000000",
|
||||||
|
"denom": "btcb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "0",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "Incoming",
|
||||||
|
"expire_height": "1740000",
|
||||||
|
"random_number_hash": "39E9ADCEC081D93A74EA1A83CACCF294E639DDA4F3039B58D312FDF1E872D185",
|
||||||
|
"recipient": "kava1d2u28azje7rhqyjtxc2ex8q0cxxpw7dfm7ltq5",
|
||||||
|
"recipient_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
||||||
|
"sender": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
||||||
|
"sender_other_chain": "bnb1lhk5ndlgf5wz55t8k35cqj6h9l3m4l5ek2w7q6",
|
||||||
|
"status": "Open",
|
||||||
|
"timestamp": "1641934114"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"previous_block_time": "1970-01-01T00:00:00Z",
|
|
||||||
"params": {
|
"params": {
|
||||||
"asset_params": [
|
"asset_params": [
|
||||||
{
|
{
|
||||||
"denom": "btcb",
|
|
||||||
"coin_id": "0",
|
|
||||||
"supply_limit": {
|
|
||||||
"limit": "100000000000",
|
|
||||||
"time_limited": false,
|
|
||||||
"time_period": "0",
|
|
||||||
"time_based_limit": "0"
|
|
||||||
},
|
|
||||||
"active": true,
|
"active": true,
|
||||||
|
"coin_id": "0",
|
||||||
|
"denom": "btcb",
|
||||||
"deputy_address": "kava1kla4wl0ccv7u85cemvs3y987hqk0afcv7vue84",
|
"deputy_address": "kava1kla4wl0ccv7u85cemvs3y987hqk0afcv7vue84",
|
||||||
"fixed_fee": "2",
|
"fixed_fee": "2",
|
||||||
"min_swap_amount": "3",
|
"max_block_lock": "86400",
|
||||||
"max_swap_amount": "2000000000",
|
"max_swap_amount": "2000000000",
|
||||||
"min_block_lock": "24686",
|
"min_block_lock": "24686",
|
||||||
"max_block_lock": "86400"
|
"min_swap_amount": "3",
|
||||||
|
"supply_limit": {
|
||||||
|
"limit": "100000000000",
|
||||||
|
"time_based_limit": "0",
|
||||||
|
"time_limited": false,
|
||||||
|
"time_period": "0"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"denom": "xrpb",
|
|
||||||
"coin_id": "144",
|
|
||||||
"supply_limit": {
|
|
||||||
"limit": "2000000000000000",
|
|
||||||
"time_limited": false,
|
|
||||||
"time_period": "0",
|
|
||||||
"time_based_limit": "0"
|
|
||||||
},
|
|
||||||
"active": true,
|
"active": true,
|
||||||
|
"coin_id": "144",
|
||||||
|
"denom": "xrpb",
|
||||||
"deputy_address": "kava14q5sawxdxtpap5x5sgzj7v4sp3ucncjlpuk3hs",
|
"deputy_address": "kava14q5sawxdxtpap5x5sgzj7v4sp3ucncjlpuk3hs",
|
||||||
"fixed_fee": "100000",
|
"fixed_fee": "100000",
|
||||||
"min_swap_amount": "100001",
|
"max_block_lock": "86400",
|
||||||
"max_swap_amount": "250000000000000",
|
"max_swap_amount": "250000000000000",
|
||||||
"min_block_lock": "24686",
|
"min_block_lock": "24686",
|
||||||
"max_block_lock": "86400"
|
"min_swap_amount": "100001",
|
||||||
},
|
|
||||||
{
|
|
||||||
"denom": "bnb",
|
|
||||||
"coin_id": "714",
|
|
||||||
"supply_limit": {
|
|
||||||
"limit": "100000000000000",
|
|
||||||
"time_limited": false,
|
|
||||||
"time_period": "0",
|
|
||||||
"time_based_limit": "0"
|
|
||||||
},
|
|
||||||
"active": true,
|
|
||||||
"deputy_address": "kava1agcvt07tcw0tglu0hmwdecsnuxp2yd45f3avgm",
|
|
||||||
"fixed_fee": "1000",
|
|
||||||
"min_swap_amount": "1001",
|
|
||||||
"max_swap_amount": "500000000000",
|
|
||||||
"min_block_lock": "24686",
|
|
||||||
"max_block_lock": "86400"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"denom": "busd",
|
|
||||||
"coin_id": "727",
|
|
||||||
"supply_limit": {
|
"supply_limit": {
|
||||||
"limit": "2000000000000000",
|
"limit": "2000000000000000",
|
||||||
|
"time_based_limit": "0",
|
||||||
"time_limited": false,
|
"time_limited": false,
|
||||||
"time_period": "0",
|
"time_period": "0"
|
||||||
"time_based_limit": "0"
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
"active": true,
|
"active": true,
|
||||||
|
"coin_id": "714",
|
||||||
|
"denom": "bnb",
|
||||||
|
"deputy_address": "kava1agcvt07tcw0tglu0hmwdecsnuxp2yd45f3avgm",
|
||||||
|
"fixed_fee": "1000",
|
||||||
|
"max_block_lock": "86400",
|
||||||
|
"max_swap_amount": "500000000000",
|
||||||
|
"min_block_lock": "24686",
|
||||||
|
"min_swap_amount": "1001",
|
||||||
|
"supply_limit": {
|
||||||
|
"limit": "100000000000000",
|
||||||
|
"time_based_limit": "0",
|
||||||
|
"time_limited": false,
|
||||||
|
"time_period": "0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"active": true,
|
||||||
|
"coin_id": "727",
|
||||||
|
"denom": "busd",
|
||||||
"deputy_address": "kava1j9je7f6s0v6k7dmgv6u5k5ru202f5ffsc7af04",
|
"deputy_address": "kava1j9je7f6s0v6k7dmgv6u5k5ru202f5ffsc7af04",
|
||||||
"fixed_fee": "20000",
|
"fixed_fee": "20000",
|
||||||
"min_swap_amount": "20001",
|
"max_block_lock": "86400",
|
||||||
"max_swap_amount": "100000000000000",
|
"max_swap_amount": "100000000000000",
|
||||||
"min_block_lock": "24686",
|
"min_block_lock": "24686",
|
||||||
"max_block_lock": "86400"
|
"min_swap_amount": "20001",
|
||||||
|
"supply_limit": {
|
||||||
|
"limit": "2000000000000000",
|
||||||
|
"time_based_limit": "0",
|
||||||
|
"time_limited": false,
|
||||||
|
"time_period": "0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
},
|
||||||
|
"previous_block_time": "1970-01-01T00:00:00Z",
|
||||||
|
"supplies": [
|
||||||
|
{
|
||||||
|
"current_supply": {
|
||||||
|
"amount": "30467559434006",
|
||||||
|
"denom": "bnb"
|
||||||
|
},
|
||||||
|
"incoming_supply": {
|
||||||
|
"amount": "0",
|
||||||
|
"denom": "bnb"
|
||||||
|
},
|
||||||
|
"outgoing_supply": {
|
||||||
|
"amount": "0",
|
||||||
|
"denom": "bnb"
|
||||||
|
},
|
||||||
|
"time_elapsed": "0",
|
||||||
|
"time_limited_current_supply": {
|
||||||
|
"amount": "0",
|
||||||
|
"denom": "bnb"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
264
x/bep3/legacy/v0_16/testdata/v16-bep3.json
vendored
264
x/bep3/legacy/v0_16/testdata/v16-bep3.json
vendored
@ -1,114 +1,212 @@
|
|||||||
{
|
{
|
||||||
|
"atomic_swaps": [
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "1999955998",
|
||||||
|
"denom": "btcb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "1",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "SWAP_DIRECTION_INCOMING",
|
||||||
|
"expire_height": "838627",
|
||||||
|
"random_number_hash": "6F1CF8F2E13A0C0F0A359F54E47E4E265D766B8E006D2F00BDF994ABDEF1E9E4",
|
||||||
|
"recipient": "kava1fl2hs6y9vz986g5v52pdan9ga923n9mn5cxxkw",
|
||||||
|
"recipient_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
||||||
|
"sender": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
||||||
|
"sender_other_chain": "bnb19k9wuv2j7c7ck8tmc7kav0r0cnt3esmkrpf25x",
|
||||||
|
"status": "SWAP_STATUS_COMPLETED",
|
||||||
|
"timestamp": "1636034914"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "19000000000",
|
||||||
|
"denom": "bnb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "1",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "SWAP_DIRECTION_OUTGOING",
|
||||||
|
"expire_height": "1736797",
|
||||||
|
"random_number_hash": "280EB832A37F2265CC82F3957CE603AAD57BAD7038B876A1F28953AFA29FA1C3",
|
||||||
|
"recipient": "kava1r4v2zdhdalfj2ydazallqvrus9fkphmglhn6u6",
|
||||||
|
"recipient_other_chain": "bnb18nsgj50zvc4uq93w4j0ltz5gaxhwv7aq4qnq0p",
|
||||||
|
"sender": "kava1zw6gg4ztvly7zf25pa33mclav3spvj3ympxxna",
|
||||||
|
"sender_other_chain": "bnb1jh7uv2rm6339yue8k4mj9406k3509kr4wt5nxn",
|
||||||
|
"status": "SWAP_STATUS_COMPLETED",
|
||||||
|
"timestamp": "1641976566"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "999595462080",
|
||||||
|
"denom": "busd"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "787122",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "SWAP_DIRECTION_INCOMING",
|
||||||
|
"expire_height": "1",
|
||||||
|
"random_number_hash": "BFB7CC82DA0E0C8556AC37843F5AB136B9A7A066054368F5948944282B414D83",
|
||||||
|
"recipient": "kava1eufgf0w9d7hf5mgtek4zr2upkxag9stmzx6unl",
|
||||||
|
"recipient_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
||||||
|
"sender": "kava1hh4x3a4suu5zyaeauvmv7ypf7w9llwlfufjmuu",
|
||||||
|
"sender_other_chain": "bnb1vl3wn4x8kqajg2j9wxa5y5amgzdxchutkxr6at",
|
||||||
|
"status": "SWAP_STATUS_EXPIRED",
|
||||||
|
"timestamp": "1635694492"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "999595462080",
|
||||||
|
"denom": "busd"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "787122",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "SWAP_DIRECTION_OUTGOING",
|
||||||
|
"expire_height": "1",
|
||||||
|
"random_number_hash": "BFB7CC82DA0E0C8556AC37843F5AB136B9A7A066054368F5948944282B414D83",
|
||||||
|
"recipient": "kava1hh4x3a4suu5zyaeauvmv7ypf7w9llwlfufjmuu",
|
||||||
|
"recipient_other_chain": "bnb1vl3wn4x8kqajg2j9wxa5y5amgzdxchutkxr6at",
|
||||||
|
"sender": "kava1eufgf0w9d7hf5mgtek4zr2upkxag9stmzx6unl",
|
||||||
|
"sender_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
||||||
|
"status": "SWAP_STATUS_EXPIRED",
|
||||||
|
"timestamp": "1635694492"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "1000000",
|
||||||
|
"denom": "btcb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "0",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "SWAP_DIRECTION_OUTGOING",
|
||||||
|
"expire_height": "24687",
|
||||||
|
"random_number_hash": "A74EA1AB58D312FDF1E872D18583CACCF294E639DDA4F303939E9ADCEC081D93",
|
||||||
|
"recipient": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
||||||
|
"recipient_other_chain": "bnb1lhk5ndlgf5wz55t8k35cqj6h9l3m4l5ek2w7q6",
|
||||||
|
"sender": "kava1d2u28azje7rhqyjtxc2ex8q0cxxpw7dfm7ltq5",
|
||||||
|
"sender_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
||||||
|
"status": "SWAP_STATUS_OPEN",
|
||||||
|
"timestamp": "1641934114"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"amount": [
|
||||||
|
{
|
||||||
|
"amount": "1000000",
|
||||||
|
"denom": "btcb"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"closed_block": "0",
|
||||||
|
"cross_chain": true,
|
||||||
|
"direction": "SWAP_DIRECTION_INCOMING",
|
||||||
|
"expire_height": "1",
|
||||||
|
"random_number_hash": "39E9ADCEC081D93A74EA1A83CACCF294E639DDA4F3039B58D312FDF1E872D185",
|
||||||
|
"recipient": "kava1d2u28azje7rhqyjtxc2ex8q0cxxpw7dfm7ltq5",
|
||||||
|
"recipient_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
||||||
|
"sender": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
||||||
|
"sender_other_chain": "bnb1lhk5ndlgf5wz55t8k35cqj6h9l3m4l5ek2w7q6",
|
||||||
|
"status": "SWAP_STATUS_EXPIRED",
|
||||||
|
"timestamp": "1641934114"
|
||||||
|
}
|
||||||
|
],
|
||||||
"params": {
|
"params": {
|
||||||
"asset_params": [
|
"asset_params": [
|
||||||
{
|
{
|
||||||
"denom": "btcb",
|
|
||||||
"coin_id": "0",
|
|
||||||
"supply_limit": {
|
|
||||||
"limit": "100000000000",
|
|
||||||
"time_limited": false,
|
|
||||||
"time_period": "0s",
|
|
||||||
"time_based_limit": "0"
|
|
||||||
},
|
|
||||||
"active": true,
|
"active": true,
|
||||||
|
"coin_id": "0",
|
||||||
|
"denom": "btcb",
|
||||||
"deputy_address": "kava1kla4wl0ccv7u85cemvs3y987hqk0afcv7vue84",
|
"deputy_address": "kava1kla4wl0ccv7u85cemvs3y987hqk0afcv7vue84",
|
||||||
"fixed_fee": "2",
|
"fixed_fee": "2",
|
||||||
"min_swap_amount": "3",
|
"max_block_lock": "86400",
|
||||||
"max_swap_amount": "2000000000",
|
"max_swap_amount": "2000000000",
|
||||||
"min_block_lock": "24686",
|
"min_block_lock": "24686",
|
||||||
"max_block_lock": "86400"
|
"min_swap_amount": "3",
|
||||||
|
"supply_limit": {
|
||||||
|
"limit": "100000000000",
|
||||||
|
"time_based_limit": "0",
|
||||||
|
"time_limited": false,
|
||||||
|
"time_period": "0s"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"denom": "xrpb",
|
|
||||||
"coin_id": "144",
|
|
||||||
"supply_limit": {
|
|
||||||
"limit": "2000000000000000",
|
|
||||||
"time_limited": false,
|
|
||||||
"time_period": "0s",
|
|
||||||
"time_based_limit": "0"
|
|
||||||
},
|
|
||||||
"active": true,
|
"active": true,
|
||||||
|
"coin_id": "144",
|
||||||
|
"denom": "xrpb",
|
||||||
"deputy_address": "kava14q5sawxdxtpap5x5sgzj7v4sp3ucncjlpuk3hs",
|
"deputy_address": "kava14q5sawxdxtpap5x5sgzj7v4sp3ucncjlpuk3hs",
|
||||||
"fixed_fee": "100000",
|
"fixed_fee": "100000",
|
||||||
"min_swap_amount": "100001",
|
"max_block_lock": "86400",
|
||||||
"max_swap_amount": "250000000000000",
|
"max_swap_amount": "250000000000000",
|
||||||
"min_block_lock": "24686",
|
"min_block_lock": "24686",
|
||||||
"max_block_lock": "86400"
|
"min_swap_amount": "100001",
|
||||||
},
|
|
||||||
{
|
|
||||||
"denom": "bnb",
|
|
||||||
"coin_id": "714",
|
|
||||||
"supply_limit": {
|
|
||||||
"limit": "100000000000000",
|
|
||||||
"time_limited": false,
|
|
||||||
"time_period": "0s",
|
|
||||||
"time_based_limit": "0"
|
|
||||||
},
|
|
||||||
"active": true,
|
|
||||||
"deputy_address": "kava1agcvt07tcw0tglu0hmwdecsnuxp2yd45f3avgm",
|
|
||||||
"fixed_fee": "1000",
|
|
||||||
"min_swap_amount": "1001",
|
|
||||||
"max_swap_amount": "500000000000",
|
|
||||||
"min_block_lock": "24686",
|
|
||||||
"max_block_lock": "86400"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"denom": "busd",
|
|
||||||
"coin_id": "727",
|
|
||||||
"supply_limit": {
|
"supply_limit": {
|
||||||
"limit": "2000000000000000",
|
"limit": "2000000000000000",
|
||||||
|
"time_based_limit": "0",
|
||||||
"time_limited": false,
|
"time_limited": false,
|
||||||
"time_period": "0s",
|
"time_period": "0s"
|
||||||
"time_based_limit": "0"
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
"active": true,
|
"active": true,
|
||||||
|
"coin_id": "714",
|
||||||
|
"denom": "bnb",
|
||||||
|
"deputy_address": "kava1agcvt07tcw0tglu0hmwdecsnuxp2yd45f3avgm",
|
||||||
|
"fixed_fee": "1000",
|
||||||
|
"max_block_lock": "86400",
|
||||||
|
"max_swap_amount": "500000000000",
|
||||||
|
"min_block_lock": "24686",
|
||||||
|
"min_swap_amount": "1001",
|
||||||
|
"supply_limit": {
|
||||||
|
"limit": "100000000000000",
|
||||||
|
"time_based_limit": "0",
|
||||||
|
"time_limited": false,
|
||||||
|
"time_period": "0s"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"active": true,
|
||||||
|
"coin_id": "727",
|
||||||
|
"denom": "busd",
|
||||||
"deputy_address": "kava1j9je7f6s0v6k7dmgv6u5k5ru202f5ffsc7af04",
|
"deputy_address": "kava1j9je7f6s0v6k7dmgv6u5k5ru202f5ffsc7af04",
|
||||||
"fixed_fee": "20000",
|
"fixed_fee": "20000",
|
||||||
"min_swap_amount": "20001",
|
"max_block_lock": "86400",
|
||||||
"max_swap_amount": "100000000000000",
|
"max_swap_amount": "100000000000000",
|
||||||
"min_block_lock": "24686",
|
"min_block_lock": "24686",
|
||||||
"max_block_lock": "86400"
|
"min_swap_amount": "20001",
|
||||||
|
"supply_limit": {
|
||||||
|
"limit": "2000000000000000",
|
||||||
|
"time_based_limit": "0",
|
||||||
|
"time_limited": false,
|
||||||
|
"time_period": "0s"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"atomic_swaps": [
|
"previous_block_time": "1970-01-01T00:00:00Z",
|
||||||
{
|
|
||||||
"amount": [{ "denom": "btcb", "amount": "1999955998" }],
|
|
||||||
"random_number_hash": "6F1CF8F2E13A0C0F0A359F54E47E4E265D766B8E006D2F00BDF994ABDEF1E9E4",
|
|
||||||
"expire_height": "838627",
|
|
||||||
"timestamp": "1636034914",
|
|
||||||
"sender": "kava14qsmvzprqvhwmgql9fr0u3zv9n2qla8zhnm5pc",
|
|
||||||
"recipient": "kava1fl2hs6y9vz986g5v52pdan9ga923n9mn5cxxkw",
|
|
||||||
"sender_other_chain": "bnb19k9wuv2j7c7ck8tmc7kav0r0cnt3esmkrpf25x",
|
|
||||||
"recipient_other_chain": "bnb1xz3xqf4p2ygrw9lhp5g5df4ep4nd20vsywnmpr",
|
|
||||||
"closed_block": "838115",
|
|
||||||
"status": "SWAP_STATUS_COMPLETED",
|
|
||||||
"cross_chain": true,
|
|
||||||
"direction": "SWAP_DIRECTION_INCOMING"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"amount": [{ "denom": "busd", "amount": "999595462080" }],
|
|
||||||
"random_number_hash": "BFB7CC82DA0E0C8556AC37843F5AB136B9A7A066054368F5948944282B414D83",
|
|
||||||
"expire_height": "811799",
|
|
||||||
"timestamp": "1635694492",
|
|
||||||
"sender": "kava1eufgf0w9d7hf5mgtek4zr2upkxag9stmzx6unl",
|
|
||||||
"recipient": "kava1hh4x3a4suu5zyaeauvmv7ypf7w9llwlfufjmuu",
|
|
||||||
"sender_other_chain": "bnb10zq89008gmedc6rrwzdfukjk94swynd7dl97w8",
|
|
||||||
"recipient_other_chain": "bnb1vl3wn4x8kqajg2j9wxa5y5amgzdxchutkxr6at",
|
|
||||||
"closed_block": "787122",
|
|
||||||
"status": "SWAP_STATUS_EXPIRED",
|
|
||||||
"cross_chain": true,
|
|
||||||
"direction": "SWAP_DIRECTION_OUTGOING"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"supplies": [
|
"supplies": [
|
||||||
{
|
{
|
||||||
"incoming_supply": { "denom": "bnb", "amount": "0" },
|
"current_supply": {
|
||||||
"outgoing_supply": { "denom": "bnb", "amount": "0" },
|
"amount": "30467559434006",
|
||||||
"current_supply": { "denom": "bnb", "amount": "30467559434006" },
|
"denom": "bnb"
|
||||||
"time_limited_current_supply": { "denom": "bnb", "amount": "0" },
|
},
|
||||||
"time_elapsed": "0s"
|
"incoming_supply": {
|
||||||
|
"amount": "0",
|
||||||
|
"denom": "bnb"
|
||||||
|
},
|
||||||
|
"outgoing_supply": {
|
||||||
|
"amount": "0",
|
||||||
|
"denom": "bnb"
|
||||||
|
},
|
||||||
|
"time_elapsed": "0s",
|
||||||
|
"time_limited_current_supply": {
|
||||||
|
"amount": "0",
|
||||||
|
"denom": "bnb"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"previous_block_time": "1970-01-01T00:00:00Z"
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user