Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions x/btcbridge/keeper/deposit.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ func (k Keeper) Mint(ctx sdk.Context, sender string, tx *btcutil.Tx, prevTx *btc

isRunes := edict != nil

// check if the sender is authorized to relay runes deposit
if isRunes && !k.IsAuthorizedNonBtcRelayer(ctx, sender) {
// check if the sender is trusted to relay runes deposit
if isRunes && !k.IsTrustedNonBtcRelayer(ctx, sender) {
return nil, types.ErrUnauthorizedNonBtcRelayer
}

Expand Down
2 changes: 1 addition & 1 deletion x/btcbridge/keeper/msg_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ func (m msgServer) UpdateNonBtcRelayers(goCtx context.Context, msg *types.MsgUpd
return nil, err
}

if !m.IsAuthorizedNonBtcRelayer(ctx, msg.Sender) {
if !m.IsTrustedNonBtcRelayer(ctx, msg.Sender) {
return nil, types.ErrUnauthorizedNonBtcRelayer
}

Expand Down
4 changes: 2 additions & 2 deletions x/btcbridge/keeper/params.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ func (k Keeper) ProtocolWithdrawFeeEnabled(ctx sdk.Context) bool {
return k.GetParams(ctx).ProtocolFees.WithdrawFee > 0
}

// IsAuthorizedNonBtcRelayer returns true if the given address is an authorized non-btc relayer, false otherwise
func (k Keeper) IsAuthorizedNonBtcRelayer(ctx sdk.Context, addr string) bool {
// IsTrustedNonBtcRelayer returns true if the given address is a trusted non-btc relayer, false otherwise
func (k Keeper) IsTrustedNonBtcRelayer(ctx sdk.Context, addr string) bool {
for _, relayer := range k.GetParams(ctx).NonBtcRelayers {
if relayer == addr {
return true
Expand Down
17 changes: 11 additions & 6 deletions x/btcbridge/keeper/withdraw.go
Original file line number Diff line number Diff line change
Expand Up @@ -166,11 +166,12 @@ func (k Keeper) GetWithdrawRequest(ctx sdk.Context, sequence uint64) *types.Bitc
func (k Keeper) GetWithdrawRequestByTxHash(ctx sdk.Context, hash string) *types.BitcoinWithdrawRequest {
store := ctx.KVStore(k.storeKey)

var withdrawRequest types.BitcoinWithdrawRequest
bz := store.Get(types.BtcWithdrawRequestByTxHashKey(hash))
k.cdc.MustUnmarshal(bz, &withdrawRequest)
if bz != nil {
return k.GetWithdrawRequest(ctx, sdk.BigEndianToUint64(bz))
}

return &withdrawRequest
return nil
}

// SetWithdrawRequest sets the withdrawal request
Expand All @@ -180,7 +181,7 @@ func (k Keeper) SetWithdrawRequest(ctx sdk.Context, withdrawRequest *types.Bitco
bz := k.cdc.MustMarshal(withdrawRequest)

store.Set(types.BtcWithdrawRequestKey(withdrawRequest.Sequence), bz)
store.Set(types.BtcWithdrawRequestByTxHashKey(withdrawRequest.Txid), types.Int64ToBytes(withdrawRequest.Sequence))
store.Set(types.BtcWithdrawRequestByTxHashKey(withdrawRequest.Txid), sdk.Uint64ToBigEndian(withdrawRequest.Sequence))
}

// IterateWithdrawRequests iterates through all withdrawal requests
Expand Down Expand Up @@ -281,11 +282,15 @@ func (k Keeper) LockAssets(ctx sdk.Context, req *types.BitcoinWithdrawRequest, a
return err
}

if err = k.bankKeeper.SendCoinsFromAccountToModule(ctx, sdk.MustAccAddressFromBech32(req.Address), types.ModuleName, sdk.NewCoins(amount, btcNetworkFee)); err != nil {
if err = k.bankKeeper.SendCoinsFromAccountToModule(ctx, sdk.MustAccAddressFromBech32(req.Address), types.ModuleName, sdk.NewCoins(amount)); err != nil {
return err
}

if err = k.bankKeeper.SendCoinsFromAccountToModule(ctx, sdk.MustAccAddressFromBech32(req.Address), types.ModuleName, sdk.NewCoins(btcNetworkFee)); err != nil {
return err
}

// lock the assets sent to the module account, which will be burned when the withdrawal tx is relayed back
// mark locked assets which will be burned when the withdrawal tx is relayed back
k.lockAssets(ctx, req.Txid, amount, btcNetworkFee)

return nil
Expand Down
8 changes: 5 additions & 3 deletions x/btcbridge/types/params.go
Original file line number Diff line number Diff line change
Expand Up @@ -74,17 +74,18 @@ func (p Params) Validate() error {
return validateTSSParams(&p.TssParams)
}

// SelectVaultByAddress returns the vault by the address
// SelectVaultByAddress returns the vault by the given address
func SelectVaultByAddress(vaults []*Vault, address string) *Vault {
for _, v := range vaults {
if v.Address == address {
return v
}
}

return nil
}

// SelectVaultByPubKey returns the vault by the public key
// SelectVaultByPubKey returns the vault by the given public key
func SelectVaultByPubKey(vaults []*Vault, pubKey string) *Vault {
for _, v := range vaults {
if v.PubKey == pubKey {
Expand All @@ -110,7 +111,7 @@ func SelectVaultByAssetType(vaults []*Vault, assetType AssetType) *Vault {
return nil
}

// SelectVaultByPkScript returns the vault by the pk script
// SelectVaultByPkScript returns the vault by the given pk script for convenience
func SelectVaultByPkScript(vaults []*Vault, pkScript []byte) *Vault {
chainCfg := sdk.GetConfig().GetBtcChainCfg()

Expand All @@ -133,6 +134,7 @@ func SelectVaultByPkScript(vaults []*Vault, pkScript []byte) *Vault {
return nil
}

// validateNonBtcRelayers validates the given relayers
func validateNonBtcRelayers(relayers []string) error {
if len(relayers) == 0 {
return ErrInvalidParams
Expand Down