diff --git a/babylonclient/babyloncontroller.go b/babylonclient/babyloncontroller.go index dbfe282..7b34495 100644 --- a/babylonclient/babyloncontroller.go +++ b/babylonclient/babyloncontroller.go @@ -43,7 +43,7 @@ var ( // TODO: Maybe configurable? RtyAttNum = uint(5) RtyAtt = retry.Attempts(RtyAttNum) - RtyDel = retry.Delay(time.Millisecond * 400) + RtyDel = retry.Delay(time.Millisecond * 600) RtyErr = retry.LastErrorOnly(true) ) @@ -110,8 +110,8 @@ type StakingTrackerResponse struct { } type FinalityProviderInfo struct { - BabylonPk secp256k1.PubKey - BtcPk btcec.PublicKey + BabylonAddr sdk.AccAddress + BtcPk btcec.PublicKey } type FinalityProvidersClientResponse struct { @@ -535,11 +535,15 @@ func (bc *BabylonController) QueryFinalityProviders( if err != nil { return nil, fmt.Errorf("query finality providers error: %w", err) } - fpBabylonPk := finalityProvider.BabylonPk + + fpAddr, err := sdk.AccAddressFromBech32(finalityProvider.Addr) + if err != nil { + return nil, fmt.Errorf("query finality providers error transform address: %s - %w", finalityProvider.Addr, err) + } fpInfo := FinalityProviderInfo{ - BabylonPk: *fpBabylonPk, - BtcPk: *fpBtcKey, + BabylonAddr: fpAddr, + BtcPk: *fpBtcKey, } finalityProviders = append(finalityProviders, fpInfo) @@ -598,15 +602,19 @@ func (bc *BabylonController) QueryFinalityProvider(btcPubKey *btcec.PublicKey) ( } btcPk, err := response.FinalityProvider.BtcPk.ToBTCPK() - if err != nil { return nil, fmt.Errorf("received malformed btc pk in babylon response: %w", err) } + fpAddr, err := sdk.AccAddressFromBech32(response.FinalityProvider.Addr) + if err != nil { + return nil, fmt.Errorf("received malformed fp addr in babylon response: %s - %w", response.FinalityProvider.Addr, err) + } + return &FinalityProviderClientResponse{ FinalityProvider: FinalityProviderInfo{ - BabylonPk: *response.FinalityProvider.BabylonPk, - BtcPk: *btcPk, + BabylonAddr: fpAddr, + BtcPk: *btcPk, }, }, nil } @@ -668,22 +676,26 @@ func chainToChainBytes(chain []*wire.BlockHeader) []bbntypes.BTCHeaderBytes { // RegisterFinalityProvider registers a BTC finality provider via a MsgCreateFinalityProvider to Babylon // it returns tx hash and error func (bc *BabylonController) RegisterFinalityProvider( - bbnPubKey *secp256k1.PubKey, + fpAddr sdk.AccAddress, + fpPrivKeyBBN *secp256k1.PrivKey, btcPubKey *bbntypes.BIP340PubKey, commission *sdkmath.LegacyDec, description *sttypes.Description, - pop *btcstypes.ProofOfPossession, -) (*pv.RelayerTxResponse, error) { + pop *btcstypes.ProofOfPossessionBTC, +) error { registerMsg := &btcstypes.MsgCreateFinalityProvider{ - Signer: bc.getTxSigner(), + Addr: fpAddr.String(), Commission: commission, - BabylonPk: bbnPubKey, BtcPk: btcPubKey, Description: description, Pop: pop, } - return bc.reliablySendMsgs([]sdk.Msg{registerMsg}) + fpPrivKeyBBN.PubKey() + relayerMsgs := bbnclient.ToProviderMsgs([]sdk.Msg{registerMsg}) + + _, err := bc.bbnClient.SendMessageWithSigner(context.Background(), fpAddr, fpPrivKeyBBN, relayerMsgs) + return err } func (bc *BabylonController) QueryDelegationInfo(stakingTxHash *chainhash.Hash) (*DelegationInfo, error) { diff --git a/babylonclient/interface.go b/babylonclient/interface.go index e771a03..7d20e04 100644 --- a/babylonclient/interface.go +++ b/babylonclient/interface.go @@ -4,6 +4,7 @@ import ( "fmt" sdkmath "cosmossdk.io/math" + "github.com/babylonchain/babylon/testutil/datagen" "github.com/babylonchain/babylon/x/btcstaking/types" "github.com/btcsuite/btcd/btcec/v2" "github.com/btcsuite/btcd/btcutil" @@ -158,12 +159,9 @@ func GetMockClient() *MockBabylonClient { panic(err) } - fpBabylonPrivKey := secp256k1.GenPrivKey() - fpBabylonPubKey := fpBabylonPrivKey.PubKey().(*secp256k1.PubKey) - vi := FinalityProviderInfo{ - BabylonPk: *fpBabylonPubKey, - BtcPk: *fpBtcPrivKey.PubKey(), + BabylonAddr: datagen.GenRandomAccount().GetAddress(), + BtcPk: *fpBtcPrivKey.PubKey(), } return &MockBabylonClient{ diff --git a/go.mod b/go.mod index 2230f69..66ee6f9 100644 --- a/go.mod +++ b/go.mod @@ -6,9 +6,9 @@ require ( cosmossdk.io/errors v1.0.1 cosmossdk.io/math v1.3.0 github.com/avast/retry-go/v4 v4.5.1 - github.com/babylonchain/babylon v0.9.0-rc.1 + github.com/babylonchain/babylon v0.9.0-rc.2 github.com/babylonchain/networks/parameters v0.2.1 - github.com/btcsuite/btcd v0.24.0 + github.com/btcsuite/btcd v0.24.2 github.com/btcsuite/btcd/btcec/v2 v2.3.2 github.com/btcsuite/btcd/btcutil v1.1.5 github.com/btcsuite/btcd/btcutil/psbt v1.1.8 diff --git a/go.sum b/go.sum index cd4900f..ab6c633 100644 --- a/go.sum +++ b/go.sum @@ -285,8 +285,8 @@ github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX github.com/aws/aws-sdk-go v1.44.312 h1:llrElfzeqG/YOLFFKjg1xNpZCFJ2xraIi3PqSuP+95k= github.com/aws/aws-sdk-go v1.44.312/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= -github.com/babylonchain/babylon v0.9.0-rc.1 h1:mZYKQVHVKFUA2xaEAzJloB1kyePHvZECJPgm3p9TYas= -github.com/babylonchain/babylon v0.9.0-rc.1/go.mod h1:YFALTW+Kp/b5jSDoA7Z70RggJjAedlmQTrpdeU8c3hY= +github.com/babylonchain/babylon v0.9.0-rc.2 h1:cnkVdfJgwXEarzQrqJ2otONuEl+Xe22bN6bXyoenBR4= +github.com/babylonchain/babylon v0.9.0-rc.2/go.mod h1:QTjpnEAEReQofIpZikCQXUZxSkdK0TrWAUbgxOSF9yA= github.com/babylonchain/networks/parameters v0.2.1 h1:OKHiCnwL/UdVN17cMwCrHz/bAjO/USauLiPyNlnVl6E= github.com/babylonchain/networks/parameters v0.2.1/go.mod h1:nejhvrL7Iwh5Vunvkg7pnomQZlHnyNzOY9lQaDp6tOA= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= @@ -310,8 +310,8 @@ github.com/btcsuite/btcd v0.22.0-beta.0.20220207191057-4dc4ff7963b4/go.mod h1:7a github.com/btcsuite/btcd v0.23.1/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= github.com/btcsuite/btcd v0.23.3/go.mod h1:0QJIIN1wwIXF/3G/m87gIwGniDMDQqjVn4SZgnFpsYY= github.com/btcsuite/btcd v0.23.5-0.20231215221805-96c9fd8078fd/go.mod h1:nm3Bko6zh6bWP60UxwoT5LzdGJsQJaPo6HjduXq9p6A= -github.com/btcsuite/btcd v0.24.0 h1:gL3uHE/IaFj6fcZSu03SvqPMSx7s/dPzfpG/atRwWdo= -github.com/btcsuite/btcd v0.24.0/go.mod h1:K4IDc1593s8jKXIF7yS7yCTSxrknB9z0STzc2j6XgE4= +github.com/btcsuite/btcd v0.24.2 h1:aLmxPguqxza+4ag8R1I2nnJjSu2iFn/kqtHTIImswcY= +github.com/btcsuite/btcd v0.24.2/go.mod h1:5C8ChTkl5ejr3WHj8tkQSCmydiMEPB0ZhQhehpq7Dgg= github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= github.com/btcsuite/btcd/btcec/v2 v2.1.1/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= diff --git a/itest/babylon_node_handler.go b/itest/babylon_node_handler.go index 2d91cc0..e1eb897 100644 --- a/itest/babylon_node_handler.go +++ b/itest/babylon_node_handler.go @@ -14,43 +14,27 @@ import ( "github.com/btcsuite/btcd/btcec/v2" ) -func baseDirBabylondir() (string, error) { - tempPath := os.TempDir() - - tempName, err := os.MkdirTemp(tempPath, "zBabylonTestStaker") - if err != nil { - return "", err - } - - err = os.Chmod(tempName, 0755) - - if err != nil { - return "", err - } - - return tempName, nil -} - -type babylonNode struct { - cmd *exec.Cmd - pidFile string - dataDir string +type BabylonNode struct { + cmd *exec.Cmd + pidFile string + DataDir string + WalletName string } -func newBabylonNode(dataDir string, cmd *exec.Cmd) *babylonNode { - return &babylonNode{ - dataDir: dataDir, - cmd: cmd, +func newBabylonNode(dataDir, walletName string, cmd *exec.Cmd) *BabylonNode { + return &BabylonNode{ + DataDir: dataDir, + cmd: cmd, + WalletName: walletName, } } -func (n *babylonNode) start() error { +func (n *BabylonNode) start() error { if err := n.cmd.Start(); err != nil { return err } - pid, err := os.Create(filepath.Join(n.dataDir, - fmt.Sprintf("%s.pid", "config"))) + pid, err := os.Create(filepath.Join(n.DataDir, fmt.Sprintf("%s.pid", "config"))) if err != nil { return err } @@ -67,7 +51,7 @@ func (n *babylonNode) start() error { return nil } -func (n *babylonNode) stop() (err error) { +func (n *BabylonNode) stop() (err error) { if n.cmd == nil || n.cmd.Process == nil { // return if not properly initialized // or error starting the process @@ -84,7 +68,7 @@ func (n *babylonNode) stop() (err error) { return n.cmd.Process.Signal(os.Interrupt) } -func (n *babylonNode) cleanup() error { +func (n *BabylonNode) cleanup() error { if n.pidFile != "" { if err := os.Remove(n.pidFile); err != nil { log.Printf("unable to remove file %s: %v", n.pidFile, @@ -93,7 +77,7 @@ func (n *babylonNode) cleanup() error { } dirs := []string{ - n.dataDir, + n.DataDir, } var err error for _, dir := range dirs { @@ -104,7 +88,7 @@ func (n *babylonNode) cleanup() error { return nil } -func (n *babylonNode) shutdown() error { +func (n *BabylonNode) shutdown() error { if err := n.stop(); err != nil { return err } @@ -115,7 +99,7 @@ func (n *babylonNode) shutdown() error { } type BabylonNodeHandler struct { - babylonNode *babylonNode + BabylonNode *BabylonNode } func NewBabylonNodeHandler( @@ -136,6 +120,7 @@ func NewBabylonNodeHandler( pubBabylon2 := types.NewBIP340PubKeyFromBTCPK(covenantPk2) pubBabylon3 := types.NewBIP340PubKeyFromBTCPK(covenantPk3) + walletName := "node0" initTestnetCmd := exec.Command( "babylond", "testnet", @@ -166,10 +151,9 @@ func NewBabylonNodeHandler( return nil, err } - nodeDataDir := filepath.Join(testDir, "node0", "babylond") + nodeDataDir := filepath.Join(testDir, walletName, "babylond") f, err := os.Create(filepath.Join(testDir, "babylon.log")) - if err != nil { return nil, err } @@ -184,21 +168,21 @@ func NewBabylonNodeHandler( startCmd.Stdout = f return &BabylonNodeHandler{ - babylonNode: newBabylonNode(testDir, startCmd), + BabylonNode: newBabylonNode(testDir, walletName, startCmd), }, nil } func (w *BabylonNodeHandler) Start() error { - if err := w.babylonNode.start(); err != nil { + if err := w.BabylonNode.start(); err != nil { // try to cleanup after start error, but return original error - _ = w.babylonNode.cleanup() + _ = w.BabylonNode.cleanup() return err } return nil } func (w *BabylonNodeHandler) Stop() error { - if err := w.babylonNode.shutdown(); err != nil { + if err := w.BabylonNode.shutdown(); err != nil { return err } @@ -206,6 +190,85 @@ func (w *BabylonNodeHandler) Stop() error { } func (w *BabylonNodeHandler) GetNodeDataDir() string { - dir := filepath.Join(w.babylonNode.dataDir, "node0", "babylond") + return w.BabylonNode.GetNodeDataDir() +} + +// GetNodeDataDir returns the home path of the babylon node. +func (n *BabylonNode) GetNodeDataDir() string { + dir := filepath.Join(n.DataDir, n.WalletName, "babylond") return dir } + +// TxBankSend send transaction to a address from the node address. +func (n *BabylonNode) TxBankSend(addr, coins string) error { + flags := []string{ + "tx", + "bank", + "send", + n.WalletName, + addr, coins, + "--keyring-backend=test", + fmt.Sprintf("--home=%s", n.GetNodeDataDir()), + "--log_level=debug", + "--chain-id=chain-test", + "-b=sync", "--yes", "--gas-prices=10ubbn", + } + + cmd := exec.Command("babylond", flags...) + _, err := cmd.Output() + if err != nil { + return err + } + return nil +} + +// TxBankMultiSend send transaction to multiple addresses from the node address. +func (n *BabylonNode) TxBankMultiSend(coins string, addresses ...string) error { + // babylond tx bank multi-send [from_key_or_address] [to_address_1 to_address_2 ...] [amount] [flags] + switch len(addresses) { + case 0: + return nil + case 1: + return n.TxBankSend(addresses[0], coins) + default: + flags := []string{ + "tx", + "bank", + "multi-send", + n.WalletName, + } + flags = append(flags, addresses...) + flags = append(flags, + coins, + "--keyring-backend=test", + fmt.Sprintf("--home=%s", n.GetNodeDataDir()), + "--log_level=debug", + "--chain-id=chain-test", + "-b=sync", "--yes", "--gas-prices=10ubbn", + ) + + cmd := exec.Command("babylond", flags...) + _, err := cmd.Output() + if err != nil { + return err + } + return nil + } +} + +func baseDirBabylondir() (string, error) { + tempPath := os.TempDir() + + tempName, err := os.MkdirTemp(tempPath, "zBabylonTestStaker") + if err != nil { + return "", err + } + + err = os.Chmod(tempName, 0755) + + if err != nil { + return "", err + } + + return tempName, nil +} diff --git a/itest/e2e_test.go b/itest/e2e_test.go index 620cffd..9db3c94 100644 --- a/itest/e2e_test.go +++ b/itest/e2e_test.go @@ -150,14 +150,14 @@ type TestManager struct { } type testStakingData struct { - StakerKey *btcec.PublicKey - StakerBabylonAddr sdk.AccAddress - FinalityProviderBabylonPrivKeys []*secp256k1.PrivKey - FinalityProviderBabylonPublicKeys []*secp256k1.PubKey - FinalityProviderBtcPrivKeys []*btcec.PrivateKey - FinalityProviderBtcKeys []*btcec.PublicKey - StakingTime uint16 - StakingAmount int64 + StakerKey *btcec.PublicKey + StakerBabylonAddr sdk.AccAddress + FinalityProviderBabylonPrivKeys []*secp256k1.PrivKey + FinalityProviderBabylonAddrs []sdk.AccAddress + FinalityProviderBtcPrivKeys []*btcec.PrivateKey + FinalityProviderBtcKeys []*btcec.PublicKey + StakingTime uint16 + StakingAmount int64 } func (d *testStakingData) GetNumRestakedFPs() int { @@ -174,25 +174,31 @@ func (tm *TestManager) getTestStakingData( fpBTCSKs, fpBTCPKs, err := datagen.GenRandomBTCKeyPairs(r, numRestakedFPs) require.NoError(t, err) - fpBBNSKs, fpBBNPKs := []*secp256k1.PrivKey{}, []*secp256k1.PubKey{} + fpBBNSKs, fpBBNAddrs := make([]*secp256k1.PrivKey, numRestakedFPs), make([]sdk.AccAddress, numRestakedFPs) + strAddrs := make([]string, numRestakedFPs) for i := 0; i < numRestakedFPs; i++ { fpBBNSK := secp256k1.GenPrivKey() - fpBBNSKs = append(fpBBNSKs, fpBBNSK) - fpBBNPK := fpBBNSK.PubKey().(*secp256k1.PubKey) - fpBBNPKs = append(fpBBNPKs, fpBBNPK) + fpAddr := sdk.AccAddress(fpBBNSK.PubKey().Address().Bytes()) + + fpBBNSKs[i] = fpBBNSK + fpBBNAddrs[i] = fpAddr + strAddrs[i] = fpAddr.String() } + err = tm.BabylonHandler.BabylonNode.TxBankMultiSend("1000000ubbn", strAddrs...) + require.NoError(t, err) + return &testStakingData{ StakerKey: stakerKey, // the staker babylon addr needs to be the same one that is going to sign // the transaction in the end - StakerBabylonAddr: tm.BabylonClient.GetKeyAddress(), - FinalityProviderBabylonPrivKeys: fpBBNSKs, - FinalityProviderBabylonPublicKeys: fpBBNPKs, - FinalityProviderBtcPrivKeys: fpBTCSKs, - FinalityProviderBtcKeys: fpBTCPKs, - StakingTime: stakingTime, - StakingAmount: stakingAmount, + StakerBabylonAddr: tm.BabylonClient.GetKeyAddress(), + FinalityProviderBabylonPrivKeys: fpBBNSKs, + FinalityProviderBabylonAddrs: fpBBNAddrs, + FinalityProviderBtcPrivKeys: fpBTCSKs, + FinalityProviderBtcKeys: fpBTCPKs, + StakingTime: stakingTime, + StakingAmount: stakingAmount, } } @@ -210,7 +216,8 @@ func (td *testStakingData) withStakingAmout(amout int64) *testStakingData { func StartManager( t *testing.T, - numMatureOutputsInWallet uint32) *TestManager { + numMatureOutputsInWallet uint32, +) *TestManager { h := NewBitcoindHandler(t) h.Start() passphrase := "pass" @@ -584,7 +591,7 @@ func (tm *TestManager) createAndRegisterFinalityProviders(t *testing.T, testStak require.Error(t, err) require.True(t, errors.Is(err, babylonclient.ErrFinalityProviderDoesNotExist)) - pop, err := btcstypes.NewPoP(testStakingData.FinalityProviderBabylonPrivKeys[i], testStakingData.FinalityProviderBtcPrivKeys[i]) + pop, err := btcstypes.NewPoPBTC(testStakingData.FinalityProviderBabylonAddrs[i], testStakingData.FinalityProviderBtcPrivKeys[i]) require.NoError(t, err) btcFpKey := bbntypes.NewBIP340PubKeyFromBTCPK(testStakingData.FinalityProviderBtcKeys[i]) @@ -593,8 +600,9 @@ func (tm *TestManager) createAndRegisterFinalityProviders(t *testing.T, testStak resp, err := tm.BabylonClient.QueryFinalityProviders(100, 0) require.NoError(t, err) // register the generated finality provider - _, err = tm.BabylonClient.RegisterFinalityProvider( - testStakingData.FinalityProviderBabylonPublicKeys[i], + err = tm.BabylonClient.RegisterFinalityProvider( + testStakingData.FinalityProviderBabylonAddrs[i], + testStakingData.FinalityProviderBabylonPrivKeys[i], btcFpKey, ¶ms.MinComissionRate, &sttypes.Description{ diff --git a/stakerservice/service.go b/stakerservice/service.go index 95f8117..c269566 100644 --- a/stakerservice/service.go +++ b/stakerservice/service.go @@ -235,8 +235,8 @@ func (s *StakerService) providers(_ *rpctypes.Context, offset, limit *int) (*Fin for _, provider := range providersResp.FinalityProviders { v := FinalityProviderInfoResponse{ - BabylonPublicKey: hex.EncodeToString(provider.BabylonPk.Key), - BtcPublicKey: hex.EncodeToString(schnorr.SerializePubKey(&provider.BtcPk)), + BabylonAddress: provider.BabylonAddr.String(), + BtcPublicKey: hex.EncodeToString(schnorr.SerializePubKey(&provider.BtcPk)), } providerInfos = append(providerInfos, v) diff --git a/stakerservice/stakerdresponses.go b/stakerservice/stakerdresponses.go index f7e25c0..3a76474 100644 --- a/stakerservice/stakerdresponses.go +++ b/stakerservice/stakerdresponses.go @@ -28,8 +28,8 @@ type SpendTxDetails struct { } type FinalityProviderInfoResponse struct { - // Hex encoded Babylon public secp256k1 key in compressed format - BabylonPublicKey string `json:"babylon_public_Key"` + // bech 32 encoded Babylon address + BabylonAddress string `json:"babylon_address"` // Hex encoded Bitcoin public secp256k1 key in BIP340 format BtcPublicKey string `json:"bitcoin_public_Key"` } diff --git a/tools/go.mod b/tools/go.mod index 783295d..dcba4d9 100644 --- a/tools/go.mod +++ b/tools/go.mod @@ -2,7 +2,7 @@ module github.com/babylonchain/vigilante/tools go 1.22.3 -require github.com/babylonchain/babylon v0.9.0-rc.1 +require github.com/babylonchain/babylon v0.9.0-rc.2 require ( cloud.google.com/go v0.112.0 // indirect @@ -40,7 +40,7 @@ require ( github.com/bgentry/speakeasy v0.1.1-0.20220910012023-760eaf8b6816 // indirect github.com/bits-and-blooms/bitset v1.10.0 // indirect github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d // indirect - github.com/btcsuite/btcd v0.24.0 // indirect + github.com/btcsuite/btcd v0.24.2 // indirect github.com/btcsuite/btcd/btcec/v2 v2.3.2 // indirect github.com/btcsuite/btcd/btcutil v1.1.5 // indirect github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0 // indirect @@ -174,6 +174,7 @@ require ( github.com/spf13/cobra v1.8.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.18.2 // indirect + github.com/stretchr/objx v0.5.2 // indirect github.com/stretchr/testify v1.9.0 // indirect github.com/subosito/gotenv v1.6.0 // indirect github.com/supranational/blst v0.3.11 // indirect diff --git a/tools/go.sum b/tools/go.sum index 40e1c20..7630ff6 100644 --- a/tools/go.sum +++ b/tools/go.sum @@ -270,8 +270,8 @@ github.com/aws/aws-sdk-go v1.44.122/go.mod h1:y4AeaBuwd2Lk+GepC1E9v0qOiTws0MIWAX github.com/aws/aws-sdk-go v1.44.312 h1:llrElfzeqG/YOLFFKjg1xNpZCFJ2xraIi3PqSuP+95k= github.com/aws/aws-sdk-go v1.44.312/go.mod h1:aVsgQcEevwlmQ7qHE9I3h+dtQgpqhFB+i8Phjh7fkwI= github.com/aws/aws-sdk-go-v2 v0.18.0/go.mod h1:JWVYvqSMppoMJC0x5wdwiImzgXTI9FuZwxzkQq9wy+g= -github.com/babylonchain/babylon v0.9.0-rc.1 h1:mZYKQVHVKFUA2xaEAzJloB1kyePHvZECJPgm3p9TYas= -github.com/babylonchain/babylon v0.9.0-rc.1/go.mod h1:YFALTW+Kp/b5jSDoA7Z70RggJjAedlmQTrpdeU8c3hY= +github.com/babylonchain/babylon v0.9.0-rc.2 h1:cnkVdfJgwXEarzQrqJ2otONuEl+Xe22bN6bXyoenBR4= +github.com/babylonchain/babylon v0.9.0-rc.2/go.mod h1:QTjpnEAEReQofIpZikCQXUZxSkdK0TrWAUbgxOSF9yA= github.com/benbjohnson/clock v1.1.0/go.mod h1:J11/hYXuz8f4ySSvYwY0FKfm+ezbsZBKZxNJlLklBHA= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= @@ -289,8 +289,8 @@ github.com/boljen/go-bitmap v0.0.0-20151001105940-23cd2fb0ce7d/go.mod h1:f1iKL6Z github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ= github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M= github.com/btcsuite/btcd v0.23.5-0.20231215221805-96c9fd8078fd/go.mod h1:nm3Bko6zh6bWP60UxwoT5LzdGJsQJaPo6HjduXq9p6A= -github.com/btcsuite/btcd v0.24.0 h1:gL3uHE/IaFj6fcZSu03SvqPMSx7s/dPzfpG/atRwWdo= -github.com/btcsuite/btcd v0.24.0/go.mod h1:K4IDc1593s8jKXIF7yS7yCTSxrknB9z0STzc2j6XgE4= +github.com/btcsuite/btcd v0.24.2 h1:aLmxPguqxza+4ag8R1I2nnJjSu2iFn/kqtHTIImswcY= +github.com/btcsuite/btcd v0.24.2/go.mod h1:5C8ChTkl5ejr3WHj8tkQSCmydiMEPB0ZhQhehpq7Dgg= github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA= github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE= github.com/btcsuite/btcd/btcec/v2 v2.3.2 h1:5n0X6hX0Zk+6omWcihdYvdAlGf2DfasC0GMf7DClJ3U=