@@ -177,7 +177,7 @@ func TestClaimSpecificCW721(t *testing.T) {
177177 k .AccountKeeper ().SetAccount (origCtx , acc )
178178 contractAddr := setupCW721Contract (origCtx , claimeeKey , * wKeeper )
179179 ctx , _ := origCtx .CacheContext ()
180- ctx = ctx .WithGasMeter (sdk .NewGasMeter (2000000 , 1 , 1 ))
180+ ctx = ctx .WithGasMeter (sdk .NewGasMeter (3000000 , 1 , 1 ))
181181 _ , remainingGas , err := p .ClaimSpecific (ctx , claimer , & method , []interface {}{signClaimMsg (t , evmtypes .NewMsgClaimSpecific (claimee , claimer , & evmtypes.Asset {AssetType : evmtypes .AssetType_TYPECW721 , ContractAddress : contractAddr .String ()}), claimee , claimer , acc , claimeeKey )}, false )
182182 ctx = ctx .WithGasMeter (sdk .NewInfiniteGasMeterWithMultiplier (ctx ))
183183 require .NoError (t , err )
@@ -187,6 +187,36 @@ func TestClaimSpecificCW721(t *testing.T) {
187187 }
188188}
189189
190+ func TestClaimSingleCW721 (t * testing.T ) {
191+ k := & testkeeper .EVMTestApp .EvmKeeper
192+ origCtx := testkeeper .EVMTestApp .GetContextForDeliverTx (nil ).WithChainID ("sei-test" ).WithBlockTime (time .Now ())
193+ txConfig := testkeeper .EVMTestApp .GetTxConfig ()
194+ a := pcommon .MustGetABI (solo .F , "abi.json" )
195+ method := a .Methods ["claimSpecific" ]
196+ wKeeper := wasmkeeper .NewDefaultPermissionKeeper (testkeeper .EVMTestApp .WasmKeeper )
197+ p := solo .NewExecutor (a , k , k .BankKeeper (), k .AccountKeeper (), wKeeper , testkeeper .EVMTestApp .WasmKeeper , txConfig )
198+ claimeeKey := testkeeper .MockPrivateKey ()
199+ claimee , _ := testkeeper .PrivateKeyToAddresses (claimeeKey )
200+ claimerKey := testkeeper .MockPrivateKey ()
201+ _ , claimer := testkeeper .PrivateKeyToAddresses (claimerKey )
202+ acc := authtypes .NewBaseAccount (claimee , claimeeKey .PubKey (), 10 , 0 )
203+ k .AccountKeeper ().SetAccount (origCtx , acc )
204+ contractAddr := setupCW721Contract (origCtx , claimeeKey , * wKeeper )
205+ ctx , _ := origCtx .CacheContext ()
206+ ctx = ctx .WithGasMeter (sdk .NewGasMeter (2000000 , 1 , 1 ))
207+ _ , remainingGas , err := p .ClaimSpecific (ctx , claimer , & method , []interface {}{signClaimMsg (t , evmtypes .NewMsgClaimSpecific (claimee , claimer , & evmtypes.Asset {AssetType : evmtypes .AssetType_TYPECW721 , ContractAddress : contractAddr .String (), Denom : "5" }), claimee , claimer , acc , claimeeKey )}, false )
208+ ctx = ctx .WithGasMeter (sdk .NewInfiniteGasMeterWithMultiplier (ctx ))
209+ require .NoError (t , err )
210+ require .Equal (t , uint64 (1838040 ), remainingGas )
211+ for i := 0 ; i < 15 ; i ++ {
212+ if i == 5 {
213+ require .Equal (t , k .GetSeiAddressOrDefault (ctx , claimer ).String (), queryCW721Owner (ctx , testkeeper .EVMTestApp .WasmKeeper , contractAddr , fmt .Sprintf ("%d" , i )))
214+ } else {
215+ require .Equal (t , claimee .String (), queryCW721Owner (ctx , testkeeper .EVMTestApp .WasmKeeper , contractAddr , fmt .Sprintf ("%d" , i )))
216+ }
217+ }
218+ }
219+
190220func TestClaimSpecificNative (t * testing.T ) {
191221 k := & testkeeper .EVMTestApp .EvmKeeper
192222 origCtx := testkeeper .EVMTestApp .GetContextForDeliverTx (nil ).WithChainID ("sei-test" ).WithBlockTime (time .Now ())
0 commit comments