@@ -19,7 +19,6 @@ import (
1919 "sync"
2020 "time"
2121
22- "github.com/gnolang/gno/gno.land/pkg/gnoland/ugnot"
2322 "github.com/gnolang/gno/gnovm/pkg/doc"
2423 "github.com/gnolang/gno/gnovm/pkg/gnoenv"
2524 gno "github.com/gnolang/gno/gnovm/pkg/gnolang"
@@ -1118,9 +1117,11 @@ func (vm *VMKeeper) QueryStorage(ctx sdk.Context, pkgPath string) (string, error
11181117
11191118func (vm * VMKeeper ) processStorageDeposit (ctx sdk.Context , caller crypto.Address , deposit std.Coins , gnostore gno.Store , params Params ) error {
11201119 realmDiffs := gnostore .RealmStorageDiffs ()
1121- depositAmt := deposit .AmountOf (ugnot .Denom )
1120+ defaultDepositCoin := std .MustParseCoin (params .DefaultDeposit )
1121+ defaultDenom := defaultDepositCoin .Denom
1122+ depositAmt := deposit .AmountOf (defaultDenom )
11221123 if depositAmt == 0 {
1123- depositAmt = std . MustParseCoin ( params . DefaultDeposit ) .Amount
1124+ depositAmt = defaultDepositCoin .Amount
11241125 }
11251126 price := std .MustParseCoin (params .StoragePrice )
11261127
@@ -1143,11 +1144,11 @@ func (vm *VMKeeper) processStorageDeposit(ctx sdk.Context, caller crypto.Address
11431144 requiredDeposit := overflow .Mulp (diff , price .Amount )
11441145 if depositAmt < requiredDeposit {
11451146 allErrs = goerrors .Join (allErrs , fmt .Errorf (
1146- "not enough deposit to cover the storage usage: requires %d%s for %d bytes" ,
1147- requiredDeposit , ugnot . Denom , diff ))
1147+ "not enough deposit to cover the storage usage: requires %d%s for %d bytes but got %d%s " ,
1148+ requiredDeposit , defaultDenom , diff , depositAmt , defaultDenom ))
11481149 continue
11491150 }
1150- err := vm .lockStorageDeposit (ctx , caller , rlm , requiredDeposit , diff )
1151+ err := vm .lockStorageDeposit (ctx , caller , rlm , requiredDeposit , defaultDenom , diff )
11511152 if err != nil {
11521153 allErrs = goerrors .Join (allErrs , fmt .Errorf (
11531154 "lockStorageDeposit failed for realm %s: %w" ,
@@ -1156,7 +1157,7 @@ func (vm *VMKeeper) processStorageDeposit(ctx sdk.Context, caller crypto.Address
11561157 }
11571158 depositAmt -= requiredDeposit
11581159 // Emit event for storage deposit lock
1159- d := std.Coin {Denom : ugnot . Denom , Amount : requiredDeposit }
1160+ d := std.Coin {Denom : defaultDenom , Amount : requiredDeposit }
11601161 evt := chain.StorageDepositEvent {
11611162 BytesDelta : diff ,
11621163 FeeDelta : d ,
@@ -1175,22 +1176,22 @@ func (vm *VMKeeper) processStorageDeposit(ctx sdk.Context, caller crypto.Address
11751176 if rlm .Deposit < uint64 (depositUnlocked ) {
11761177 panic (fmt .Sprintf (
11771178 "not enough deposit to be unlocked for realm %s, realm deposit %d%s; required to unlock: %d%s" ,
1178- rlmPath , rlm .Deposit , ugnot . Denom , depositUnlocked , ugnot . Denom ))
1179+ rlmPath , rlm .Deposit , defaultDenom , depositUnlocked , defaultDenom ))
11791180 }
11801181
1181- isRestricted := slices .Contains (vm .bank .RestrictedDenoms (ctx ), ugnot . Denom )
1182+ isRestricted := slices .Contains (vm .bank .RestrictedDenoms (ctx ), defaultDenom )
11821183 receiver := caller
11831184 if isRestricted {
11841185 // If gnot tokens are locked, sent them to the storageFeeCollector address
11851186 // If unlocked, sent them to memory releaser
11861187 receiver = params .StorageFeeCollector
11871188 }
11881189
1189- err := vm .refundStorageDeposit (ctx , receiver , rlm , depositUnlocked , released )
1190+ err := vm .refundStorageDeposit (ctx , receiver , rlm , depositUnlocked , defaultDenom , released )
11901191 if err != nil {
11911192 return err
11921193 }
1193- d := std.Coin {Denom : ugnot . Denom , Amount : depositUnlocked }
1194+ d := std.Coin {Denom : defaultDenom , Amount : depositUnlocked }
11941195 evt := chain.StorageUnlockEvent {
11951196 // For unlock, BytesDelta is negative
11961197 BytesDelta : diff ,
@@ -1208,10 +1209,10 @@ func (vm *VMKeeper) processStorageDeposit(ctx sdk.Context, caller crypto.Address
12081209 return nil
12091210}
12101211
1211- func (vm * VMKeeper ) lockStorageDeposit (ctx sdk.Context , caller crypto.Address , rlm * gno.Realm , requiredDeposit int64 , diff int64 ) error {
1212+ func (vm * VMKeeper ) lockStorageDeposit (ctx sdk.Context , caller crypto.Address , rlm * gno.Realm , requiredDeposit int64 , depositDenom string , diff int64 ) error {
12121213 storageDepositAddr := gno .DeriveStorageDepositCryptoAddr (rlm .Path )
12131214
1214- d := std.Coins {std.Coin {Denom : ugnot . Denom , Amount : requiredDeposit }}
1215+ d := std.Coins {std.Coin {Denom : depositDenom , Amount : requiredDeposit }}
12151216 err := vm .bank .SendCoinsUnrestricted (ctx , caller , storageDepositAddr , d )
12161217 if err != nil {
12171218 return fmt .Errorf ("unable to transfer deposit %s, %w" , rlm .Path , err )
@@ -1223,9 +1224,9 @@ func (vm *VMKeeper) lockStorageDeposit(ctx sdk.Context, caller crypto.Address, r
12231224 return nil
12241225}
12251226
1226- func (vm * VMKeeper ) refundStorageDeposit (ctx sdk.Context , refundReceiver crypto.Address , rlm * gno.Realm , depositUnlocked int64 , released int64 ) error {
1227+ func (vm * VMKeeper ) refundStorageDeposit (ctx sdk.Context , refundReceiver crypto.Address , rlm * gno.Realm , depositUnlocked int64 , depositDenom string , released int64 ) error {
12271228 storageDepositAddr := gno .DeriveStorageDepositCryptoAddr (rlm .Path )
1228- d := std.Coins {std.Coin {Denom : ugnot . Denom , Amount : depositUnlocked }}
1229+ d := std.Coins {std.Coin {Denom : depositDenom , Amount : depositUnlocked }}
12291230
12301231 err := vm .bank .SendCoinsUnrestricted (ctx , storageDepositAddr , refundReceiver , d )
12311232 if err != nil {
0 commit comments