mirror of
https://github.com/onsonr/sonr.git
synced 2025-03-10 21:09:11 +00:00
64 lines
1.8 KiB
Go
64 lines
1.8 KiB
Go
|
package e2e
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/strangelove-ventures/interchaintest/v8"
|
||
|
"github.com/strangelove-ventures/interchaintest/v8/chain/cosmos"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestTokenFactory(t *testing.T) {
|
||
|
if testing.Short() {
|
||
|
t.Skip("skipping in short mode")
|
||
|
}
|
||
|
|
||
|
// setup base chain
|
||
|
chains := interchaintest.CreateChainWithConfig(t, NumberVals, NumberFullNodes, Name, ChainImage.Version, DefaultChainConfig)
|
||
|
chain := chains[0].(*cosmos.CosmosChain)
|
||
|
ctx, ic, _, _ := interchaintest.BuildInitialChain(t, chains, false)
|
||
|
|
||
|
users := interchaintest.GetAndFundTestUsers(t, ctx, "default", GenesisFundsAmount, chain, chain)
|
||
|
user := users[0]
|
||
|
user2 := users[1]
|
||
|
|
||
|
uaddr := user.FormattedAddress()
|
||
|
uaddr2 := user2.FormattedAddress()
|
||
|
|
||
|
node := chain.GetNode()
|
||
|
|
||
|
tfDenom, _, err := node.TokenFactoryCreateDenom(ctx, user, "ictestdenom", 2_500_00)
|
||
|
t.Log("TF Denom: ", tfDenom)
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
t.Log("Mint TF Denom to user")
|
||
|
node.TokenFactoryMintDenom(ctx, user.FormattedAddress(), tfDenom, 100)
|
||
|
if balance, err := chain.GetBalance(ctx, uaddr, tfDenom); err != nil {
|
||
|
t.Fatal(err)
|
||
|
} else if balance.Int64() != 100 {
|
||
|
t.Fatal("balance not 100")
|
||
|
}
|
||
|
|
||
|
t.Log("Mint TF Denom to another user")
|
||
|
node.TokenFactoryMintDenomTo(ctx, user.FormattedAddress(), tfDenom, 70, user2.FormattedAddress())
|
||
|
if balance, err := chain.GetBalance(ctx, uaddr2, tfDenom); err != nil {
|
||
|
t.Fatal(err)
|
||
|
} else if balance.Int64() != 70 {
|
||
|
t.Fatal("balance not 70")
|
||
|
}
|
||
|
|
||
|
t.Log("Change admin to uaddr2")
|
||
|
_, err = node.TokenFactoryChangeAdmin(ctx, user.KeyName(), tfDenom, uaddr2)
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
// ensure the admin is the contract
|
||
|
res, err := chain.TokenFactoryQueryAdmin(ctx, tfDenom)
|
||
|
require.NoError(t, err)
|
||
|
require.EqualValues(t, res.AuthorityMetadata.Admin, uaddr2, "admin not uaddr2. Did not properly transfer.")
|
||
|
|
||
|
t.Cleanup(func() {
|
||
|
_ = ic.Close()
|
||
|
})
|
||
|
|
||
|
}
|