From 7c8e4526dc72a3029dc751b724e2921290c61854 Mon Sep 17 00:00:00 2001 From: Yiming Zang <50607998+yzang2019@users.noreply.github.com> Date: Thu, 5 Dec 2024 06:59:02 -0800 Subject: [PATCH 1/6] Optimize getLogs with parallelization using fixed amount workers (#1974) * optimize getLogs * optimize getLogs * Parallelize execution for bloom as well * Fix build * Fix unit test --------- Co-authored-by: Tony Chen --- evmrpc/filter.go | 115 ++++++++++++++++++++++++++++-------------- evmrpc/filter_test.go | 2 - 2 files changed, 78 insertions(+), 39 deletions(-) diff --git a/evmrpc/filter.go b/evmrpc/filter.go index 9bda11057..205be0afc 100644 --- a/evmrpc/filter.go +++ b/evmrpc/filter.go @@ -5,6 +5,8 @@ import ( "encoding/json" "errors" "fmt" + "math" + "sort" "sync" "time" @@ -23,6 +25,8 @@ import ( const TxSearchPerPage = 10 +const MaxNumOfWorkers = 500 + type FilterType byte const ( @@ -283,14 +287,14 @@ type LogFetcher struct { includeSyntheticReceipts bool } -func (f *LogFetcher) GetLogsByFilters(ctx context.Context, crit filters.FilterCriteria, lastToHeight int64) ([]*ethtypes.Log, int64, error) { +func (f *LogFetcher) GetLogsByFilters(ctx context.Context, crit filters.FilterCriteria, lastToHeight int64) (res []*ethtypes.Log, end int64, err error) { bloomIndexes := EncodeFilters(crit.Addresses, crit.Topics) if crit.BlockHash != nil { block, err := blockByHashWithRetry(ctx, f.tmClient, crit.BlockHash[:], 1) if err != nil { return nil, 0, err } - return f.GetLogsForBlock(ctx, block, crit, bloomIndexes), block.Block.Height, nil + return f.GetLogsForBlock(block, crit, bloomIndexes), block.Block.Height, nil } applyOpenEndedLogLimit := f.filterConfig.maxLog > 0 && (crit.FromBlock == nil || crit.ToBlock == nil) latest := f.ctxProvider(LatestCtxHeight).BlockHeight() @@ -315,26 +319,84 @@ func (f *LogFetcher) GetLogsByFilters(ctx context.Context, crit filters.FilterCr if begin > end { return nil, 0, fmt.Errorf("fromBlock %d is after toBlock %d", begin, end) } - blockHeights := f.FindBlockesByBloom(begin, end, bloomIndexes) - res := []*ethtypes.Log{} - for _, height := range blockHeights { - h := height - block, err := blockByNumberWithRetry(ctx, f.tmClient, &h, 1) - if err != nil { - return nil, 0, err + + // Parallelize execution + numWorkers := int(math.Min(MaxNumOfWorkers, float64(end-begin+1))) + var wg sync.WaitGroup + tasksChan := make(chan int64, end-begin+1) + resultsChan := make(chan *ethtypes.Log, end-begin+1) + res = []*ethtypes.Log{} + defer func() { + if e := recover(); e != nil { + err = fmt.Errorf("%s", e) } - res = append(res, f.GetLogsForBlock(ctx, block, crit, bloomIndexes)...) - if applyOpenEndedLogLimit && int64(len(res)) >= f.filterConfig.maxLog { - res = res[:int(f.filterConfig.maxLog)] - break + }() + // Send tasks + go func() { + for height := begin; height <= end; height++ { + if height == 0 { + continue // Skip genesis height + } + tasksChan <- height + } + close(tasksChan) // Close the tasks channel to signal workers + }() + + // Worker function + worker := func() { + defer wg.Done() + for height := range tasksChan { + if len(crit.Addresses) != 0 || len(crit.Topics) != 0 { + providerCtx := f.ctxProvider(height) + blockBloom := f.k.GetBlockBloom(providerCtx) + if !MatchFilters(blockBloom, bloomIndexes) { + continue + } + } + h := height + block, berr := blockByNumberWithRetry(ctx, f.tmClient, &h, 1) + if berr != nil { + panic(berr) + } + matchedLogs := f.GetLogsForBlock(block, crit, bloomIndexes) + for _, log := range matchedLogs { + resultsChan <- log + } } } + // Start workers + for i := 0; i < numWorkers; i++ { + wg.Add(1) + go worker() + } + + // Collect results + go func() { + wg.Wait() + close(resultsChan) // Close the results channel after workers finish + }() + + // Aggregate results into the final slice + for result := range resultsChan { + res = append(res, result) + } + + // Sorting res in ascending order + sort.Slice(res, func(i, j int) bool { + return res[i].BlockNumber < res[j].BlockNumber + }) + + // Apply rate limit + if applyOpenEndedLogLimit && int64(len(res)) >= f.filterConfig.maxLog { + res = res[:int(f.filterConfig.maxLog)] + } + return res, end, nil } -func (f *LogFetcher) GetLogsForBlock(ctx context.Context, block *coretypes.ResultBlock, crit filters.FilterCriteria, filters [][]bloomIndexes) []*ethtypes.Log { - possibleLogs := f.FindLogsByBloom(block.Block.Height, filters) +func (f *LogFetcher) GetLogsForBlock(block *coretypes.ResultBlock, crit filters.FilterCriteria, filters [][]bloomIndexes) []*ethtypes.Log { + possibleLogs := f.FindLogsByBloom(block, filters) matchedLogs := utils.Filter(possibleLogs, func(l *ethtypes.Log) bool { return f.IsLogExactMatch(l, crit) }) for _, l := range matchedLogs { l.BlockHash = common.Hash(block.BlockID.Hash) @@ -342,29 +404,8 @@ func (f *LogFetcher) GetLogsForBlock(ctx context.Context, block *coretypes.Resul return matchedLogs } -func (f *LogFetcher) FindBlockesByBloom(begin, end int64, filters [][]bloomIndexes) (res []int64) { - //TODO: parallelize - for height := begin; height <= end; height++ { - if height == 0 { - // no block bloom on genesis height - continue - } - ctx := f.ctxProvider(height) - blockBloom := f.k.GetBlockBloom(ctx) - if MatchFilters(blockBloom, filters) { - res = append(res, height) - } - } - return -} - -func (f *LogFetcher) FindLogsByBloom(height int64, filters [][]bloomIndexes) (res []*ethtypes.Log) { +func (f *LogFetcher) FindLogsByBloom(block *coretypes.ResultBlock, filters [][]bloomIndexes) (res []*ethtypes.Log) { ctx := f.ctxProvider(LatestCtxHeight) - block, err := blockByNumberWithRetry(context.Background(), f.tmClient, &height, 1) - if err != nil { - fmt.Printf("error getting block when querying logs: %s\n", err) - return - } for _, hash := range getEvmTxHashesFromBlock(block, f.txConfig) { receipt, err := f.k.GetReceipt(ctx, hash) diff --git a/evmrpc/filter_test.go b/evmrpc/filter_test.go index 49570d3ff..d513f7534 100644 --- a/evmrpc/filter_test.go +++ b/evmrpc/filter_test.go @@ -6,8 +6,6 @@ import ( "time" "github.com/ethereum/go-ethereum/common" - // ethtypes "github.com/ethereum/go-ethereum/core/types" - // "github.com/sei-protocol/sei-chain/x/evm/types" "github.com/stretchr/testify/require" ) From 15333e5b3d6d20ab5e6f81f4f9d40c87f4e8bf73 Mon Sep 17 00:00:00 2001 From: Denys S <150304777+dssei@users.noreply.github.com> Date: Thu, 5 Dec 2024 11:23:37 -0800 Subject: [PATCH 2/6] Remove token factory config (#1971) * remove token factory config * move DenomAllowListMaxSize to params * formatting * add more tests * formatting * address review comments --- app/app.go | 6 - app/test_helpers.go | 4 - proto/tokenfactory/params.proto | 4 +- x/tokenfactory/keeper/config.go | 29 ---- x/tokenfactory/keeper/createdenom.go | 10 +- x/tokenfactory/keeper/createdenom_test.go | 36 ++--- x/tokenfactory/keeper/keeper.go | 11 +- x/tokenfactory/keeper/migrations.go | 9 +- x/tokenfactory/keeper/migrations_test.go | 39 +++++- x/tokenfactory/keeper/msg_server.go | 2 +- x/tokenfactory/module.go | 3 +- x/tokenfactory/types/keys.go | 1 + x/tokenfactory/types/params.go | 33 ++++- x/tokenfactory/types/params.pb.go | 52 +++++++- x/tokenfactory/types/params_test.go | 154 ++++++++++++++++++++++ 15 files changed, 303 insertions(+), 90 deletions(-) delete mode 100644 x/tokenfactory/keeper/config.go create mode 100644 x/tokenfactory/types/params_test.go diff --git a/app/app.go b/app/app.go index b81f37b54..2c0f204c3 100644 --- a/app/app.go +++ b/app/app.go @@ -534,11 +534,6 @@ func New( ).SetHooks(epochmoduletypes.NewMultiEpochHooks( app.MintKeeper.Hooks())) - tokenFactoryConfig, err := tokenfactorykeeper.ReadConfig(appOpts) - if err != nil { - panic(fmt.Sprintf("error reading token factory config due to %s", err)) - } - app.TokenFactoryKeeper = tokenfactorykeeper.NewKeeper( appCodec, app.keys[tokenfactorytypes.StoreKey], @@ -546,7 +541,6 @@ func New( app.AccountKeeper, app.BankKeeper.(bankkeeper.BaseKeeper).WithMintCoinsRestriction(tokenfactorytypes.NewTokenFactoryDenomMintCoinsRestriction()), app.DistrKeeper, - tokenFactoryConfig, ) // The last arguments can contain custom message handlers, and custom query handlers, diff --git a/app/test_helpers.go b/app/test_helpers.go index 5e36a976a..16c1c80c1 100644 --- a/app/test_helpers.go +++ b/app/test_helpers.go @@ -15,7 +15,6 @@ import ( slashingtypes "github.com/cosmos/cosmos-sdk/x/slashing/types" "github.com/cosmos/cosmos-sdk/x/staking/teststaking" stakingtypes "github.com/cosmos/cosmos-sdk/x/staking/types" - tokenfactorykeeper "github.com/sei-protocol/sei-chain/x/tokenfactory/keeper" "github.com/stretchr/testify/suite" abci "github.com/tendermint/tendermint/abci/types" "github.com/tendermint/tendermint/config" @@ -56,9 +55,6 @@ func (t TestAppOpts) Get(s string) interface{} { if s == FlagSCEnable { return t.useSc } - if s == tokenfactorykeeper.FlagDenomAllowListMaxSize { - return 3 - } return nil } diff --git a/proto/tokenfactory/params.proto b/proto/tokenfactory/params.proto index 2542d680e..af4efddd8 100644 --- a/proto/tokenfactory/params.proto +++ b/proto/tokenfactory/params.proto @@ -4,4 +4,6 @@ package seiprotocol.seichain.tokenfactory; option go_package = "github.com/sei-protocol/sei-chain/x/tokenfactory/types"; // Params defines the parameters for the tokenfactory module. -message Params {} +message Params { + uint32 denom_allowlist_max_size = 1; +} diff --git a/x/tokenfactory/keeper/config.go b/x/tokenfactory/keeper/config.go deleted file mode 100644 index 4fa177429..000000000 --- a/x/tokenfactory/keeper/config.go +++ /dev/null @@ -1,29 +0,0 @@ -package keeper - -import ( - servertypes "github.com/cosmos/cosmos-sdk/server/types" - "github.com/spf13/cast" -) - -type Config struct { - DenomAllowListMaxSize int `mapstructure:"denom_allow_list_max_size"` -} - -var DefaultConfig = Config{ - DenomAllowListMaxSize: 2000, -} - -const ( - FlagDenomAllowListMaxSize = "tokenfactory.denom_allow_list_max_size" -) - -func ReadConfig(opts servertypes.AppOptions) (Config, error) { - cfg := DefaultConfig // copy - var err error - if v := opts.Get(FlagDenomAllowListMaxSize); v != nil { - if cfg.DenomAllowListMaxSize, err = cast.ToIntE(v); err != nil { - return cfg, err - } - } - return cfg, nil -} diff --git a/x/tokenfactory/keeper/createdenom.go b/x/tokenfactory/keeper/createdenom.go index cdc354981..4394ffb61 100644 --- a/x/tokenfactory/keeper/createdenom.go +++ b/x/tokenfactory/keeper/createdenom.go @@ -79,7 +79,7 @@ func (k Keeper) validateUpdateDenom(ctx sdk.Context, msg *types.MsgUpdateDenom) return "", types.ErrDenomDoesNotExist.Wrapf("denom: %s", msg.GetDenom()) } - err = k.validateAllowList(msg.AllowList) + err = k.validateAllowList(ctx, msg.AllowList) if err != nil { return "", err } @@ -87,19 +87,19 @@ func (k Keeper) validateUpdateDenom(ctx sdk.Context, msg *types.MsgUpdateDenom) return msg.GetDenom(), nil } -func (k Keeper) validateAllowListSize(allowList *banktypes.AllowList) error { +func (k Keeper) validateAllowListSize(ctx sdk.Context, allowList *banktypes.AllowList) error { if allowList == nil { return types.ErrAllowListUndefined } - if len(allowList.Addresses) > k.config.DenomAllowListMaxSize { + if len(allowList.Addresses) > int(k.GetDenomAllowListMaxSize(ctx)) { return types.ErrAllowListTooLarge } return nil } -func (k Keeper) validateAllowList(allowList *banktypes.AllowList) error { - err := k.validateAllowListSize(allowList) +func (k Keeper) validateAllowList(ctx sdk.Context, allowList *banktypes.AllowList) error { + err := k.validateAllowListSize(ctx, allowList) if err != nil { return err } diff --git a/x/tokenfactory/keeper/createdenom_test.go b/x/tokenfactory/keeper/createdenom_test.go index e24cb5431..a81c9c117 100644 --- a/x/tokenfactory/keeper/createdenom_test.go +++ b/x/tokenfactory/keeper/createdenom_test.go @@ -2,7 +2,6 @@ package keeper_test import ( "fmt" - banktypes "github.com/cosmos/cosmos-sdk/x/bank/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -51,6 +50,9 @@ func (suite *KeeperTestSuite) TestMsgCreateDenom() { } func (suite *KeeperTestSuite) TestCreateDenom() { + params, _ := suite.queryClient.Params(suite.Ctx.Context(), &types.QueryParamsRequest{}) + allowListSize := params.Params.DenomAllowlistMaxSize + largeAllowList := make([]string, allowListSize+1) for _, tc := range []struct { desc string setup func() @@ -99,16 +101,10 @@ func (suite *KeeperTestSuite) TestCreateDenom() { valid: false, }, { - desc: "list is too large", - subdenom: "test", - allowList: &banktypes.AllowList{ - Addresses: []string{ - suite.TestAccs[0].String(), - suite.TestAccs[1].String(), - suite.TestAccs[2].String(), - suite.TestAccs[2].String()}, - }, - valid: false, + desc: "list is too large", + subdenom: "test", + allowList: &banktypes.AllowList{Addresses: largeAllowList}, + valid: false, }, } { suite.Run(fmt.Sprintf("Case %s", tc.desc), func() { @@ -158,6 +154,9 @@ func (suite *KeeperTestSuite) TestCreateDenom() { } func (suite *KeeperTestSuite) TestUpdateDenom() { + params, _ := suite.queryClient.Params(suite.Ctx.Context(), &types.QueryParamsRequest{}) + allowListSize := params.Params.DenomAllowlistMaxSize + largeAllowList := make([]string, allowListSize+1) for _, tc := range []struct { desc string setup func() @@ -222,17 +221,10 @@ func (suite *KeeperTestSuite) TestUpdateDenom() { types.NewMsgCreateDenom(suite.TestAccs[0].String(), "TLRG")) suite.Require().NoError(err) }, - denom: fmt.Sprintf("factory/%s/TLRG", suite.TestAccs[0].String()), - allowList: &banktypes.AllowList{ - Addresses: []string{ - suite.TestAccs[0].String(), - suite.TestAccs[1].String(), - suite.TestAccs[2].String(), - suite.TestAccs[2].String(), - }, - }, - valid: false, - errMsg: "allowlist too large", + denom: fmt.Sprintf("factory/%s/TLRG", suite.TestAccs[0].String()), + allowList: &banktypes.AllowList{Addresses: largeAllowList}, + valid: false, + errMsg: "allowlist too large", }, { desc: "denom having invalid characters", diff --git a/x/tokenfactory/keeper/keeper.go b/x/tokenfactory/keeper/keeper.go index ed4ecc02a..51a6d80a9 100644 --- a/x/tokenfactory/keeper/keeper.go +++ b/x/tokenfactory/keeper/keeper.go @@ -24,8 +24,6 @@ type ( accountKeeper types.AccountKeeper bankKeeper types.BankKeeper distrKeeper types.DistrKeeper - - config Config } ) @@ -37,7 +35,6 @@ func NewKeeper( accountKeeper types.AccountKeeper, bankKeeper types.BankKeeper, distrKeeper types.DistrKeeper, - config Config, ) Keeper { if !paramSpace.HasKeyTable() { paramSpace = paramSpace.WithKeyTable(types.ParamKeyTable()) @@ -50,8 +47,6 @@ func NewKeeper( accountKeeper: accountKeeper, bankKeeper: bankKeeper, distrKeeper: distrKeeper, - - config: config, } } @@ -86,3 +81,9 @@ func (k Keeper) CreateModuleAccount(ctx sdk.Context) { moduleAcc := authtypes.NewEmptyModuleAccount(types.ModuleName, authtypes.Minter, authtypes.Burner) k.accountKeeper.SetModuleAccount(ctx, moduleAcc) } + +func (k Keeper) GetDenomAllowListMaxSize(ctx sdk.Context) uint32 { + var denomAllowListMaxSize uint32 + k.paramSpace.Get(ctx, types.DenomAllowListMaxSizeKey, &denomAllowListMaxSize) + return denomAllowListMaxSize +} diff --git a/x/tokenfactory/keeper/migrations.go b/x/tokenfactory/keeper/migrations.go index b58f47c09..418ed89d9 100644 --- a/x/tokenfactory/keeper/migrations.go +++ b/x/tokenfactory/keeper/migrations.go @@ -25,7 +25,7 @@ func NewMigrator(keeper Keeper) Migrator { // Migrate2to3 migrates from version 2 to 3. func (m Migrator) Migrate2to3(ctx sdk.Context) error { // Reset params after removing the denom creation fee param - defaultParams := types.DefaultParams() + defaultParams := types.Params{} m.keeper.paramSpace.SetParamSet(ctx, &defaultParams) // We remove the denom creation fee whitelist in this migration @@ -58,6 +58,13 @@ func (m Migrator) Migrate3to4(ctx sdk.Context) error { return nil } +func (m Migrator) Migrate4to5(ctx sdk.Context) error { + // Add new params and set all to defaults + defaultParams := types.DefaultParams() + m.keeper.SetParams(ctx, defaultParams) + return nil +} + func (m Migrator) SetMetadata(denomMetadata *banktypes.Metadata) { if len(denomMetadata.Base) == 0 { panic(fmt.Errorf("no base exists for denom %v", denomMetadata)) diff --git a/x/tokenfactory/keeper/migrations_test.go b/x/tokenfactory/keeper/migrations_test.go index e0db6d88b..14ac521f6 100644 --- a/x/tokenfactory/keeper/migrations_test.go +++ b/x/tokenfactory/keeper/migrations_test.go @@ -59,7 +59,7 @@ func TestMigrate2to3(t *testing.T) { store.Set(oldCreatorSpecificPrefix, []byte("garbage value whitelist creator")) require.True(t, store.Has(oldCreateDenomFeeWhitelistPrefix)) require.True(t, store.Has(oldCreatorSpecificPrefix)) - newKeeper := NewKeeper(cdc, storeKey, paramsSubspace, nil, bankkeeper.NewBaseKeeper(cdc, bankstorekey, nil, paramsSubspace, nil), nil, Config{DenomAllowListMaxSize: 100}) + newKeeper := NewKeeper(cdc, storeKey, paramsSubspace, nil, bankkeeper.NewBaseKeeper(cdc, bankstorekey, nil, paramsSubspace, nil), nil) m := NewMigrator(newKeeper) err := m.Migrate2to3(ctx) require.Nil(t, err) @@ -80,7 +80,7 @@ func TestMigrate2to3(t *testing.T) { func TestMigrate3To4(t *testing.T) { // Test migration with all metadata denom metadata := banktypes.Metadata{Description: sdk.DefaultBondDenom, Base: sdk.DefaultBondDenom, Display: sdk.DefaultBondDenom, Name: sdk.DefaultBondDenom, Symbol: sdk.DefaultBondDenom} - keeper := NewKeeper(nil, nil, typesparams.Subspace{}, nil, nil, nil, Config{DenomAllowListMaxSize: 100}) + _, keeper := getStoreAndKeeper(t) m := NewMigrator(keeper) m.SetMetadata(&metadata) require.Equal(t, sdk.DefaultBondDenom, metadata.Display) @@ -94,3 +94,38 @@ func TestMigrate3To4(t *testing.T) { require.Equal(t, testDenom, metadata.Name) require.Equal(t, testDenom, metadata.Symbol) } + +func TestMigrate4To5(t *testing.T) { + stateStore, keeper := getStoreAndKeeper(t) + m := NewMigrator(keeper) + ctx := sdk.NewContext(stateStore, tmproto.Header{}, false, log.NewNopLogger()) + err := m.Migrate4to5(ctx) + require.NoError(t, err) + require.NotPanics(t, func() { m.keeper.GetParams(ctx) }) + params := m.keeper.GetParams(ctx) + require.Equal(t, types.DefaultParams(), params) +} + +func getStoreAndKeeper(t *testing.T) (store.CommitMultiStore, Keeper) { + storeKey := sdk.NewKVStoreKey(types.StoreKey) + bankStoreKey := sdk.NewKVStoreKey(banktypes.StoreKey) + memStoreKey := storetypes.NewMemoryStoreKey(types.MemStoreKey) + + db := tmdb.NewMemDB() + stateStore := store.NewCommitMultiStore(db) + stateStore.MountStoreWithDB(storeKey, sdk.StoreTypeIAVL, db) + stateStore.MountStoreWithDB(bankStoreKey, sdk.StoreTypeIAVL, db) + stateStore.MountStoreWithDB(memStoreKey, sdk.StoreTypeMemory, nil) + require.NoError(t, stateStore.LoadLatestVersion()) + + registry := codectypes.NewInterfaceRegistry() + cdc := codec.NewProtoCodec(registry) + + paramsSubspace := typesparams.NewSubspace(cdc, + codec.NewLegacyAmino(), + storeKey, + memStoreKey, + "TokenfactoryParams", + ) + return stateStore, NewKeeper(nil, nil, paramsSubspace, nil, nil, nil) +} diff --git a/x/tokenfactory/keeper/msg_server.go b/x/tokenfactory/keeper/msg_server.go index e9b347ef1..ecb6d658f 100644 --- a/x/tokenfactory/keeper/msg_server.go +++ b/x/tokenfactory/keeper/msg_server.go @@ -35,7 +35,7 @@ func (server msgServer) CreateDenom(goCtx context.Context, msg *types.MsgCreateD ) if msg.AllowList != nil { - err = server.validateAllowList(msg.AllowList) + err = server.validateAllowList(ctx, msg.AllowList) if err != nil { return nil, err } diff --git a/x/tokenfactory/module.go b/x/tokenfactory/module.go index c9279e187..af5e0bebc 100644 --- a/x/tokenfactory/module.go +++ b/x/tokenfactory/module.go @@ -149,6 +149,7 @@ func (am AppModule) RegisterServices(cfg module.Configurator) { _ = cfg.RegisterMigration(types.ModuleName, 1, func(ctx sdk.Context) error { return nil }) _ = cfg.RegisterMigration(types.ModuleName, 2, m.Migrate2to3) _ = cfg.RegisterMigration(types.ModuleName, 3, m.Migrate3to4) + _ = cfg.RegisterMigration(types.ModuleName, 4, m.Migrate4to5) } // RegisterInvariants registers the x/tokenfactory module's invariants. @@ -194,7 +195,7 @@ func (am AppModuleBasic) ValidateGenesisStream(cdc codec.JSONCodec, config clien } // ConsensusVersion implements ConsensusVersion. -func (AppModule) ConsensusVersion() uint64 { return 4 } +func (AppModule) ConsensusVersion() uint64 { return 5 } // BeginBlock executes all ABCI BeginBlock logic respective to the tokenfactory module. func (am AppModule) BeginBlock(_ sdk.Context, _ abci.RequestBeginBlock) {} diff --git a/x/tokenfactory/types/keys.go b/x/tokenfactory/types/keys.go index 8fc6214de..269cc875c 100644 --- a/x/tokenfactory/types/keys.go +++ b/x/tokenfactory/types/keys.go @@ -30,6 +30,7 @@ var ( CreatorPrefixKey = "creator" AdminPrefixKey = "admin" CreateDenomFeeWhitelistKey = "createdenomfeewhitelist" + DenomAllowListMaxSizeKey = []byte("allowlistmaxsize") ) // GetDenomPrefixStore returns the store prefix where all the data associated with a specific denom diff --git a/x/tokenfactory/types/params.go b/x/tokenfactory/types/params.go index 52c8ce5c7..544a837c4 100644 --- a/x/tokenfactory/types/params.go +++ b/x/tokenfactory/types/params.go @@ -1,25 +1,46 @@ package types import ( + "fmt" + paramtypes "github.com/cosmos/cosmos-sdk/x/params/types" ) -// ParamTable for tokenfactory module. +// DefaultDenomAllowListMaxSize default denom allowlist max size and can be overridden by governance proposal. +const DefaultDenomAllowListMaxSize = 2000 + +// ParamKeyTable ParamTable for tokenfactory module. func ParamKeyTable() paramtypes.KeyTable { return paramtypes.NewKeyTable().RegisterParamSet(&Params{}) } -// default tokenfactory module parameters. +// DefaultParams default tokenfactory module parameters. func DefaultParams() Params { - return Params{} + return Params{ + DenomAllowlistMaxSize: DefaultDenomAllowListMaxSize, + } } -// validate params. +// Validate validate params. func (p Params) Validate() error { + if err := validateDenomAllowListMaxSize(p.DenomAllowlistMaxSize); err != nil { + return err + } return nil } -// Implements params.ParamSet. +// ParamSetPairs Implements params.ParamSet. func (p *Params) ParamSetPairs() paramtypes.ParamSetPairs { - return paramtypes.ParamSetPairs{} + return paramtypes.ParamSetPairs{ + paramtypes.NewParamSetPair(DenomAllowListMaxSizeKey, &p.DenomAllowlistMaxSize, validateDenomAllowListMaxSize), + } +} + +// validateDenomAllowListMaxSize validates a parameter value is within a valid range. +func validateDenomAllowListMaxSize(i interface{}) error { + _, ok := i.(uint32) + if !ok { + return fmt.Errorf("invalid parameter type: %T", i) + } + return nil } diff --git a/x/tokenfactory/types/params.pb.go b/x/tokenfactory/types/params.pb.go index 74d3c5280..5061f269f 100644 --- a/x/tokenfactory/types/params.pb.go +++ b/x/tokenfactory/types/params.pb.go @@ -24,6 +24,7 @@ const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package // Params defines the parameters for the tokenfactory module. type Params struct { + DenomAllowlistMaxSize uint32 `protobuf:"varint,1,opt,name=denom_allowlist_max_size,json=denomAllowlistMaxSize,proto3" json:"denom_allowlist_max_size,omitempty"` } func (m *Params) Reset() { *m = Params{} } @@ -59,6 +60,13 @@ func (m *Params) XXX_DiscardUnknown() { var xxx_messageInfo_Params proto.InternalMessageInfo +func (m *Params) GetDenomAllowlistMaxSize() uint32 { + if m != nil { + return m.DenomAllowlistMaxSize + } + return 0 +} + func init() { proto.RegisterType((*Params)(nil), "seiprotocol.seichain.tokenfactory.Params") } @@ -66,16 +74,19 @@ func init() { func init() { proto.RegisterFile("tokenfactory/params.proto", fileDescriptor_0f39a375875b281a) } var fileDescriptor_0f39a375875b281a = []byte{ - // 146 bytes of a gzipped FileDescriptorProto + // 194 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x2c, 0xc9, 0xcf, 0x4e, 0xcd, 0x4b, 0x4b, 0x4c, 0x2e, 0xc9, 0x2f, 0xaa, 0xd4, 0x2f, 0x48, 0x2c, 0x4a, 0xcc, 0x2d, 0xd6, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0x52, 0x2c, 0x4e, 0xcd, 0x04, 0xb3, 0x92, 0xf3, 0x73, 0xf4, - 0x8a, 0x53, 0x33, 0x93, 0x33, 0x12, 0x33, 0xf3, 0xf4, 0x90, 0xd5, 0x2b, 0x71, 0x70, 0xb1, 0x05, - 0x80, 0xb5, 0x38, 0x05, 0x9c, 0x78, 0x24, 0xc7, 0x78, 0xe1, 0x91, 0x1c, 0xe3, 0x83, 0x47, 0x72, - 0x8c, 0x13, 0x1e, 0xcb, 0x31, 0x5c, 0x78, 0x2c, 0xc7, 0x70, 0xe3, 0xb1, 0x1c, 0x43, 0x94, 0x59, - 0x7a, 0x66, 0x49, 0x46, 0x69, 0x92, 0x5e, 0x72, 0x7e, 0xae, 0x7e, 0x71, 0x6a, 0xa6, 0x2e, 0xcc, - 0x48, 0x30, 0x07, 0x6c, 0xa6, 0x7e, 0x85, 0x3e, 0x8a, 0x2b, 0x4a, 0x2a, 0x0b, 0x52, 0x8b, 0x93, - 0xd8, 0xc0, 0x0a, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0x32, 0xb1, 0x98, 0xb4, 0xa2, 0x00, + 0x8a, 0x53, 0x33, 0x93, 0x33, 0x12, 0x33, 0xf3, 0xf4, 0x90, 0xd5, 0x2b, 0x39, 0x72, 0xb1, 0x05, + 0x80, 0xb5, 0x08, 0x99, 0x73, 0x49, 0xa4, 0xa4, 0xe6, 0xe5, 0xe7, 0xc6, 0x27, 0xe6, 0xe4, 0xe4, + 0x97, 0xe7, 0x64, 0x16, 0x97, 0xc4, 0xe7, 0x26, 0x56, 0xc4, 0x17, 0x67, 0x56, 0xa5, 0x4a, 0x30, + 0x2a, 0x30, 0x6a, 0xf0, 0x06, 0x89, 0x82, 0xe5, 0x1d, 0x61, 0xd2, 0xbe, 0x89, 0x15, 0xc1, 0x99, + 0x55, 0xa9, 0x4e, 0x01, 0x27, 0x1e, 0xc9, 0x31, 0x5e, 0x78, 0x24, 0xc7, 0xf8, 0xe0, 0x91, 0x1c, + 0xe3, 0x84, 0xc7, 0x72, 0x0c, 0x17, 0x1e, 0xcb, 0x31, 0xdc, 0x78, 0x2c, 0xc7, 0x10, 0x65, 0x96, + 0x9e, 0x59, 0x92, 0x51, 0x9a, 0xa4, 0x97, 0x9c, 0x9f, 0xab, 0x5f, 0x9c, 0x9a, 0xa9, 0x0b, 0x73, + 0x0b, 0x98, 0x03, 0x76, 0x8c, 0x7e, 0x85, 0x3e, 0x8a, 0xf3, 0x4b, 0x2a, 0x0b, 0x52, 0x8b, 0x93, + 0xd8, 0xc0, 0x0a, 0x8d, 0x01, 0x01, 0x00, 0x00, 0xff, 0xff, 0xbf, 0x4a, 0x3c, 0xf9, 0xdb, 0x00, 0x00, 0x00, } @@ -99,6 +110,11 @@ func (m *Params) MarshalToSizedBuffer(dAtA []byte) (int, error) { _ = i var l int _ = l + if m.DenomAllowlistMaxSize != 0 { + i = encodeVarintParams(dAtA, i, uint64(m.DenomAllowlistMaxSize)) + i-- + dAtA[i] = 0x8 + } return len(dAtA) - i, nil } @@ -119,6 +135,9 @@ func (m *Params) Size() (n int) { } var l int _ = l + if m.DenomAllowlistMaxSize != 0 { + n += 1 + sovParams(uint64(m.DenomAllowlistMaxSize)) + } return n } @@ -157,6 +176,25 @@ func (m *Params) Unmarshal(dAtA []byte) error { return fmt.Errorf("proto: Params: illegal tag %d (wire type %d)", fieldNum, wire) } switch fieldNum { + case 1: + if wireType != 0 { + return fmt.Errorf("proto: wrong wireType = %d for field DenomAllowlistMaxSize", wireType) + } + m.DenomAllowlistMaxSize = 0 + for shift := uint(0); ; shift += 7 { + if shift >= 64 { + return ErrIntOverflowParams + } + if iNdEx >= l { + return io.ErrUnexpectedEOF + } + b := dAtA[iNdEx] + iNdEx++ + m.DenomAllowlistMaxSize |= uint32(b&0x7F) << shift + if b < 0x80 { + break + } + } default: iNdEx = preIndex skippy, err := skipParams(dAtA[iNdEx:]) diff --git a/x/tokenfactory/types/params_test.go b/x/tokenfactory/types/params_test.go new file mode 100644 index 000000000..b0c32db5c --- /dev/null +++ b/x/tokenfactory/types/params_test.go @@ -0,0 +1,154 @@ +package types + +import ( + "bytes" + "github.com/cosmos/cosmos-sdk/x/params/types" + "reflect" + "testing" +) + +func TestDefaultParams(t *testing.T) { + tests := []struct { + name string + want Params + }{ + { + name: "default params", + want: Params{ + DenomAllowlistMaxSize: 2000, + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := DefaultParams(); !reflect.DeepEqual(got, tt.want) { + t.Errorf("DefaultParams() = %v, want %v", got, tt.want) + } + }) + } +} + +func TestParams_Validate(t *testing.T) { + type fields struct { + DenomAllowlistMaxSize uint32 + } + tests := []struct { + name string + fields fields + wantErr bool + errMsg string + }{ + { + name: "valid params", + fields: fields{ + DenomAllowlistMaxSize: 2000, + }, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + p := Params{ + DenomAllowlistMaxSize: tt.fields.DenomAllowlistMaxSize, + } + err := p.Validate() + if (err != nil) != tt.wantErr { + t.Errorf("Validate() error = %v, wantErr %v", err, tt.wantErr) + } + if err != nil && err.Error() != tt.errMsg { + t.Errorf("Validate() error message = %v, want %v", err.Error(), tt.errMsg) + } + }) + } +} + +func Test_validateDenomAllowListMaxSize(t *testing.T) { + type args struct { + i interface{} + } + tests := []struct { + name string + args args + wantErr bool + errMsg string + }{ + { + name: "valid denom allowlist max size", + args: args{ + i: uint32(2000), + }, + wantErr: false, + }, + { + name: "invalid denom allowlist max size", + args: args{ + i: int32(-1), + }, + wantErr: true, + errMsg: "invalid parameter type: int32", + }, + { + name: "invalid denom allowlist large int value", + args: args{ + i: 20000000000000, + }, + wantErr: true, + errMsg: "invalid parameter type: int", + }, + { + name: "invalid denom allowlist max size type", + args: args{ + i: "2000", + }, + wantErr: true, + errMsg: "invalid parameter type: string", + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + err := validateDenomAllowListMaxSize(tt.args.i) + if (err != nil) != tt.wantErr { + t.Errorf("validateDenomAllowListMaxSize() error = %v, wantErr %v", err, tt.wantErr) + } + if err != nil && err.Error() != tt.errMsg { + t.Errorf("validateDenomAllowListMaxSize() error message = %v, want %v", err.Error(), tt.errMsg) + } + }) + } +} + +func TestParams_ParamSetPairs(t *testing.T) { + type fields struct { + DenomAllowlistMaxSize uint32 + } + allowListSize := uint32(20) + params := &Params{DenomAllowlistMaxSize: allowListSize} + tests := []struct { + name string + fields fields + want types.ParamSetPairs + }{ + { + name: "valid param set pairs", + fields: fields{ + DenomAllowlistMaxSize: allowListSize, + }, + want: types.ParamSetPairs{ + types.NewParamSetPair([]byte("allowlistmaxsize"), + ¶ms.DenomAllowlistMaxSize, + validateDenomAllowListMaxSize), + }, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + p := params + got := p.ParamSetPairs() + if len(got) != len(tt.want) || !bytes.Equal(got[0].Key, tt.want[0].Key) || + got[0].Value != tt.want[0].Value || + reflect.ValueOf(got[0].ValidatorFn).Pointer() != reflect.ValueOf(tt.want[0].ValidatorFn).Pointer() { + t.Errorf("ParamSetPairs() = %v, want %v", got, tt.want) + } + }) + } +} From 5ddb9ab3f50fda1c02f1fd7213074a42c5979ff9 Mon Sep 17 00:00:00 2001 From: dvli2007 Date: Thu, 5 Dec 2024 17:30:02 -0500 Subject: [PATCH 3/6] Pointers contracts: support for ERC1155 and CW1155 contracts (#1755) * wip cw1155 pointer * cleanup todos * sync events with current standard * fix query BalanceOfBatch * fix import * Fix up cwerc1155 compiled files * Add 1155 requests into bindings * queries * follow same coding style * Add cwerc1155.wasm binary to `/contracts` * Add go code to support new pointer contract * Fix typo * Add updated protobuf files * Fix up tests * Deprecate pointer proposals * queries * follow same coding style * safetransfer functions, royalyinfo, set approval * adding in transfer and approval tests * solc and abigen * clean up unused artifacts * Add all go bindings * return unsupported for methods not supported in erc standard * fix query BalanceOfBatch response * Add new test files * fix Erc1155BalanceOfBatchResponse * More testing * Update cwerc1155.wasm * More tests * return true/false instead of erroring in query IsApprovedForAll * use correct response for query BalanceOfBatch * pass optional token id field to evm query TotalSupply * remove todos * remove AllTokenInfo query * Fix balances query struct * Update and rebuild CW1155 pointer * Add new cw1155 wasms * merge * Update cwerc1155.wasm * Fix up ERC1155 pointer tests * balanceOfBatch * adding in expect calls * remove unused import * Round of updates to cw1155 contracts * Update cw1155 pointer tests * Fix: missing ERC1155TransferPayload * removing unnecessary return * Update binary * Fix balance of batch * add minor checks * Update integration test with latest main updates * Fix up erc721-payload and erc1155-payload cli commands * Lint code * Update integration test with new pointer contract code id * Map CW1155 events to EVM * updates from cw1155 base * update cw1155 base * Test events emissions for cw1155 events * Update wasm build for cwerc1155 * Fix integration test 1 * update cw1155 cargo, add optimize script to cargo * Update wasm builds * Add migrations for 1155s * Code quality * Remove unnecessary lines * updates from audit on cw1155 standard * [P1-I-01] Validate parameters in the "balanceOfBatch" function * build pointer wasm from audit changes * update pointer wasms in other places * [P1-H-01] Fix "safeBatchTransferFrom" - change to "onERC1155BatchReceived" * [P1-I-02] Consider adding "ERC1155Burnable" to "CW1155ERC1155Pointer" * Fix CW1155ERC1155Pointer.sol styles * Update ERC1155 pointer artifacts * send funds if empty msg in send and send_batch * rebuild cw1155 pointer/standard * fix version issue * cw1155_base wasm fix * Update and fix tests * Fix tests * Remove events from 1155 pointer so as not to double-emit * Linting --------- Co-authored-by: shab Co-authored-by: Mr Meat <77750450+mr-meat@users.noreply.github.com> Co-authored-by: scottirvine <136702693+scottirvine@users.noreply.github.com> --- .gitignore | 1 + app/receipt.go | 157 ++ app/receipt_test.go | 432 ++++++ contracts/src/CW1155ERC1155Pointer.sol | 334 ++++ contracts/src/ERC1155.sol | 49 + contracts/test/CW1155ERC1155PointerTest.t.sol | 638 ++++++++ contracts/test/CW1155toERC1155PointerTest.js | 214 +++ contracts/test/CW721ERC721PointerTest.t.sol | 36 + contracts/test/ERC1155toCW1155PointerTest.js | 157 ++ contracts/test/ERC721toCW721PointerTest.js | 6 +- contracts/test/lib.js | 60 + contracts/wasm/cw1155_base.wasm | Bin 0 -> 454483 bytes contracts/wasm/cw1155_royalties.wasm | Bin 0 -> 510887 bytes ...81_royalties.wasm => cw721_royalties.wasm} | Bin contracts/wasm/cwerc1155.wasm | Bin 0 -> 381230 bytes docs/swagger-ui/swagger.yml | 6 + example/contracts/erc1155/ERC1155Example.abi | 1 + example/contracts/erc1155/ERC1155Example.bin | 1 + example/contracts/erc1155/ERC1155Example.sol | 60 + example/contracts/erc1155/erc1155.go | 1234 +++++++++++++++ example/contracts/erc721/README.md | 2 +- example/cosmwasm/cw1155/Cargo.lock | 1125 ++++++++++++++ example/cosmwasm/cw1155/Cargo.toml | 42 + .../cosmwasm/cw1155/artifacts/checksums.txt | 1 + .../cosmwasm/cw1155/artifacts/cwerc1155.wasm | Bin 0 -> 381230 bytes example/cosmwasm/cw1155/src/contract.rs | 438 ++++++ example/cosmwasm/cw1155/src/error.rs | 11 + example/cosmwasm/cw1155/src/lib.rs | 5 + example/cosmwasm/cw1155/src/msg.rs | 206 +++ example/cosmwasm/cw1155/src/querier.rs | 174 +++ example/cosmwasm/cw1155/src/state.rs | 3 + .../scripts/evm_interoperability_tests.sh | 2 + integration_test/seidb/state_store_test.yaml | 16 +- precompiles/common/expected_keepers.go | 5 + precompiles/pointer/Pointer.sol | 4 + precompiles/pointer/abi.json | 2 +- precompiles/pointer/pointer.go | 37 + precompiles/pointerview/Pointerview.sol | 4 + precompiles/pointerview/abi.json | 2 +- precompiles/pointerview/pointerview.go | 15 + precompiles/pointerview/pointerview_test.go | 17 + precompiles/wasmd/wasmd.go | 6 +- precompiles/wasmd/wasmd_test.go | 4 +- proto/evm/enums.proto | 2 + proto/evm/gov.proto | 26 +- wasmbinding/queries.go | 36 + x/evm/artifacts/artifacts.go | 5 + .../artifacts/cw1155/CW1155ERC1155Pointer.abi | 1 + .../artifacts/cw1155/CW1155ERC1155Pointer.bin | 1 + x/evm/artifacts/cw1155/artifacts.go | 83 + x/evm/artifacts/cw1155/cw1155.go | 1379 +++++++++++++++++ x/evm/artifacts/erc1155/artifacts.go | 22 + x/evm/artifacts/erc1155/cwerc1155.wasm | Bin 0 -> 381230 bytes x/evm/client/cli/native_tx.go | 6 +- x/evm/client/cli/query.go | 85 +- x/evm/client/wasm/bindings/queries.go | 245 ++- x/evm/client/wasm/query.go | 428 ++++- x/evm/client/wasm/query_test.go | 205 ++- x/evm/gov.go | 8 + x/evm/handler.go | 4 + x/evm/integration_test.go | 228 ++- x/evm/keeper/genesis.go | 11 + x/evm/keeper/grpc_query.go | 39 + x/evm/keeper/grpc_query_test.go | 36 + x/evm/keeper/msg_server.go | 12 + x/evm/keeper/msg_server_test.go | 83 +- x/evm/keeper/pointer.go | 91 ++ x/evm/keeper/pointer_test.go | 145 ++ x/evm/keeper/pointer_upgrade.go | 10 + x/evm/keeper/pointer_upgrade_test.go | 27 + x/evm/migrations/migrate_all_pointers.go | 63 +- x/evm/migrations/migrate_all_pointers_test.go | 35 +- x/evm/migrations/store_cw_pointer_code.go | 14 +- x/evm/module.go | 12 +- x/evm/module_test.go | 2 +- x/evm/pointer_abi.json | 2 +- x/evm/types/codec.go | 2 + x/evm/types/enums.pb.go | 43 +- x/evm/types/gov.go | 85 +- x/evm/types/gov.pb.go | 725 ++++++++- x/evm/types/keys.go | 26 +- x/evm/types/message_register_pointer.go | 4 + 82 files changed, 9586 insertions(+), 152 deletions(-) create mode 100644 contracts/src/CW1155ERC1155Pointer.sol create mode 100644 contracts/src/ERC1155.sol create mode 100644 contracts/test/CW1155ERC1155PointerTest.t.sol create mode 100644 contracts/test/CW1155toERC1155PointerTest.js create mode 100644 contracts/test/ERC1155toCW1155PointerTest.js create mode 100644 contracts/wasm/cw1155_base.wasm create mode 100644 contracts/wasm/cw1155_royalties.wasm rename contracts/wasm/{cw2981_royalties.wasm => cw721_royalties.wasm} (100%) create mode 100644 contracts/wasm/cwerc1155.wasm create mode 100644 example/contracts/erc1155/ERC1155Example.abi create mode 100644 example/contracts/erc1155/ERC1155Example.bin create mode 100644 example/contracts/erc1155/ERC1155Example.sol create mode 100644 example/contracts/erc1155/erc1155.go create mode 100644 example/cosmwasm/cw1155/Cargo.lock create mode 100644 example/cosmwasm/cw1155/Cargo.toml create mode 100644 example/cosmwasm/cw1155/artifacts/checksums.txt create mode 100644 example/cosmwasm/cw1155/artifacts/cwerc1155.wasm create mode 100644 example/cosmwasm/cw1155/src/contract.rs create mode 100644 example/cosmwasm/cw1155/src/error.rs create mode 100644 example/cosmwasm/cw1155/src/lib.rs create mode 100644 example/cosmwasm/cw1155/src/msg.rs create mode 100644 example/cosmwasm/cw1155/src/querier.rs create mode 100644 example/cosmwasm/cw1155/src/state.rs create mode 100644 x/evm/artifacts/cw1155/CW1155ERC1155Pointer.abi create mode 100644 x/evm/artifacts/cw1155/CW1155ERC1155Pointer.bin create mode 100644 x/evm/artifacts/cw1155/artifacts.go create mode 100644 x/evm/artifacts/cw1155/cw1155.go create mode 100644 x/evm/artifacts/erc1155/artifacts.go create mode 100644 x/evm/artifacts/erc1155/cwerc1155.wasm diff --git a/.gitignore b/.gitignore index 1af6db532..a585bc1f4 100644 --- a/.gitignore +++ b/.gitignore @@ -49,6 +49,7 @@ coverage.out example/cosmwasm/echo/target example/cosmwasm/cw20/target example/cosmwasm/cw721/target +example/cosmwasm/cw1155/target # Solidity contracts artifacts contracts/artifacts diff --git a/app/receipt.go b/app/receipt.go index f4968e3c5..31b55a61c 100644 --- a/app/receipt.go +++ b/app/receipt.go @@ -5,6 +5,7 @@ import ( "fmt" "math" "math/big" + "strings" wasmtypes "github.com/CosmWasm/wasmd/x/wasm/types" sdk "github.com/cosmos/cosmos-sdk/types" @@ -24,6 +25,10 @@ var ERC20TransferTopic = common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952 var ERC721TransferTopic = common.HexToHash("0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef") var ERC721ApprovalTopic = common.HexToHash("0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925") var ERC721ApproveAllTopic = common.HexToHash("0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31") +var ERC1155TransferSingleTopic = common.HexToHash("0xc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62") +var ERC1155TransferBatchTopic = common.HexToHash("0x4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb") +var ERC1155ApprovalForAllTopic = common.HexToHash("0x17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31") +var ERC1155URITopic = common.HexToHash("0x6bb7ff708619ba0610cba295a58592e0451dee2622938c8755667688daf3529b") var EmptyHash = common.HexToHash("0x0") var TrueHash = common.HexToHash("0x1") @@ -91,6 +96,16 @@ func (app *App) AddCosmosEventsToEVMReceiptIfApplicable(ctx sdk.Context, tx sdk. } continue } + // check if there is a ERC1155 pointer to contract Addr + pointerAddr, _, exists = app.EvmKeeper.GetERC1155CW1155Pointer(ctx, contractAddr) + if exists { + log, eligible := app.translateCW1155Event(ctx, wasmEvent, pointerAddr, contractAddr) + if eligible { + log.Index = uint(len(logs)) + logs = append(logs, log) + } + continue + } } if len(logs) == 0 { return @@ -319,6 +334,99 @@ func (app *App) translateCW721Event(ctx sdk.Context, wasmEvent abci.Event, point return nil, false } +func (app *App) translateCW1155Event(ctx sdk.Context, wasmEvent abci.Event, pointerAddr common.Address, contractAddr string) (*ethtypes.Log, bool) { + action, found := GetAttributeValue(wasmEvent, "action") + if !found { + return nil, false + } + var topics []common.Hash + switch action { + case "transfer_single", "mint_single", "burn_single": + fromHash := EmptyHash + toHash := EmptyHash + if action != "mint_single" { + fromHash = app.GetEvmAddressAttribute(ctx, wasmEvent, "owner") + } + if action != "burn_single" { + toHash = app.GetEvmAddressAttribute(ctx, wasmEvent, "recipient") + } + topics = []common.Hash{ + ERC1155TransferSingleTopic, + app.GetEvmAddressAttribute(ctx, wasmEvent, "sender"), + fromHash, + toHash, + } + tokenID := GetTokenIDAttribute(wasmEvent) + if tokenID == nil { + return nil, false + } + tokenAmount, found := GetAmountAttribute(wasmEvent) + if !found { + return nil, false + } + dataHash1 := common.BigToHash(tokenID).Bytes() + dataHash2 := common.BigToHash(tokenAmount).Bytes() + return ðtypes.Log{ + Address: pointerAddr, + Topics: topics, + Data: append(dataHash1, dataHash2...), + }, true + case "transfer_batch", "mint_batch", "burn_batch": + fromHash := EmptyHash + toHash := EmptyHash + if action != "mint_batch" { + fromHash = app.GetEvmAddressAttribute(ctx, wasmEvent, "owner") + } + if action != "burn_batch" { + toHash = app.GetEvmAddressAttribute(ctx, wasmEvent, "recipient") + } + topics = []common.Hash{ + ERC1155TransferBatchTopic, + app.GetEvmAddressAttribute(ctx, wasmEvent, "sender"), + fromHash, + toHash, + } + tokenIDs, found := GetTokenIDsAttribute(wasmEvent) + if !found { + return nil, false + } + tokenAmounts, found := GetAmountsAttribute(wasmEvent) + if !found { + return nil, false + } + value := EncodeBigIntArray(tokenIDs) + value = append(value, EncodeBigIntArray(tokenAmounts)...) + return ðtypes.Log{ + Address: pointerAddr, + Topics: topics, + Data: value, + }, true + case "approve_all": + topics = []common.Hash{ + ERC1155ApprovalForAllTopic, + app.GetEvmAddressAttribute(ctx, wasmEvent, "sender"), + app.GetEvmAddressAttribute(ctx, wasmEvent, "operator"), + } + return ðtypes.Log{ + Address: pointerAddr, + Topics: topics, + Data: TrueHash.Bytes(), + }, true + case "revoke_all": + topics = []common.Hash{ + ERC1155ApprovalForAllTopic, + app.GetEvmAddressAttribute(ctx, wasmEvent, "sender"), + app.GetEvmAddressAttribute(ctx, wasmEvent, "operator"), + } + return ðtypes.Log{ + Address: pointerAddr, + Topics: topics, + Data: EmptyHash.Bytes(), + }, true + } + return nil, false +} + func (app *App) GetEvmAddressAttribute(ctx sdk.Context, event abci.Event, attribute string) common.Hash { addrStr, found := GetAttributeValue(event, attribute) if found { @@ -360,6 +468,22 @@ func GetAmountAttribute(event abci.Event) (*big.Int, bool) { return nil, false } +func GetAmountsAttribute(event abci.Event) ([]*big.Int, bool) { + results := []*big.Int{} + amounts, found := GetAttributeValue(event, "amounts") + if !found { + return results, false + } + for _, amt := range strings.Split(amounts, ",") { + amtInt, ok := sdk.NewIntFromString(amt) + if !ok { + return results, false + } + results = append(results, amtInt.BigInt()) + } + return results, true +} + func GetTokenIDAttribute(event abci.Event) *big.Int { tokenID, found := GetAttributeValue(event, "token_id") if !found { @@ -371,3 +495,36 @@ func GetTokenIDAttribute(event abci.Event) *big.Int { } return tokenIDInt.BigInt() } + +func GetTokenIDsAttribute(event abci.Event) ([]*big.Int, bool) { + results := []*big.Int{} + tokenIDs, found := GetAttributeValue(event, "token_ids") + if !found { + return results, false + } + for _, tid := range strings.Split(tokenIDs, ",") { + tidInt, ok := sdk.NewIntFromString(tid) + if !ok { + return results, false + } + results = append(results, tidInt.BigInt()) + } + return results, true +} + +func EncodeBigIntArray(inputs []*big.Int) []byte { + // Arrays are broken up into components: + // - offset byte (always 32) + // - length of array + // - ...array values + offset := big.NewInt(32) + length := big.NewInt(int64(len(inputs))) + value := append( + common.BigToHash(offset).Bytes(), + common.BigToHash(length).Bytes()..., + ) + for _, i := range inputs { + value = append(value, common.BigToHash(i).Bytes()...) + } + return value +} diff --git a/app/receipt_test.go b/app/receipt_test.go index c3305c524..c85ef166a 100644 --- a/app/receipt_test.go +++ b/app/receipt_test.go @@ -465,6 +465,438 @@ func TestEvmEventsForCw721(t *testing.T) { require.Equal(t, common.HexToHash("0x0").Bytes(), receipt.Logs[0].Data) } +func TestEvmEventsForCw1155(t *testing.T) { + k := testkeeper.EVMTestApp.EvmKeeper + wasmKeeper := k.WasmKeeper() + ctx := testkeeper.EVMTestApp.GetContextForDeliverTx([]byte{}).WithBlockTime(time.Now()).WithChainID("sei-test").WithBlockHeight(1) + // Create account 1 and associate its addresses + amt := sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000000000))) + privKey := testkeeper.MockPrivateKey() + creator, creatorEvmAddr := testkeeper.PrivateKeyToAddresses(privKey) + creatorHash := common.BytesToHash(creatorEvmAddr[:]).Hex() + k.BankKeeper().MintCoins(ctx, "evm", amt) + k.BankKeeper().SendCoinsFromModuleToAccount(ctx, "evm", creator, amt) + k.SetAddressMapping(ctx, creator, creatorEvmAddr) + // Create account 2 and associate its addresses + privKeyRecipient := testkeeper.MockPrivateKey() + recipient, recipientEvmAddr := testkeeper.PrivateKeyToAddresses(privKeyRecipient) + recipientHash := common.BytesToHash(recipientEvmAddr[:]).Hex() + k.BankKeeper().MintCoins(ctx, "evm", amt) + k.BankKeeper().SendCoinsFromModuleToAccount(ctx, "evm", recipient, amt) + k.SetAddressMapping(ctx, recipient, recipientEvmAddr) + // Deploy contract + code, err := os.ReadFile("../contracts/wasm/cw1155_base.wasm") + require.Nil(t, err) + codeID, err := wasmKeeper.Create(ctx, creator, code, nil) + require.Nil(t, err) + contractAddr, _, err := wasmKeeper.Instantiate(ctx, codeID, creator, creator, []byte(fmt.Sprintf("{\"name\":\"test\",\"symbol\":\"test\",\"minter\":\"%s\"}", creator.String())), "test", sdk.NewCoins()) + require.Nil(t, err) + _, mockPointerAddr := testkeeper.MockAddressPair() + k.SetERC1155CW1155Pointer(ctx, contractAddr.String(), mockPointerAddr) + + // calling CW contract directly + payload := []byte(fmt.Sprintf("{\"mint\":{\"recipient\":\"%s\",\"msg\":{\"token_id\":\"1\",\"amount\":\"10\"}}}", recipient.String())) + msg := &wasmtypes.MsgExecuteContract{ + Sender: creator.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder := testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx := signTx(txBuilder, privKey, k.AccountKeeper().GetAccount(ctx, creator)) + txbz, err := testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum := sha256.Sum256(txbz) + res := testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err := testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + _, found := testkeeper.EVMTestApp.EvmKeeper.GetEVMTxDeferredInfo(ctx) + require.True(t, found) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[1]) + require.Equal(t, common.HexToHash("0x0").Hex(), receipt.Logs[0].Topics[2]) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[3]) + expectedData := append(common.BigToHash(big.NewInt(1)).Bytes(), common.BigToHash(big.NewInt(10)).Bytes()...) + require.Equal(t, expectedData, receipt.Logs[0].Data) + + // calling from wasmd precompile + abi := pcommon.MustGetABI(f, "wasm_abi.json") + emptyCoins, err := sdk.NewCoins().MarshalJSON() + require.Nil(t, err) + payload = []byte(fmt.Sprintf("{\"mint_batch\":{\"recipient\":\"%s\",\"msgs\":[{\"token_id\":\"1\",\"amount\":\"30\"},{\"token_id\":\"2\",\"amount\":\"40\"}]}}", creator.String())) + data, err := abi.Pack("execute", contractAddr.String(), payload, emptyCoins) + require.Nil(t, err) + wasmAddr := common.HexToAddress(wasmd.WasmdAddress) + txData := ethtypes.LegacyTx{ + Nonce: 0, + GasPrice: big.NewInt(1000000000), + Gas: 1000000, + To: &wasmAddr, + Data: data, + } + chainID := k.ChainID(ctx) + chainCfg := evmtypes.DefaultChainConfig() + ethCfg := chainCfg.EthereumConfig(chainID) + blockNum := big.NewInt(ctx.BlockHeight()) + signer := ethtypes.MakeSigner(ethCfg, blockNum, uint64(ctx.BlockTime().Unix())) + testPrivHex := hex.EncodeToString(privKey.Bytes()) + key, _ := crypto.HexToECDSA(testPrivHex) + signedTx, err := ethtypes.SignTx(ethtypes.NewTx(&txData), signer, key) + require.Nil(t, err) + typedTx, err := ethtx.NewLegacyTx(signedTx) + require.Nil(t, err) + emsg, err := evmtypes.NewMsgEVMTransaction(typedTx) + require.Nil(t, err) + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(emsg) + tx = txBuilder.GetTx() + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()).WithTxIndex(1), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, signedTx.Hash()) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + _, found = testkeeper.EVMTestApp.EvmKeeper.GetEVMTxDeferredInfo(ctx) + require.True(t, found) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[1]) + require.Equal(t, common.HexToHash("0x0").Hex(), receipt.Logs[0].Topics[2]) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[3]) + expectedData = append([]byte{}, common.BigToHash(big.NewInt(32)).Bytes()...) // offset for token_ids array (always 32) + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // length of token_ids array + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // token id 1 + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // token id 2 + expectedData = append(expectedData, common.BigToHash(big.NewInt(32)).Bytes()...) // offset for token_ids array (always 32) + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // length of amounts array + expectedData = append(expectedData, common.BigToHash(big.NewInt(30)).Bytes()...) // amount 30 + expectedData = append(expectedData, common.BigToHash(big.NewInt(40)).Bytes()...) // amount 40 + require.Equal(t, expectedData, receipt.Logs[0].Data) + + // send + payload = []byte(fmt.Sprintf("{\"send\":{\"to\":\"%s\",\"token_id\":\"1\",\"amount\":\"2\"}}", recipient.String())) + msg = &wasmtypes.MsgExecuteContract{ + Sender: creator.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx = signTx(txBuilder, privKey, k.AccountKeeper().GetAccount(ctx, creator)) + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + _, found = testkeeper.EVMTestApp.EvmKeeper.GetEVMTxDeferredInfo(ctx) + require.True(t, found) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[1]) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[2]) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[3]) + expectedData = append(common.HexToHash("0x1").Bytes(), common.HexToHash("0x2").Bytes()...) + require.Equal(t, expectedData, receipt.Logs[0].Data) + + // send_batch + payload = []byte(fmt.Sprintf("{\"send_batch\":{\"to\":\"%s\",\"batch\":[{\"token_id\":\"1\",\"amount\":\"1\"},{\"token_id\":\"2\",\"amount\":\"2\"}]}}", recipient.String())) + msg = &wasmtypes.MsgExecuteContract{ + Sender: creator.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx = signTx(txBuilder, privKey, k.AccountKeeper().GetAccount(ctx, creator)) + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + _, found = testkeeper.EVMTestApp.EvmKeeper.GetEVMTxDeferredInfo(ctx) + require.True(t, found) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[1]) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[2]) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[3]) + expectedData = append([]byte{}, common.BigToHash(big.NewInt(32)).Bytes()...) // offset for token_ids array (always 32) + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // length of token_ids array + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // token id 1 + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // token id 2 + expectedData = append(expectedData, common.BigToHash(big.NewInt(32)).Bytes()...) // offset for token_ids array (always 32) + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // length of amounts array + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // amount 1 + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // amount 2 + require.Equal(t, expectedData, receipt.Logs[0].Data) + + // approve all + payload = []byte(fmt.Sprintf("{\"approve_all\":{\"operator\":\"%s\"}}", recipient.String())) + msg = &wasmtypes.MsgExecuteContract{ + Sender: creator.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx = signTx(txBuilder, privKey, k.AccountKeeper().GetAccount(ctx, creator)) + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + _, found = testkeeper.EVMTestApp.EvmKeeper.GetEVMTxDeferredInfo(ctx) + require.True(t, found) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[1]) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[2]) + require.Equal(t, common.HexToHash("0x1").Bytes(), receipt.Logs[0].Data) + + // send on behalf + payload = []byte(fmt.Sprintf("{\"send\":{\"to\":\"%s\",\"from\":\"%s\",\"token_id\":\"1\",\"amount\":\"1\"}}", recipient.String(), creator.String())) + msg = &wasmtypes.MsgExecuteContract{ + Sender: recipient.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx = signTx(txBuilder, privKeyRecipient, k.AccountKeeper().GetAccount(ctx, recipient)) + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[1]) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[2]) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[3]) + expectedData = append(common.HexToHash("0x1").Bytes(), common.HexToHash("0x1").Bytes()...) + require.Equal(t, expectedData, receipt.Logs[0].Data) + + // send_batch on behalf + payload = []byte(fmt.Sprintf("{\"send_batch\":{\"to\":\"%s\",\"from\":\"%s\",\"batch\":[{\"token_id\":\"1\",\"amount\":\"1\"},{\"token_id\":\"2\",\"amount\":\"1\"}]}}", recipient.String(), creator.String())) + msg = &wasmtypes.MsgExecuteContract{ + Sender: recipient.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx = signTx(txBuilder, privKeyRecipient, k.AccountKeeper().GetAccount(ctx, recipient)) + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[1]) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[2]) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[3]) + expectedData = append([]byte{}, common.BigToHash(big.NewInt(32)).Bytes()...) // offset for token_ids array (always 32) + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // length of token_ids array + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // token id 1 + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // token id 2 + expectedData = append(expectedData, common.BigToHash(big.NewInt(32)).Bytes()...) // offset for token_ids array (always 32) + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // length of amounts array + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // amount 1 + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // amount 1 + require.Equal(t, expectedData, receipt.Logs[0].Data) + + // burn on behalf + payload = []byte(fmt.Sprintf("{\"burn\":{\"from\":\"%s\",\"token_id\":\"1\",\"amount\":\"1\"}}", creator.String())) + msg = &wasmtypes.MsgExecuteContract{ + Sender: recipient.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx = signTx(txBuilder, privKeyRecipient, k.AccountKeeper().GetAccount(ctx, recipient)) + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[1]) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[2]) + require.Equal(t, common.HexToHash("0x0").Hex(), receipt.Logs[0].Topics[3]) + expectedData = append(common.HexToHash("0x1").Bytes(), common.HexToHash("0x1").Bytes()...) + require.Equal(t, expectedData, receipt.Logs[0].Data) + + // burn_batch on behalf + payload = []byte(fmt.Sprintf("{\"burn_batch\":{\"from\":\"%s\",\"batch\":[{\"token_id\":\"1\",\"amount\":\"1\"},{\"token_id\":\"2\",\"amount\":\"1\"}]}}", creator.String())) + msg = &wasmtypes.MsgExecuteContract{ + Sender: recipient.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx = signTx(txBuilder, privKeyRecipient, k.AccountKeeper().GetAccount(ctx, recipient)) + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[1]) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[2]) + require.Equal(t, common.HexToHash("0x0").Hex(), receipt.Logs[0].Topics[3]) + expectedData = append([]byte{}, common.BigToHash(big.NewInt(32)).Bytes()...) // offset for token_ids array (always 32) + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // length of token_ids array + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // token id 1 + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // token id 2 + expectedData = append(expectedData, common.BigToHash(big.NewInt(32)).Bytes()...) // offset for token_ids array (always 32) + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // length of amounts array + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // amount 1 + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // amount 1 + require.Equal(t, expectedData, receipt.Logs[0].Data) + + // revoke all + payload = []byte(fmt.Sprintf("{\"revoke_all\":{\"operator\":\"%s\"}}", recipient.String())) + msg = &wasmtypes.MsgExecuteContract{ + Sender: creator.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx = signTx(txBuilder, privKey, k.AccountKeeper().GetAccount(ctx, creator)) + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + _, found = testkeeper.EVMTestApp.EvmKeeper.GetEVMTxDeferredInfo(ctx) + require.True(t, found) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[1]) + require.Equal(t, recipientHash, receipt.Logs[0].Topics[2]) + require.Equal(t, common.HexToHash("0x0").Bytes(), receipt.Logs[0].Data) + + // burn + payload = []byte("{\"burn\":{\"token_id\":\"2\",\"amount\":\"1\"}}") + msg = &wasmtypes.MsgExecuteContract{ + Sender: creator.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx = signTx(txBuilder, privKey, k.AccountKeeper().GetAccount(ctx, creator)) + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + _, found = testkeeper.EVMTestApp.EvmKeeper.GetEVMTxDeferredInfo(ctx) + require.True(t, found) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[1]) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[2]) + require.Equal(t, common.HexToHash("0x0").Hex(), receipt.Logs[0].Topics[3]) + expectedData = append(common.HexToHash("0x2").Bytes(), common.HexToHash("0x1").Bytes()...) + require.Equal(t, expectedData, receipt.Logs[0].Data) + + // burn_batch + payload = []byte("{\"burn_batch\":{\"batch\":[{\"token_id\":\"1\",\"amount\":\"1\"},{\"token_id\":\"2\",\"amount\":\"1\"}]}}") + msg = &wasmtypes.MsgExecuteContract{ + Sender: creator.String(), + Contract: contractAddr.String(), + Msg: payload, + } + txBuilder = testkeeper.EVMTestApp.GetTxConfig().NewTxBuilder() + txBuilder.SetMsgs(msg) + txBuilder.SetFeeAmount(sdk.NewCoins(sdk.NewCoin("usei", sdk.NewInt(1000000)))) + txBuilder.SetGasLimit(300000) + tx = signTx(txBuilder, privKey, k.AccountKeeper().GetAccount(ctx, creator)) + txbz, err = testkeeper.EVMTestApp.GetTxConfig().TxEncoder()(tx) + require.Nil(t, err) + sum = sha256.Sum256(txbz) + res = testkeeper.EVMTestApp.DeliverTx(ctx.WithEventManager(sdk.NewEventManager()), abci.RequestDeliverTx{Tx: txbz}, tx, sum) + require.Equal(t, uint32(0), res.Code) + receipt, err = testkeeper.EVMTestApp.EvmKeeper.GetTransientReceipt(ctx, common.BytesToHash(sum[:])) + require.Nil(t, err) + require.Equal(t, 1, len(receipt.Logs)) + require.NotEmpty(t, receipt.LogsBloom) + require.Equal(t, mockPointerAddr.Hex(), receipt.Logs[0].Address) + _, found = testkeeper.EVMTestApp.EvmKeeper.GetEVMTxDeferredInfo(ctx) + require.True(t, found) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[1]) + require.Equal(t, creatorHash, receipt.Logs[0].Topics[2]) + require.Equal(t, common.HexToHash("0x0").Hex(), receipt.Logs[0].Topics[3]) + expectedData = append([]byte{}, common.BigToHash(big.NewInt(32)).Bytes()...) // offset for token_ids array (always 32) + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // length of token_ids array + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // token id 1 + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // token id 2 + expectedData = append(expectedData, common.BigToHash(big.NewInt(32)).Bytes()...) // offset for token_ids array (always 32) + expectedData = append(expectedData, common.BigToHash(big.NewInt(2)).Bytes()...) // length of amounts array + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // amount 1 + expectedData = append(expectedData, common.BigToHash(big.NewInt(1)).Bytes()...) // amount 1 + require.Equal(t, expectedData, receipt.Logs[0].Data) +} + func signTx(txBuilder client.TxBuilder, privKey cryptotypes.PrivKey, acc authtypes.AccountI) sdk.Tx { var sigsV2 []signing.SignatureV2 sigV2 := signing.SignatureV2{ diff --git a/contracts/src/CW1155ERC1155Pointer.sol b/contracts/src/CW1155ERC1155Pointer.sol new file mode 100644 index 000000000..356f434e8 --- /dev/null +++ b/contracts/src/CW1155ERC1155Pointer.sol @@ -0,0 +1,334 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.12; + +import "@openzeppelin/contracts/token/common/ERC2981.sol"; +import "@openzeppelin/contracts/token/ERC1155/ERC1155.sol"; +import "@openzeppelin/contracts/token/ERC1155/IERC1155.sol"; +import "@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol"; +import "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol"; +import "@openzeppelin/contracts/utils/Strings.sol"; +import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol"; +import {IWasmd} from "./precompiles/IWasmd.sol"; +import {IJson} from "./precompiles/IJson.sol"; +import {IAddr} from "./precompiles/IAddr.sol"; + +contract CW1155ERC1155Pointer is ERC1155, ERC2981 { + + address constant WASMD_PRECOMPILE_ADDRESS = 0x0000000000000000000000000000000000001002; + address constant JSON_PRECOMPILE_ADDRESS = 0x0000000000000000000000000000000000001003; + address constant ADDR_PRECOMPILE_ADDRESS = 0x0000000000000000000000000000000000001004; + + string public Cw1155Address; + IWasmd public WasmdPrecompile; + IJson public JsonPrecompile; + IAddr public AddrPrecompile; + string public name; + string public symbol; + + error NotImplementedOnCosmwasmContract(string method); + error NotImplemented(string method); + + constructor(string memory Cw1155Address_, string memory name_, string memory symbol_) ERC1155("") { + Cw1155Address = Cw1155Address_; + WasmdPrecompile = IWasmd(WASMD_PRECOMPILE_ADDRESS); + JsonPrecompile = IJson(JSON_PRECOMPILE_ADDRESS); + AddrPrecompile = IAddr(ADDR_PRECOMPILE_ADDRESS); + name = name_; + symbol = symbol_; + } + + //transactions + function safeTransferFrom( + address from, + address to, + uint256 id, + uint256 amount, + bytes memory data + ) public override { + require(to != address(0), "ERC1155: transfer to the zero address"); + require(balanceOf(from, id) >= amount, "ERC1155: insufficient balance for transfer"); + require( + msg.sender == from || isApprovedForAll(from, msg.sender), + "ERC1155: caller is not approved to transfer" + ); + + string memory f = _formatPayload("from", _doubleQuotes(AddrPrecompile.getSeiAddr(from))); + string memory t = _formatPayload("to", _doubleQuotes(AddrPrecompile.getSeiAddr(to))); + string memory tId = _formatPayload("token_id", _doubleQuotes(Strings.toString(id))); + string memory amt = _formatPayload("amount", _doubleQuotes(Strings.toString(amount))); + + string memory req = _curlyBrace( + _formatPayload("send", _curlyBrace(_join(f, ",", _join(t, ",", _join(tId, ",", amt))))) + ); + _execute(bytes(req)); + if (to.code.length > 0) { + require( + IERC1155Receiver(to).onERC1155Received( + msg.sender, + from, + id, + amount, + data + ) == IERC1155Receiver.onERC1155Received.selector, + "unsafe transfer" + ); + } + } + + function safeBatchTransferFrom( + address from, + address to, + uint256[] memory ids, + uint256[] memory amounts, + bytes memory data + ) public override { + require(to != address(0), "ERC1155: transfer to the zero address"); + require( + msg.sender == from || isApprovedForAll(from, msg.sender), + "ERC1155: caller is not approved to transfer" + ); + require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); + address[] memory batchFrom = new address[](ids.length); + for (uint256 i = 0; i < ids.length; i++) { + batchFrom[i] = from; + } + uint256[] memory balances = balanceOfBatch(batchFrom, ids); + for (uint256 i = 0; i < balances.length; i++) { + require(balances[i] >= amounts[i], "ERC1155: insufficient balance for transfer"); + } + + string memory payload = string.concat("{\"send_batch\":{\"from\":\"", AddrPrecompile.getSeiAddr(from)); + payload = string.concat(payload, "\",\"to\":\""); + payload = string.concat(payload, AddrPrecompile.getSeiAddr(to)); + payload = string.concat(payload, "\",\"batch\":["); + for (uint256 i = 0; i < ids.length; i++) { + string memory batch = string.concat("{\"token_id\":\"", Strings.toString(ids[i])); + batch = string.concat(batch, "\",\"amount\":\""); + batch = string.concat(batch, Strings.toString(amounts[i])); + if (i < ids.length - 1) { + batch = string.concat(batch, "\"},"); + } else { + batch = string.concat(batch, "\"}"); + } + payload = string.concat(payload, batch); + } + payload = string.concat(payload, "]}}"); + _execute(bytes(payload)); + if (to.code.length > 0) { + require( + IERC1155Receiver(to).onERC1155BatchReceived( + msg.sender, + from, + ids, + amounts, + data + ) == IERC1155Receiver.onERC1155BatchReceived.selector, + "unsafe transfer" + ); + } + } + + function setApprovalForAll(address operator, bool approved) public override { + string memory op = _curlyBrace(_formatPayload("operator", _doubleQuotes(AddrPrecompile.getSeiAddr(operator)))); + if (approved) { + _execute(bytes(_curlyBrace(_formatPayload("approve_all", op)))); + } else { + _execute(bytes(_curlyBrace(_formatPayload("revoke_all", op)))); + } + } + + // ERC1155Burnable transactions + function burn(address account, uint256 id, uint256 amount) public virtual { + require(account != address(0), "ERC1155: cannot burn from the zero address"); + require(balanceOf(account, id) >= amount, "ERC1155: insufficient balance for burning"); + require( + msg.sender == account || isApprovedForAll(account, msg.sender), + "ERC1155: caller is not approved to burn" + ); + + string memory f = _formatPayload("from", _doubleQuotes(AddrPrecompile.getSeiAddr(account))); + string memory tId = _formatPayload("token_id", _doubleQuotes(Strings.toString(id))); + string memory amt = _formatPayload("amount", _doubleQuotes(Strings.toString(amount))); + + string memory req = _curlyBrace( + _formatPayload("burn", _curlyBrace(_join(f, ",", _join(tId, ",", amt)))) + ); + _execute(bytes(req)); + } + + function burnBatch(address account, uint256[] memory ids, uint256[] memory amounts) public virtual { + require(account != address(0), "ERC1155: cannot burn from the zero address"); + require( + msg.sender == account || isApprovedForAll(account, msg.sender), + "ERC1155: caller is not approved to burn" + ); + require(ids.length == amounts.length, "ERC1155: ids and amounts length mismatch"); + + address[] memory batchFrom = new address[](ids.length); + for (uint256 i = 0; i < ids.length; i++) { + batchFrom[i] = account; + } + uint256[] memory balances = balanceOfBatch(batchFrom, ids); + for (uint256 i = 0; i < balances.length; i++) { + require(balances[i] >= amounts[i], "ERC1155: insufficient balance for burning"); + } + + string memory payload = string.concat("{\"burn_batch\":{\"from\":\"", AddrPrecompile.getSeiAddr(account)); + payload = string.concat(payload, "\",\"batch\":["); + for (uint256 i = 0; i < ids.length; i++) { + string memory batch = string.concat("{\"token_id\":\"", Strings.toString(ids[i])); + batch = string.concat(batch, "\",\"amount\":\""); + batch = string.concat(batch, Strings.toString(amounts[i])); + if (i < ids.length - 1) { + batch = string.concat(batch, "\"},"); + } else { + batch = string.concat(batch, "\"}"); + } + payload = string.concat(payload, batch); + } + payload = string.concat(payload, "]}}"); + _execute(bytes(payload)); + } + + // Queries + function balanceOf(address account, uint256 id) public view override returns (uint256) { + require(account != address(0), "ERC1155: cannot query balance of zero address"); + string memory own = _formatPayload("owner", _doubleQuotes(AddrPrecompile.getSeiAddr(account))); + string memory tId = _formatPayload("token_id", _doubleQuotes(Strings.toString(id))); + string memory req = _curlyBrace(_formatPayload("balance_of", _curlyBrace(_join(own, ",", tId)))); + bytes memory response = WasmdPrecompile.query(Cw1155Address, bytes(req)); + return JsonPrecompile.extractAsUint256(response, "balance"); + } + + function balanceOfBatch( + address[] memory accounts, + uint256[] memory ids + ) public view override returns (uint256[] memory balances) { + require(accounts.length != 0, "ERC1155: cannot query empty accounts list"); + if (accounts.length != ids.length) { + revert ERC1155InvalidArrayLength(ids.length, accounts.length); + } + string memory ownerTokens = "["; + for (uint256 i = 0; i < accounts.length; i++) { + require(accounts[i] != address(0), "ERC1155: cannot query balance of zero address"); + if (i > 0) { + ownerTokens = string.concat(ownerTokens, ","); + } + string memory ownerToken = string.concat("{\"owner\":\"", AddrPrecompile.getSeiAddr(accounts[i])); + ownerToken = string.concat(ownerToken, "\",\"token_id\":\""); + ownerToken = string.concat(ownerToken, Strings.toString(ids[i])); + ownerToken = string.concat(ownerToken, "\"}"); + ownerTokens = string.concat(ownerTokens, ownerToken); + } + ownerTokens = string.concat(ownerTokens, "]"); + string memory req = _curlyBrace(_formatPayload("balance_of_batch", ownerTokens)); + bytes memory response = WasmdPrecompile.query(Cw1155Address, bytes(req)); + bytes[] memory parseResponse = JsonPrecompile.extractAsBytesList(response, "balances"); + require(parseResponse.length == accounts.length, "Invalid balance_of_batch response"); + balances = new uint256[](parseResponse.length); + for (uint256 i = 0; i < parseResponse.length; i++) { + balances[i] = JsonPrecompile.extractAsUint256(parseResponse[i], "amount"); + } + } + + function uri(uint256 id) public view override returns (string memory) { + string memory tId = _curlyBrace(_formatPayload("token_id", _doubleQuotes(Strings.toString(id)))); + string memory req = _curlyBrace(_formatPayload("token_info", tId)); + bytes memory response = WasmdPrecompile.query(Cw1155Address, bytes(req)); + return string(JsonPrecompile.extractAsBytes(response, "token_uri")); + } + + function isApprovedForAll(address owner, address operator) public view override returns (bool) { + string memory own = _formatPayload("owner", _doubleQuotes(AddrPrecompile.getSeiAddr(owner))); + string memory op = _formatPayload("operator", _doubleQuotes(AddrPrecompile.getSeiAddr(operator))); + string memory req = _curlyBrace(_formatPayload("is_approved_for_all", _curlyBrace(_join(own, ",", op)))); + bytes32 response = keccak256(WasmdPrecompile.query(Cw1155Address, bytes(req))); + bytes32 approvedMsg = keccak256("{\"approved\":true}"); + bytes32 unapprovedMsg = keccak256("{\"approved\":false}"); + if (response == approvedMsg) { + return true; + } else if (response == unapprovedMsg) { + return false; + } + revert NotImplementedOnCosmwasmContract("is_approved_for_all"); + } + + // ERC1155Supply + function totalSupply() public view virtual returns (uint256) { + bytes memory response = WasmdPrecompile.query(Cw1155Address, bytes("{\"num_tokens\":{}}")); + return JsonPrecompile.extractAsUint256(response, "count"); + } + + function totalSupply(uint256 id) public view virtual returns (uint256) { + string memory query = string.concat( + string.concat("{\"num_tokens\":{\"token_id\":\"", Strings.toString(id)), + "\"}}" + ); + bytes memory response = WasmdPrecompile.query(Cw1155Address, bytes(query)); + return JsonPrecompile.extractAsUint256(response, "count"); + } + + function exists(uint256 id) public view virtual returns (bool) { + return totalSupply(id) > 0; + } + + // 2981 + function royaltyInfo(uint256 tokenId, uint256 salePrice) public view override returns (address, uint256) { + bytes memory checkRoyaltyResponse = WasmdPrecompile.query( + Cw1155Address, + bytes("{\"extension\":{\"msg\":{\"check_royalties\":{}}}}") + ); + bytes memory isRoyaltyImplemented = JsonPrecompile.extractAsBytes(checkRoyaltyResponse, "royalty_payments"); + if (keccak256(isRoyaltyImplemented) != keccak256("true")) { + revert NotImplementedOnCosmwasmContract("royalty_info"); + } + string memory tId = _formatPayload("token_id", _doubleQuotes(Strings.toString(tokenId))); + string memory sPrice = _formatPayload("sale_price", _doubleQuotes(Strings.toString(salePrice))); + string memory req = _curlyBrace(_formatPayload("royalty_info", _curlyBrace(_join(tId, ",", sPrice)))); + string memory fullReq = _curlyBrace(_formatPayload("extension", _curlyBrace(_formatPayload("msg", req)))); + bytes memory response = WasmdPrecompile.query(Cw1155Address, bytes(fullReq)); + bytes memory addr = JsonPrecompile.extractAsBytes(response, "address"); + uint256 amt = JsonPrecompile.extractAsUint256(response, "royalty_amount"); + if (addr.length == 0) { + return (address(0), amt); + } + return (AddrPrecompile.getEvmAddr(string(addr)), amt); + } + + function supportsInterface(bytes4 interfaceId) public pure override(ERC2981, ERC1155) returns (bool) { + return + interfaceId == type(IERC2981).interfaceId || + interfaceId == type(IERC1155).interfaceId || + interfaceId == type(IERC1155MetadataURI).interfaceId || + interfaceId == type(IERC165).interfaceId; + } + + function _execute(bytes memory req) internal returns (bytes memory) { + (bool success, bytes memory ret) = WASMD_PRECOMPILE_ADDRESS.delegatecall( + abi.encodeWithSignature( + "execute(string,bytes,bytes)", + Cw1155Address, + bytes(req), + bytes("[]") + ) + ); + require(success, "CosmWasm execute failed"); + return ret; + } + + function _formatPayload(string memory key, string memory value) internal pure returns (string memory) { + return _join(_doubleQuotes(key), ":", value); + } + + function _curlyBrace(string memory s) internal pure returns (string memory) { + return string.concat("{", string.concat(s, "}")); + } + + function _doubleQuotes(string memory s) internal pure returns (string memory) { + return string.concat("\"", string.concat(s, "\"")); + } + + function _join(string memory a, string memory separator, string memory b) internal pure returns (string memory) { + return string.concat(a, string.concat(separator, b)); + } +} diff --git a/contracts/src/ERC1155.sol b/contracts/src/ERC1155.sol new file mode 100644 index 000000000..2e5084d38 --- /dev/null +++ b/contracts/src/ERC1155.sol @@ -0,0 +1,49 @@ +// SPDX-License-Identifier: MIT +pragma solidity ^0.8.0; + +import "@openzeppelin/contracts/token/common/ERC2981.sol"; +import "@openzeppelin/contracts/token/ERC1155/extensions/ERC1155Supply.sol"; + +contract ERC1155Example is ERC1155Supply,ERC2981 { + string public name = "DummyERC1155"; + + string public symbol = "DUMMY"; + + string private _uri = "https://example.com/{id}"; + + address private _randomAddress1 = 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266; + address private _randomAddress2 = 0xF39fD6e51Aad88F6f4CE6AB8827279CFffb92267; + + constructor() ERC1155(_uri) { + setDefaultRoyalty(_randomAddress1); + + mintForTest(_randomAddress1, 0); + mintForTest(_randomAddress2, 4); + } + + function mintForTest(address recipient, uint256 startId) public virtual { + uint256[] memory tids = new uint256[](6); + tids[0] = startId; + tids[1] = startId + 1; + tids[2] = startId + 2; + tids[3] = startId + 3; + tids[4] = startId + 4; + tids[5] = startId + 5; + uint256[] memory values = new uint256[](6); + values[0] = 10; + values[1] = 11; + values[2] = 12; + values[3] = 13; + values[4] = 14; + values[5] = 15; + _mintBatch(recipient, tids, values, '0x0'); + } + + function supportsInterface(bytes4 interfaceId) public view override(ERC1155, ERC2981) returns (bool) { + return super.supportsInterface(interfaceId); + } + + function setDefaultRoyalty(address receiver) public { + _setDefaultRoyalty(receiver, 500); + } +} diff --git a/contracts/test/CW1155ERC1155PointerTest.t.sol b/contracts/test/CW1155ERC1155PointerTest.t.sol new file mode 100644 index 000000000..2a24a9239 --- /dev/null +++ b/contracts/test/CW1155ERC1155PointerTest.t.sol @@ -0,0 +1,638 @@ +// SPDX-License-Identifier: UNLICENSED +pragma solidity ^0.8.0; + +import {Test, console2} from "forge-std/Test.sol"; +import {CW1155ERC1155Pointer} from "../src/CW1155ERC1155Pointer.sol"; +import {IWasmd} from "../src/precompiles/IWasmd.sol"; +import {IJson} from "../src/precompiles/IJson.sol"; +import {IAddr} from "../src/precompiles/IAddr.sol"; +import "@openzeppelin/contracts/interfaces/draft-IERC6093.sol"; +import "@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol"; + +address constant WASMD_PRECOMPILE_ADDRESS = 0x0000000000000000000000000000000000001002; +address constant JSON_PRECOMPILE_ADDRESS = 0x0000000000000000000000000000000000001003; +address constant ADDR_PRECOMPILE_ADDRESS = 0x0000000000000000000000000000000000001004; + +address constant MockCallerEVMAddr = 0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266; +address constant MockOperatorEVMAddr = 0xF39fD6e51Aad88F6f4CE6AB8827279CFffb92267; +address constant MockZeroAddress = 0x0000000000000000000000000000000000000000; + +string constant MockCallerSeiAddr = "sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw"; +string constant MockOperatorSeiAddr = "sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe"; +string constant MockCWContractAddress = "sei14hj2tavq8fpesdwxxcu44rty3hh90vhujrvcmstl4zr3txmfvw9sh9m79m"; + +contract MockWasmd is IWasmd { + + // Transactions + function instantiate( + uint64, + string memory, + bytes memory, + string memory, + bytes memory + ) external pure returns (string memory, bytes memory) { + return (MockCWContractAddress, bytes("")); + } + + function execute( + string memory contractAddress, + bytes memory, + bytes memory + ) external pure returns (bytes memory) { + require(keccak256(abi.encodePacked(contractAddress)) == keccak256(abi.encodePacked(MockCWContractAddress)), "wrong CW contract address"); + return bytes(""); + } + + // Queries + function query(string memory, bytes memory) external pure returns (bytes memory) { + return bytes(""); + } +} + +contract MockJson is IJson { + function extractAsBytes(bytes memory, string memory) external pure returns (bytes memory) { + return bytes("extracted bytes"); + } + + function extractAsBytesList(bytes memory, string memory) external pure returns (bytes[] memory) { + return new bytes[](0); + } + + function extractAsUint256(bytes memory input, string memory key) external view returns (uint256 response) { + return 0; + } +} + +contract MockAddr is IAddr { + function getSeiAddr(address addr) external pure returns (string memory) { + if (addr == MockCallerEVMAddr) { + return MockCallerSeiAddr; + } + return MockOperatorSeiAddr; + } + + function getEvmAddr(string memory addr) external pure returns (address) { + if (keccak256(abi.encodePacked(addr)) == keccak256(abi.encodePacked(MockCallerSeiAddr))) { + return MockCallerEVMAddr; + } + return MockOperatorEVMAddr; + } +} + +contract MockERC1155Receiver is IERC1155Receiver { + function onERC1155Received( + address operator, + address from, + uint256 id, + uint256 value, + bytes calldata data + ) external returns (bytes4) { + return 0xf23a6e61; + } + + function onERC1155BatchReceived( + address operator, + address from, + uint256[] calldata ids, + uint256[] calldata values, + bytes calldata data + ) external returns (bytes4) { + return 0xbc197c81; + } + + function supportsInterface(bytes4 interfaceId) public pure override(IERC165) returns (bool) { + return + interfaceId == type(IERC1155Receiver).interfaceId || + interfaceId == type(IERC165).interfaceId; + } +} + +contract CW1155ERC1155PointerTest is Test { + + event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value); + event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values); + event ApprovalForAll(address indexed owner, address indexed operator, bool approved); + + CW1155ERC1155Pointer pointer; + MockWasmd mockWasmd; + MockJson mockJson; + MockAddr mockAddr; + MockERC1155Receiver mockERC1155Receiver; + + function setUp() public { + pointer = new CW1155ERC1155Pointer(MockCWContractAddress, "Test", "TEST"); + mockWasmd = new MockWasmd(); + mockJson = new MockJson(); + mockAddr = new MockAddr(); + mockERC1155Receiver = new MockERC1155Receiver(); + vm.etch(WASMD_PRECOMPILE_ADDRESS, address(mockWasmd).code); + vm.etch(JSON_PRECOMPILE_ADDRESS, address(mockJson).code); + vm.etch(ADDR_PRECOMPILE_ADDRESS, address(mockAddr).code); + vm.etch(MockOperatorEVMAddr, address(mockERC1155Receiver).code); + } + + function testBalanceOf() public { + bytes memory queryCall = bytes("{\"balance_of\":{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"1\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall), + abi.encode("{\"balance\":\"1\"}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", bytes("{\"balance\":\"1\"}"), "balance"), + abi.encode(1) + ); + assertEq(pointer.balanceOf(MockCallerEVMAddr, 1), 1); + } + + function testBalanceOfZeroAddress() public { + vm.expectRevert(bytes("ERC1155: cannot query balance of zero address")); + pointer.balanceOf(MockZeroAddress, 1); + } + + function testBalanceOfBatch() public { + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getSeiAddr(string)", "0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266"), + abi.encode(MockCallerSeiAddr) + ); + bytes memory queryCall = bytes("{\"balance_of_batch\":[{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"1\"},{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"2\"},{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"3\"}]}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall), + abi.encode("{\"balances\":[ { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"1\", \"amount\": \"1\" }, { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"2\", \"amount\": \"2\" }, { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"3\", \"amount\": \"0\" } ]}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall) + ); + + bytes[] memory resp = new bytes[](3); + resp[0] = bytes("{\"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"1\", \"amount\": \"1\"}"); + resp[1] = bytes("{\"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"2\", \"amount\": \"2\"}"); + resp[2] = bytes("{\"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"3\", \"amount\": \"0\"}"); + + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsBytesList(bytes,string)",bytes("{\"balances\":[ { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"1\", \"amount\": \"1\" }, { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"2\", \"amount\": \"2\" }, { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"3\", \"amount\": \"0\" } ]}"), "balances"), + abi.encode(resp) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", resp[0], "amount"), + abi.encode(1) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", resp[1], "amount"), + abi.encode(2) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", resp[2], "amount"), + abi.encode(0) + ); + + address[] memory owners = new address[](3); + uint256[] memory ids = new uint256[](3); + owners[0] = MockCallerEVMAddr; + owners[1] = MockCallerEVMAddr; + owners[2] = MockCallerEVMAddr; + ids[0] = 1; + ids[1] = 2; + ids[2] = 3; + uint256[] memory expectedResp = new uint256[](3); + expectedResp[0] = 1; + expectedResp[1] = 2; + expectedResp[2] = 0; + assertEq(pointer.balanceOfBatch(owners, ids), expectedResp); + } + + function testBalanceOfBatchBadLength0() public { + uint256 idsLength = 0; + uint256 valuesLength = 0; + vm.expectRevert(bytes("ERC1155: cannot query empty accounts list")); + pointer.balanceOfBatch(new address[](valuesLength), new uint256[](idsLength)); + } + + function testBalanceOfBatchBadLength1() public { + uint256 idsLength = 1; + uint256 valuesLength = 2; + vm.expectRevert( + abi.encodeWithSelector( + IERC1155Errors.ERC1155InvalidArrayLength.selector, + idsLength, + valuesLength + ) + ); + pointer.balanceOfBatch(new address[](valuesLength), new uint256[](idsLength)); + } + + function testBalanceOfBatchBadAddress() public { + address[] memory owners = new address[](3); + uint256[] memory ids = new uint256[](3); + owners[0] = MockZeroAddress; + owners[1] = MockCallerEVMAddr; + owners[2] = MockCallerEVMAddr; + ids[0] = 1; + ids[1] = 2; + ids[2] = 3; + vm.expectRevert(bytes("ERC1155: cannot query balance of zero address")); + pointer.balanceOfBatch(owners, ids); + } + + function testUri() public { + bytes memory queryCall = bytes("{\"token_info\":{\"token_id\":\"1\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall), + abi.encode("{\"extension\": { \"animation_url\": null, \"attributes\": null, \"background_color\": null, \"description\": null, \"external_url\": null, \"image\": null, \"image_data\": null, \"name\": null, \"royalty_payment_address\": null, \"royalty_percentage\": null, \"youtube_url\": null }, \"token_uri\": \"test\" }") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall) + ); + + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsBytes(bytes,string)", bytes("{\"extension\": { \"animation_url\": null, \"attributes\": null, \"background_color\": null, \"description\": null, \"external_url\": null, \"image\": null, \"image_data\": null, \"name\": null, \"royalty_payment_address\": null, \"royalty_percentage\": null, \"youtube_url\": null }, \"token_uri\": \"test\" }"), "token_uri"), + abi.encode(bytes("test")) + ); + assertEq(pointer.uri(1), "test"); + } + + function testIsApprovedForAll() public { + // test response for approved operator + bytes memory queryCall1 = bytes("{\"is_approved_for_all\":{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"operator\":\"sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall1), + abi.encode("{\"approved\":true}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall1) + ); + // test response for unapproved operator + bytes memory queryCall2 = bytes("{\"is_approved_for_all\":{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"operator\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall2), + abi.encode("{\"approved\":false}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall2) + ); + + assertEq(pointer.isApprovedForAll(MockCallerEVMAddr, MockOperatorEVMAddr), true); + assertEq(pointer.isApprovedForAll(MockCallerEVMAddr, MockCallerEVMAddr), false); + } + + function testRoyaltyInfo() public { + bytes memory queryCall1 = bytes("{\"extension\":{\"msg\":{\"check_royalties\":{}}}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall1), + abi.encode("{\"royalty_payments\":true}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall1) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsBytes(bytes,string)", bytes("{\"royalty_payments\":true}"), "royalty_payments"), + abi.encode("true") + ); + bytes memory queryCall2 = bytes("{\"extension\":{\"msg\":{\"royalty_info\":{\"token_id\":\"1\",\"sale_price\":\"1000\"}}}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall2), + abi.encode("{\"address\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"royalty_amount\":\"10\"}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall2) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsBytes(bytes,string)", bytes("{\"address\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"royalty_amount\":\"10\"}"), "address"), + abi.encode("sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw") + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", bytes("{\"address\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"royalty_amount\":\"10\"}"), "royalty_amount"), + abi.encode(10) + ); + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw"), + abi.encode(address(MockCallerEVMAddr)) + ); + (address recipient, uint256 royalties) = pointer.royaltyInfo(1, 1000); + assertEq(recipient, address(MockCallerEVMAddr)); + assertEq(royalties, 10); + } + + function testSafeTransferFrom() public { + bytes memory queryCall = bytes("{\"balance_of\":{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"1\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall), + abi.encode("{\"balance\":\"1\"}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", bytes("{\"balance\":\"1\"}"), "balance"), + abi.encode(1) + ); + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw"), + abi.encode(address(MockCallerEVMAddr)) + ); + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe"), + abi.encode(address(MockOperatorEVMAddr)) + ); + + bytes memory executeCall = bytes("{\"send\":{\"from\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"to\":\"sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe\",\"token_id\":\"1\",\"amount\":\"1\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall), + abi.encode(bytes("")) + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall, bytes("[]")) + ); + vm.expectCall( + MockOperatorEVMAddr, + abi.encodeWithSignature("onERC1155Received(address,address,uint256,uint256,bytes)", MockCallerEVMAddr, MockCallerEVMAddr, 1, 1, bytes("")) + ); + + vm.startPrank(MockCallerEVMAddr); + pointer.safeTransferFrom(MockCallerEVMAddr, MockOperatorEVMAddr, 1, 1, bytes("")); + vm.stopPrank(); + } + + function testSafeTransferFromWithOperator() public { + bytes memory queryCall1 = bytes("{\"balance_of\":{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"1\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall1), + abi.encode("{\"balance\":\"1\"}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall1) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", bytes("{\"balance\":\"1\"}"), "balance"), + abi.encode(1) + ); + bytes memory queryCall2 = bytes("{\"is_approved_for_all\":{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"operator\":\"sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall2), + abi.encode("{\"approved\":true}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall2) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", bytes("{\"approved\":true}"), "approved"), + abi.encode(true) + ); + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw"), + abi.encode(address(MockCallerEVMAddr)) + ); + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe"), + abi.encode(address(MockOperatorEVMAddr)) + ); + bytes memory executeCall = bytes("{\"send\":{\"from\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"to\":\"sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe\",\"token_id\":\"1\",\"amount\":\"1\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress,executeCall), + abi.encode(bytes("")) + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall, bytes("[]")) + ); + vm.expectCall( + MockOperatorEVMAddr, + abi.encodeWithSignature("onERC1155Received(address,address,uint256,uint256,bytes)", MockOperatorEVMAddr, MockCallerEVMAddr, 1, 1, bytes("")) + ); + + vm.startPrank(MockOperatorEVMAddr); + pointer.safeTransferFrom(MockCallerEVMAddr, MockOperatorEVMAddr, 1, 1, bytes("")); + vm.stopPrank(); + } + + function testSafeBatchTransferFrom() public { + bytes memory queryCall = bytes("{\"balance_of_batch\":[{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"1\"},{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"2\"}]}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall), + abi.encode("{\"balances\":[ { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"1\", \"amount\": \"1\" }, { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"2\", \"amount\": \"2\" } ]}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall) + ); + bytes[] memory resp = new bytes[](2); + resp[0] = bytes("{\"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"1\", \"amount\": \"1\"}"); + resp[1] = bytes("{\"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"2\", \"amount\": \"2\"}"); + + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsBytesList(bytes,string)",bytes("{\"balances\":[ { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"1\", \"amount\": \"1\" }, { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"2\", \"amount\": \"2\" } ]}"), "balances"), + abi.encode(resp) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", resp[0], "amount"), + abi.encode(1) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", resp[1], "amount"), + abi.encode(2) + ); + + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw"), + abi.encode(address(MockCallerEVMAddr)) + ); + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe"), + abi.encode(address(MockOperatorEVMAddr)) + ); + + bytes memory executeCall = bytes("{\"send_batch\":{\"from\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"to\":\"sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe\",\"batch\":[{\"token_id\":\"1\",\"amount\":\"1\"},{\"token_id\":\"2\",\"amount\":\"2\"}]}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall), + abi.encode(bytes("")) + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall, bytes("[]")) + ); + + uint256[] memory ids = new uint256[](2); + uint256[] memory amounts = new uint256[](2); + ids[0] = 1; + ids[1] = 2; + amounts[0] = 1; + amounts[1] = 2; + vm.expectCall( + MockOperatorEVMAddr, + abi.encodeWithSignature("onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)", MockCallerEVMAddr, MockCallerEVMAddr, ids, amounts, bytes("")) + ); + + vm.startPrank(MockCallerEVMAddr); + pointer.safeBatchTransferFrom(MockCallerEVMAddr, MockOperatorEVMAddr, ids, amounts, bytes("")); + vm.stopPrank(); + } + + function testSetApprovalForAll() public { + bytes memory executeCall = bytes("{\"approve_all\":{\"operator\":\"sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall, bytes("[]")), + abi.encode(bytes("")) + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall, bytes("[]")) + ); + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei1vldxw5dy5k68hqr4d744rpg9w8cqs54x4asdqe"), + abi.encode(address(MockOperatorEVMAddr)) + ); + vm.startPrank(MockCallerEVMAddr); + pointer.setApprovalForAll(MockOperatorEVMAddr, true); + vm.stopPrank(); + } + + function testBurn() public { + bytes memory queryCall = bytes("{\"balance_of\":{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"1\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall), + abi.encode("{\"balance\":\"1\"}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", bytes("{\"balance\":\"1\"}"), "balance"), + abi.encode(1) + ); + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw"), + abi.encode(address(MockCallerEVMAddr)) + ); + + bytes memory executeCall = bytes("{\"burn\":{\"from\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"1\",\"amount\":\"1\"}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall), + abi.encode(bytes("")) + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall, bytes("[]")) + ); + + vm.startPrank(MockCallerEVMAddr); + pointer.burn(MockCallerEVMAddr, 1, 1); + vm.stopPrank(); + } + + function testBatchBurn() public { + bytes memory queryCall = bytes("{\"balance_of_batch\":[{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"1\"},{\"owner\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"token_id\":\"2\"}]}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall), + abi.encode("{\"balances\":[ { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"1\", \"amount\": \"1\" }, { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"2\", \"amount\": \"2\" } ]}") + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, queryCall) + ); + bytes[] memory resp = new bytes[](2); + resp[0] = bytes("{\"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"1\", \"amount\": \"1\"}"); + resp[1] = bytes("{\"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"2\", \"amount\": \"2\"}"); + + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsBytesList(bytes,string)",bytes("{\"balances\":[ { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"1\", \"amount\": \"1\" }, { \"owner\": \"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\", \"token_id\": \"2\", \"amount\": \"2\" } ]}"), "balances"), + abi.encode(resp) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", resp[0], "amount"), + abi.encode(1) + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", resp[1], "amount"), + abi.encode(2) + ); + + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw"), + abi.encode(address(MockCallerEVMAddr)) + ); + + bytes memory executeCall = bytes("{\"burn_batch\":{\"from\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"batch\":[{\"token_id\":\"1\",\"amount\":\"1\"},{\"token_id\":\"2\",\"amount\":\"2\"}]}}"); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall), + abi.encode(bytes("")) + ); + vm.expectCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("execute(string,bytes,bytes)", MockCWContractAddress, executeCall, bytes("[]")) + ); + + uint256[] memory ids = new uint256[](2); + uint256[] memory amounts = new uint256[](2); + ids[0] = 1; + ids[1] = 2; + amounts[0] = 1; + amounts[1] = 2; + + vm.startPrank(MockCallerEVMAddr); + pointer.burnBatch(MockCallerEVMAddr, ids, amounts); + vm.stopPrank(); + } +} \ No newline at end of file diff --git a/contracts/test/CW1155toERC1155PointerTest.js b/contracts/test/CW1155toERC1155PointerTest.js new file mode 100644 index 000000000..07207b20d --- /dev/null +++ b/contracts/test/CW1155toERC1155PointerTest.js @@ -0,0 +1,214 @@ +const {setupSigners, deployEvmContract, getAdmin, deployWasm, executeWasm, queryWasm, + deployErc1155PointerForCw1155, WASM, registerPointerForERC1155 +} = require("./lib"); +const {expect} = require("chai"); + +describe("CW1155 to ERC1155 Pointer", function () { + let accounts; + let erc1155; + let pointer; + let admin; + + before(async function () { + accounts = await setupSigners(await hre.ethers.getSigners()) + erc1155 = await deployEvmContract("ERC1155Example") + admin = await getAdmin() + + pointer = await registerPointerForERC1155(await erc1155.getAddress()) + + await (await erc1155.mintForTest(accounts[0].evmAddress, 1)).wait() + await (await erc1155.mintForTest(accounts[1].evmAddress, 2)).wait() + await (await erc1155.mintForTest(admin.evmAddress, 3)).wait() + await (await erc1155.setDefaultRoyalty(admin.evmAddress)).wait() + await (await erc1155.connect(accounts[1].signer).setApprovalForAll(admin.evmAddress, true)).wait(); + }) + + describe("validation", function(){ + it("should not allow a pointer to the pointer", async function(){ + try { + await deployErc1155PointerForCw1155(hre.ethers.provider, pointer) + expect.fail(`Expected to be prevented from creating a pointer`); + } catch(e){ + expect(e.message).to.include("contract deployment failed"); + } + }) + }) + + describe("query", function(){ + it("should query the balance of an owner's token", async function () { + const result = await queryWasm(pointer, "balance_of", { "owner": admin.seiAddress, token_id: "4" }); + expect(result).to.deep.equal({data:{balance:11}}); + }); + + it("should batch query the balance of several owners' tokens", async function () { + const result = await queryWasm(pointer, "balance_of_batch", [{"owner": admin.seiAddress, token_id: "4"}, {"owner": accounts[0].seiAddress, token_id: "14"}]); + expect(result).to.deep.equal({data:{ + balances: [ + { token_id: "4", owner: admin.seiAddress, amount: "11" }, + { token_id: "14", owner: accounts[0].seiAddress, amount: "0" }, + ] + }}); + }); + + it("should show a specific spender is approved", async function () { + const result = await queryWasm(pointer, "is_approved_for_all", { "owner": accounts[1].seiAddress, operator: admin.seiAddress }); + expect(result).to.deep.equal({data:{approved:true}}); + }); + + it("should show a specific spender is not approved", async function () { + const result = await queryWasm(pointer, "is_approved_for_all", { "owner": admin.seiAddress, operator: accounts[0].seiAddress }); + expect(result).to.deep.equal({data:{approved:false}}); + }); + + it("should retrieve number of circulating tokens", async function () { + const result = await queryWasm(pointer, "num_tokens", {}); + expect(result).to.deep.equal({data:{count:75*5}}); + }); + + it("should retrieve number of circulating tokens for one token id", async function () { + const result = await queryWasm(pointer, "num_tokens", { "token_id": "1" }); + expect(result).to.deep.equal({data:{count:21}}); + }); + + it("should retrieve contract information", async function () { + const result = await queryWasm(pointer, "contract_info", {}); + expect(result).to.deep.equal({data:{name:"DummyERC1155",symbol:"DUMMY"}}); + }); + + it("should fetch all information about an NFT", async function () { + const result = await queryWasm(pointer, "token_info", { token_id: "1" }); + expect(result.data.token_uri).to.equal('https://example.com/{id}'); + expect(result.data.extension.royalty_percentage).to.equal(5); + expect(result.data.extension.royalty_payment_address).to.equal(admin.seiAddress); + }); + }) + + describe("execute operations", function () { + it("should transfer an NFT to another address", async function () { + let ownerResult = await queryWasm(pointer, "balance_of_batch", [ + { owner: admin.seiAddress, token_id: "3" }, + { owner: accounts[1].seiAddress, token_id: "3" }, + ]); + expect(ownerResult).to.deep.equal({ data: { + balances: [ + { token_id: "3", owner: admin.seiAddress, amount: "10" }, + { token_id: "3", owner: accounts[1].seiAddress, amount: "11" }, + ] + }}); + const res = await executeWasm(pointer, { + send: { + from: admin.seiAddress, + to: accounts[1].seiAddress, + token_id: "3", + amount: "5", + } + }); + expect(res.code).to.equal(0); + ownerResult = await queryWasm(pointer, "balance_of_batch", [ + { owner: admin.seiAddress, token_id: "3" }, + { owner: accounts[1].seiAddress, token_id: "3" }, + ]); + expect(ownerResult).to.deep.equal({ data: { + balances: [ + { token_id: "3", owner: admin.seiAddress, amount: "5" }, + { token_id: "3", owner: accounts[1].seiAddress, amount: "16" }, + ] + }}); + await (await erc1155.connect(accounts[1].signer).safeTransferFrom(accounts[1].evmAddress, admin.evmAddress, 3, 5, '0x')).wait(); + ownerResult = await queryWasm(pointer, "balance_of_batch", [ + { owner: admin.seiAddress, token_id: "3" }, + { owner: accounts[1].seiAddress, token_id: "3" }, + ]); + expect(ownerResult).to.deep.equal({ data: { + balances: [ + { token_id: "3", owner: admin.seiAddress, amount: "10" }, + { token_id: "3", owner: accounts[1].seiAddress, amount: "11" }, + ] + }}); + }); + + it("should not transfer an NFT if not owned", async function () { + let ownerResult = await queryWasm(pointer, "balance_of_batch", [ + { owner: admin.seiAddress, token_id: "0" }, + { owner: accounts[1].seiAddress, token_id: "0" }, + ]); + expect(ownerResult).to.deep.equal({ data: { + balances: [ + { token_id: "0", owner: admin.seiAddress, amount: "0" }, + { token_id: "0", owner: accounts[1].seiAddress, amount: "0" }, + ] + }}); + const res = await executeWasm(pointer, { + send: { + from: accounts[1].seiAddress, + to: admin.seiAddress, + token_id: "0", + amount: "5", + } + }); + expect(res.code).to.not.equal(0); + ownerResult = await queryWasm(pointer, "balance_of_batch", [ + { owner: admin.seiAddress, token_id: "0" }, + { owner: accounts[1].seiAddress, token_id: "0" }, + ]); + expect(ownerResult).to.deep.equal({ data: { + balances: [ + { token_id: "0", owner: admin.seiAddress, amount: "0" }, + { token_id: "0", owner: accounts[1].seiAddress, amount: "0" }, + ] + }}); + }); + + it("should transfer multiple NFT token ids to another address", async function () { + let ownerResult = await queryWasm(pointer, "balance_of_batch", [ + { owner: admin.seiAddress, token_id: "3" }, + { owner: accounts[1].seiAddress, token_id: "3" }, + { owner: admin.seiAddress, token_id: "4" }, + { owner: accounts[1].seiAddress, token_id: "4" }, + ]); + expect(ownerResult).to.deep.equal({ data: { + balances: [ + { token_id: "3", owner: admin.seiAddress, amount: "10" }, + { token_id: "3", owner: accounts[1].seiAddress, amount: "11" }, + { token_id: "4", owner: admin.seiAddress, amount: "11" }, + { token_id: "4", owner: accounts[1].seiAddress, amount: "12" }, + ] + }}); + const res = await executeWasm(pointer, { + send_batch: { + from: admin.seiAddress, + to: accounts[1].seiAddress, + batch: [ + { token_id: "3", amount: "5" }, + { token_id: "4", amount: "1" }, + ], + } + }); + expect(res.code).to.equal(0); + ownerResult = await queryWasm(pointer, "balance_of_batch", [ + { owner: admin.seiAddress, token_id: "3" }, + { owner: accounts[1].seiAddress, token_id: "3" }, + { owner: admin.seiAddress, token_id: "4" }, + { owner: accounts[1].seiAddress, token_id: "4" }, + ]); + expect(ownerResult).to.deep.equal({ data: { + balances: [ + { token_id: "3", owner: admin.seiAddress, amount: "5" }, + { token_id: "3", owner: accounts[1].seiAddress, amount: "16" }, + { token_id: "4", owner: admin.seiAddress, amount: "10" }, + { token_id: "4", owner: accounts[1].seiAddress, amount: "13" }, + ] + }}); + }); + + it("should set an operator for all tokens of an owner", async function () { + expect(await erc1155.isApprovedForAll(admin.evmAddress, accounts[1].evmAddress)).to.be.false; + await executeWasm(pointer, { approve_all: { operator: accounts[1].seiAddress }}); + expect(await erc1155.isApprovedForAll(admin.evmAddress, accounts[1].evmAddress)).to.be.true + await executeWasm(pointer, { revoke_all: { operator: accounts[1].seiAddress }}); + expect(await erc1155.isApprovedForAll(admin.evmAddress, accounts[1].evmAddress)).to.be.false; + }); + + }); + +}) \ No newline at end of file diff --git a/contracts/test/CW721ERC721PointerTest.t.sol b/contracts/test/CW721ERC721PointerTest.t.sol index cb2ce4e58..57c6fe0e9 100644 --- a/contracts/test/CW721ERC721PointerTest.t.sol +++ b/contracts/test/CW721ERC721PointerTest.t.sol @@ -216,6 +216,42 @@ contract CW721ERC721PointerTest is Test { assertEq(pointer.isApprovedForAll(0xf39Fd6e51aad88F6F4ce6aB8827279cffFb92266, 0xF39fD6e51Aad88F6f4CE6AB8827279CFffb92267), true); } + function testRoyaltyInfo() public { + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, bytes("{\"extension\":{\"msg\":{\"check_royalties\":{}}}}")), + abi.encode("{\"royalty_payments\":true}") + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsBytes(bytes,string)", bytes("{\"royalty_payments\":true}"), "royalty_payments"), + abi.encode("true") + ); + vm.mockCall( + WASMD_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("query(string,bytes)", MockCWContractAddress, bytes("{\"extension\":{\"msg\":{\"royalty_info\":{\"token_id\":\"1\",\"sale_price\":\"1000\"}}}}")), + abi.encode("{\"address\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"royalty_amount\":\"10\"}") + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsBytes(bytes,string)", bytes("{\"address\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"royalty_amount\":\"10\"}"), "address"), + abi.encode("sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw") + ); + vm.mockCall( + JSON_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("extractAsUint256(bytes,string)", bytes("{\"address\":\"sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw\",\"royalty_amount\":\"10\"}"), "royalty_amount"), + abi.encode(10) + ); + vm.mockCall( + ADDR_PRECOMPILE_ADDRESS, + abi.encodeWithSignature("getEvmAddr(string)", "sei19zhelek4q5lt4zam8mcarmgv92vzgqd3ux32jw"), + abi.encode(address(MockCallerEVMAddr)) + ); + (address recipient, uint256 royalties) = pointer.royaltyInfo(1, 1000); + assertEq(recipient, address(MockCallerEVMAddr)); + assertEq(royalties, 10); + } + function testTransferFrom() public { vm.mockCall( WASMD_PRECOMPILE_ADDRESS, diff --git a/contracts/test/ERC1155toCW1155PointerTest.js b/contracts/test/ERC1155toCW1155PointerTest.js new file mode 100644 index 000000000..a503e3135 --- /dev/null +++ b/contracts/test/ERC1155toCW1155PointerTest.js @@ -0,0 +1,157 @@ +const {setupSigners, deployErc1155PointerForCw1155, getAdmin, deployWasm, executeWasm, ABI, WASM, + registerPointerForERC1155 +} = require("./lib"); +const {expect} = require("chai"); + +describe("ERC1155 to CW1155 Pointer", function () { + let accounts; + let pointerAcc0; + let pointerAcc1; + let cw1155Address; + let admin; + + before(async function () { + accounts = await setupSigners(await hre.ethers.getSigners()) + admin = await getAdmin() + + cw1155Address = await deployWasm(WASM.CW1155, admin.seiAddress, "cw1155", { + name: "Test", + symbol: "TEST", + minter: admin.seiAddress + }) + + await executeWasm(cw1155Address, {mint: {recipient: admin.seiAddress, msg: {token_id: "1", amount: "10", token_uri: "uri1"}}}); + await executeWasm(cw1155Address, {mint: {recipient: accounts[0].seiAddress, msg: {token_id: "1", amount: "11"}}}); + await executeWasm(cw1155Address, {mint: {recipient: accounts[1].seiAddress, msg: {token_id: "2", amount: "12", token_uri: "uri2"}}}); + await executeWasm(cw1155Address, {mint: {recipient: admin.seiAddress, msg: {token_id: "2", amount: "13"}}}); + await executeWasm(cw1155Address, {mint: {recipient: accounts[1].seiAddress, msg: {token_id: "3", amount: "14", token_uri: "uri3"}}}); + + const pointerAddr = await deployErc1155PointerForCw1155(hre.ethers.provider, cw1155Address) + const contract = new hre.ethers.Contract(pointerAddr, ABI.ERC1155, hre.ethers.provider); + pointerAcc0 = contract.connect(accounts[0].signer) + pointerAcc1 = contract.connect(accounts[1].signer) + }) + + describe("validation", function(){ + it("should not allow a pointer to the pointer", async function(){ + try { + await registerPointerForERC1155(await pointerAcc0.getAddress()) + expect.fail(`Expected to be prevented from creating a pointer`); + } catch(e){ + expect(e.message).to.include("contract deployment failed"); + } + }) + }) + + describe("read", function(){ + it("get name", async function () { + const name = await pointerAcc0.name(); + expect(name).to.equal("Test"); + }); + + it("get symbol", async function () { + const symbol = await pointerAcc0.symbol(); + expect(symbol).to.equal("TEST"); + }); + + it("token uri", async function () { + const uri = await pointerAcc0.uri(1); + expect(uri).to.equal("uri1"); + }); + + it("balance of", async function () { + const balance = await pointerAcc0.balanceOf(admin.evmAddress, 1); + expect(balance).to.equal(10); + }); + + it("balance of batch", async function () { + const froms = [ + admin.evmAddress, + admin.evmAddress, + accounts[0].evmAddress, + accounts[0].evmAddress, + ]; + const tids = [1, 2, 1, 2]; + const balances = await pointerAcc0.balanceOfBatch(froms, tids); + expect(balances.length).to.equal(froms.length); + expect(balances[0]).to.equal(10); + expect(balances[1]).to.equal(13); + expect(balances[2]).to.equal(11); + expect(balances[3]).to.equal(0); + }); + + it("is approved for all", async function () { + const approved = await pointerAcc0.isApprovedForAll(admin.evmAddress, admin.evmAddress); + expect(approved).to.equal(false); + }); + }) + + describe("write", function(){ + it("transfer from", async function () { + // accounts[0] should transfer token id 1 to accounts[1] + let balance0 = await pointerAcc0.balanceOf(accounts[0].evmAddress, 1); + expect(balance0).to.equal(11); + let balance1 = await pointerAcc0.balanceOf(accounts[1].evmAddress, 1); + expect(balance1).to.equal(0); + const transferTxResp = await pointerAcc0.safeTransferFrom(accounts[0].evmAddress, accounts[1].evmAddress, 1, 5, '0x'); + await transferTxResp.wait(); + balance0 = await pointerAcc0.balanceOf(accounts[0].evmAddress, 1); + expect(balance0).to.equal(6); + balance1 = await pointerAcc0.balanceOf(accounts[1].evmAddress, 1); + expect(balance1).to.equal(5); + }); + + it("cannot transfer token you don't own", async function () { + await expect(pointerAcc0.safeTransferFrom(accounts[0].evmAddress, accounts[1].evmAddress, 3, 1, '0x')).to.be.reverted; + }); + + it("cannot transfer token with insufficient balance", async function () { + await expect(pointerAcc0.safeTransferFrom(accounts[0].evmAddress, accounts[1].evmAddress, 1, 100, '0x')).to.be.reverted; + }); + + it("batch transfer from", async function () { + const tids = [3, 2]; + const tamounts = [5, 4]; + let balances = await pointerAcc1.balanceOfBatch( + [accounts[1].evmAddress, accounts[1].evmAddress, accounts[0].evmAddress, accounts[0].evmAddress], + [...tids, ...tids] + ); + expect(balances[0]).to.equal(14); + expect(balances[1]).to.equal(12); + expect(balances[2]).to.equal(0); + expect(balances[3]).to.equal(0); + const transferTxResp = await pointerAcc1.safeBatchTransferFrom( + accounts[1].evmAddress, + accounts[0].evmAddress, + tids, + tamounts, + '0x' + ); + await transferTxResp.wait(); + balances = await pointerAcc1.balanceOfBatch( + [accounts[1].evmAddress, accounts[1].evmAddress, accounts[0].evmAddress, accounts[0].evmAddress], + [...tids, ...tids] + ); + expect(balances[0]).to.equal(9); + expect(balances[1]).to.equal(8); + expect(balances[2]).to.equal(5); + expect(balances[3]).to.equal(4); + }); + + it("set approval for all", async function () { + const setApprovalForAllTxResp = await pointerAcc0.setApprovalForAll(accounts[1].evmAddress, true); + await setApprovalForAllTxResp.wait(); + const approved = await pointerAcc0.isApprovedForAll(accounts[0].evmAddress, accounts[1].evmAddress); + expect(approved).to.equal(true); + + // test revoking approval + await mine(pointerAcc0.setApprovalForAll(accounts[1].evmAddress, false)); + const approvedAfter = await pointerAcc0.isApprovedForAll(accounts[0].evmAddress, accounts[1].evmAddress); + expect(approvedAfter).to.equal(false); + }); + }) +}) + +async function mine(action) { + await (await action).wait() +} diff --git a/contracts/test/ERC721toCW721PointerTest.js b/contracts/test/ERC721toCW721PointerTest.js index b871af9d9..b04fc2f35 100644 --- a/contracts/test/ERC721toCW721PointerTest.js +++ b/contracts/test/ERC721toCW721PointerTest.js @@ -1,10 +1,8 @@ -const {setupSigners, deployErc721PointerForCw721, getAdmin, deployWasm, executeWasm, ABI, registerPointerForERC20, +const {setupSigners, deployErc721PointerForCw721, getAdmin, deployWasm, executeWasm, ABI, WASM, registerPointerForERC721 } = require("./lib"); const {expect} = require("chai"); -const CW721_BASE_WASM_LOCATION = "../contracts/wasm/cw721_base.wasm"; - describe("ERC721 to CW721 Pointer", function () { let accounts; let pointerAcc0; @@ -16,7 +14,7 @@ describe("ERC721 to CW721 Pointer", function () { accounts = await setupSigners(await hre.ethers.getSigners()) admin = await getAdmin() - cw721Address = await deployWasm(CW721_BASE_WASM_LOCATION, admin.seiAddress, "cw721", { + cw721Address = await deployWasm(WASM.CW721, admin.seiAddress, "cw721", { name: "Test", symbol: "TEST", minter: admin.seiAddress diff --git a/contracts/test/lib.js b/contracts/test/lib.js index 94a138874..db9144269 100644 --- a/contracts/test/lib.js +++ b/contracts/test/lib.js @@ -35,13 +35,35 @@ const ABI = { "function safeTransferFrom(address from, address to, uint256 tokenId) returns (bool)", "function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory data) returns (bool)" ], + ERC1155: [ + "event TransferSingle(address indexed _operator, address indexed _from, address indexed _to, uint256 _id, uint256 _value)", + "event TransferBatch(address indexed _operator, address indexed _from, address indexed _to, uint256[] _ids, uint256[] _values)", + "event ApprovalForAll(address indexed _owner, address indexed _operator, bool _approved)", + "event URI(string _value, uint256 indexed _id)", + "function name() view returns (string)", + "function symbol() view returns (string)", + "function uri(uint256 _id) view returns (string)", + "function royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address, uint256)", + "function balanceOf(address _owner, uint256 _id) view returns (uint256)", + "function balanceOfBatch(address[] _owners, uint256[] _ids) view returns (uint256[])", + "function isApprovedForAll(address _owner, address _operator) view returns (bool)", + "function setApprovalForAll(address _operator, bool _approved)", + "function transferFrom(address from, address to, uint256 tokenId) returns (bool)", + "function safeTransferFrom(address _from, address _to, uint256 _id, uint256 _value, bytes _data)", + "function safeBatchTransferFrom(address _from, address _to, uint256[] _ids, uint256[] _values, bytes _data)", + "function totalSupply() view returns (uint256)", + "function totalSupply(uint256 id) view returns (uint256)", + "function exists(uint256 id) view returns (uint256)", + ], } const WASM = { + CW1155: "../contracts/wasm/cw1155_base.wasm", CW721: "../contracts/wasm/cw721_base.wasm", CW20: "../contracts/wasm/cw20_base.wasm", POINTER_CW20: "../example/cosmwasm/cw20/artifacts/cwerc20.wasm", POINTER_CW721: "../example/cosmwasm/cw721/artifacts/cwerc721.wasm", + POINTER_CW1155: "../example/cosmwasm/cw721/artifacts/cwerc1155.wasm", } function sleep(ms) { @@ -212,6 +234,12 @@ async function getPointerForCw721(cw721Address) { return JSON.parse(output); } +async function getPointerForCw1155(cw1155Address) { + const command = `seid query evm pointer CW1155 ${cw1155Address} -o json` + const output = await execute(command); + return JSON.parse(output); +} + async function deployErc20PointerForCw20(provider, cw20Address, attempts=10, from=adminKeyName, evmRpc="") { let command = `seid tx evm register-evm-pointer CW20 ${cw20Address} --from=${from} -b block` if (evmRpc) { @@ -273,6 +301,27 @@ async function deployErc721PointerForCw721(provider, cw721Address, from=adminKey throw new Error("contract deployment failed") } +async function deployErc1155PointerForCw1155(provider, cw1155Address, from=adminKeyName, evmRpc="") { + let command = `seid tx evm register-evm-pointer CW1155 ${cw1155Address} --from=${from} -b block` + if (evmRpc) { + command = command + ` --evm-rpc=${evmRpc}` + } + const output = await execute(command); + const txHash = output.replace(/.*0x/, "0x").trim() + let attempt = 0; + while(attempt < 10) { + const receipt = await provider.getTransactionReceipt(txHash); + if(receipt && receipt.status === 1) { + return (await getPointerForCw1155(cw1155Address)).pointer + } else if(receipt){ + throw new Error("contract deployment failed") + } + await sleep(500) + attempt++ + } + throw new Error("contract deployment failed") +} + async function deployWasm(path, adminAddr, label, args = {}, from=adminKeyName) { const codeId = await storeWasm(path, from) return await instantiateWasm(codeId, adminAddr, label, args, from) @@ -330,6 +379,15 @@ async function registerPointerForERC721(erc721Address, fees="20000usei", from=ad return getEventAttribute(response, "pointer_registered", "pointer_address") } +async function registerPointerForERC1155(erc1155Address, fees="20000usei", from=adminKeyName) { + const command = `seid tx evm register-cw-pointer ERC1155 ${erc1155Address} --from ${from} --fees ${fees} --broadcast-mode block -y -o json` + const output = await execute(command); + const response = JSON.parse(output) + if(response.code !== 0) { + throw new Error("contract deployment failed") + } + return getEventAttribute(response, "pointer_registered", "pointer_address") +} async function getSeiAddress(evmAddress) { const command = `seid q evm sei-addr ${evmAddress} -o json` @@ -477,8 +535,10 @@ module.exports = { deployErc20PointerForCw20, deployErc20PointerNative, deployErc721PointerForCw721, + deployErc1155PointerForCw1155, registerPointerForERC20, registerPointerForERC721, + registerPointerForERC1155, getPointerForNative, proposeCW20toERC20Upgrade, importKey, diff --git a/contracts/wasm/cw1155_base.wasm b/contracts/wasm/cw1155_base.wasm new file mode 100644 index 0000000000000000000000000000000000000000..635c22ac16ed45e6cdf9c91ade2fa7f04da0c1a1 GIT binary patch literal 454483 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 z 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%0A}Lv25HcBX1N#`lF-<158$oJkgcN`Ia92kGcFy( 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