diff --git a/api/firmware/btc.go b/api/firmware/btc.go index 45d15be..a79d429 100644 --- a/api/firmware/btc.go +++ b/api/firmware/btc.go @@ -12,8 +12,8 @@ import ( "github.com/BitBoxSwiss/bitbox02-api-go/api/firmware/messages" "github.com/BitBoxSwiss/bitbox02-api-go/util/errp" "github.com/BitBoxSwiss/bitbox02-api-go/util/semver" - "github.com/btcsuite/btcd/btcutil/base58" - "github.com/btcsuite/btcd/wire" + "github.com/btcsuite/btcd/address/v2/base58" + "github.com/btcsuite/btcd/wire/v2" "google.golang.org/protobuf/proto" ) diff --git a/api/firmware/btc_test.go b/api/firmware/btc_test.go index dcd9627..ea398d0 100644 --- a/api/firmware/btc_test.go +++ b/api/firmware/btc_test.go @@ -11,8 +11,8 @@ import ( "github.com/BitBoxSwiss/bitbox02-api-go/util/semver" "github.com/btcsuite/btcd/btcec/v2" "github.com/btcsuite/btcd/btcec/v2/ecdsa" - "github.com/btcsuite/btcd/btcutil/hdkeychain" - "github.com/btcsuite/btcd/chaincfg/chainhash" + "github.com/btcsuite/btcd/btcutil/v2/hdkeychain" + "github.com/btcsuite/btcd/chainhash/v2" "github.com/stretchr/testify/require" "google.golang.org/protobuf/proto" ) diff --git a/api/firmware/btc_transaction_vectors_test.go b/api/firmware/btc_transaction_vectors_test.go index b095f34..6d3605c 100644 --- a/api/firmware/btc_transaction_vectors_test.go +++ b/api/firmware/btc_transaction_vectors_test.go @@ -15,13 +15,13 @@ import ( "github.com/BitBoxSwiss/bitbox02-api-go/api/firmware/messages" "github.com/BitBoxSwiss/bitbox02-api-go/util/semver" + "github.com/btcsuite/btcd/address/v2" "github.com/btcsuite/btcd/btcec/v2" "github.com/btcsuite/btcd/btcec/v2/ecdsa" "github.com/btcsuite/btcd/btcec/v2/schnorr" - "github.com/btcsuite/btcd/btcutil" - "github.com/btcsuite/btcd/btcutil/psbt" - "github.com/btcsuite/btcd/chaincfg" - "github.com/btcsuite/btcd/txscript" + "github.com/btcsuite/btcd/chaincfg/v2" + "github.com/btcsuite/btcd/psbt/v2" + "github.com/btcsuite/btcd/txscript/v2" "github.com/stretchr/testify/require" ) @@ -551,7 +551,7 @@ func btcTestVectorECDSAScriptCode(input *psbt.PInput, pubkey []byte) ([]byte, er return txscript.NewScriptBuilder(). AddOp(txscript.OP_DUP). AddOp(txscript.OP_HASH160). - AddData(btcutil.Hash160(pubkey)). + AddData(address.Hash160(pubkey)). AddOp(txscript.OP_EQUALVERIFY). AddOp(txscript.OP_CHECKSIG). Script() diff --git a/api/firmware/paymentrequests.go b/api/firmware/paymentrequests.go index a35ccf6..9564b2e 100644 --- a/api/firmware/paymentrequests.go +++ b/api/firmware/paymentrequests.go @@ -9,7 +9,7 @@ import ( "hash" "github.com/BitBoxSwiss/bitbox02-api-go/api/firmware/messages" - "github.com/btcsuite/btcd/wire" + "github.com/btcsuite/btcd/wire/v2" ) func hashDataLenPrefixed(hasher hash.Hash, data []byte) { diff --git a/api/firmware/psbt.go b/api/firmware/psbt.go index 2c5aa78..41812b5 100644 --- a/api/firmware/psbt.go +++ b/api/firmware/psbt.go @@ -12,9 +12,9 @@ import ( "github.com/btcsuite/btcd/btcec/v2" "github.com/btcsuite/btcd/btcec/v2/ecdsa" "github.com/btcsuite/btcd/btcec/v2/schnorr" - "github.com/btcsuite/btcd/btcutil/psbt" - "github.com/btcsuite/btcd/txscript" - "github.com/btcsuite/btcd/wire" + "github.com/btcsuite/btcd/psbt/v2" + "github.com/btcsuite/btcd/txscript/v2" + "github.com/btcsuite/btcd/wire/v2" "google.golang.org/protobuf/proto" ) diff --git a/api/firmware/psbt_test.go b/api/firmware/psbt_test.go index 1def34b..db41e07 100644 --- a/api/firmware/psbt_test.go +++ b/api/firmware/psbt_test.go @@ -9,11 +9,11 @@ import ( "github.com/BitBoxSwiss/bitbox02-api-go/api/firmware/messages" "github.com/BitBoxSwiss/bitbox02-api-go/util/semver" - "github.com/btcsuite/btcd/btcutil" - "github.com/btcsuite/btcd/btcutil/psbt" - "github.com/btcsuite/btcd/chaincfg" - "github.com/btcsuite/btcd/txscript" - "github.com/btcsuite/btcd/wire" + "github.com/btcsuite/btcd/address/v2" + "github.com/btcsuite/btcd/chaincfg/v2" + "github.com/btcsuite/btcd/psbt/v2" + "github.com/btcsuite/btcd/txscript/v2" + "github.com/btcsuite/btcd/wire/v2" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" "google.golang.org/protobuf/proto" @@ -106,7 +106,7 @@ func TestPayloadFromPkScript(t *testing.T) { if tt.pkScriptHex != "" { pkScript = unhex(tt.pkScriptHex) } else { - addr, err := btcutil.DecodeAddress(tt.address, &chaincfg.MainNetParams) + addr, err := address.DecodeAddress(tt.address, &chaincfg.MainNetParams) require.NoError(t, err) pkScript, err = txscript.PayToAddrScript(addr) require.NoError(t, err) diff --git a/api/firmware/silentpayments.go b/api/firmware/silentpayments.go index 9183aa6..6511e20 100644 --- a/api/firmware/silentpayments.go +++ b/api/firmware/silentpayments.go @@ -7,10 +7,10 @@ import ( "encoding/binary" "github.com/BitBoxSwiss/bitbox02-api-go/util/errp" + "github.com/btcsuite/btcd/address/v2/bech32" "github.com/btcsuite/btcd/btcec/v2" "github.com/btcsuite/btcd/btcec/v2/schnorr" - "github.com/btcsuite/btcd/btcutil/bech32" - "github.com/btcsuite/btcd/txscript" + "github.com/btcsuite/btcd/txscript/v2" ) func bip352SmallestOutpointHash(tx *BTCTx, aPubSum *btcec.PublicKey) []byte { diff --git a/cmd/miniscript/main.go b/cmd/miniscript/main.go index 589df5e..0930d05 100644 --- a/cmd/miniscript/main.go +++ b/cmd/miniscript/main.go @@ -19,14 +19,14 @@ import ( "github.com/BitBoxSwiss/bitbox02-api-go/communication/u2fhid" "github.com/BitBoxSwiss/bitbox02-api-go/communication/u2fhid/hiddevice" "github.com/benma/miniscript-go" + "github.com/btcsuite/btcd/address/v2" "github.com/btcsuite/btcd/btcec/v2" "github.com/btcsuite/btcd/btcec/v2/ecdsa" - "github.com/btcsuite/btcd/btcutil" - "github.com/btcsuite/btcd/btcutil/hdkeychain" - "github.com/btcsuite/btcd/chaincfg" - "github.com/btcsuite/btcd/chaincfg/chainhash" - "github.com/btcsuite/btcd/txscript" - "github.com/btcsuite/btcd/wire" + "github.com/btcsuite/btcd/btcutil/v2/hdkeychain" + "github.com/btcsuite/btcd/chaincfg/v2" + "github.com/btcsuite/btcd/chainhash/v2" + "github.com/btcsuite/btcd/txscript/v2" + "github.com/btcsuite/btcd/wire/v2" "github.com/karalabe/hid" ) @@ -64,7 +64,7 @@ type policy struct { miniscriptNode *miniscript.AST } -func (d *policy) derive(xpubs []string, isChange bool, deriveAddressIndex uint32) ([]multipath, [][]byte, []byte, btcutil.Address, error) { +func (d *policy) derive(xpubs []string, isChange bool, deriveAddressIndex uint32) ([]multipath, [][]byte, []byte, address.Address, error) { multipaths := make([]multipath, len(xpubs)) pubKeys := make([][]byte, len(xpubs)) @@ -119,7 +119,7 @@ func (d *policy) derive(xpubs []string, isChange bool, deriveAddressIndex uint32 if err != nil { return nil, nil, nil, nil, err } - address, err := btcutil.NewAddressWitnessScriptHash(chainhash.HashB(witnessScript), &chaincfg.TestNet3Params) + address, err := address.NewAddressWitnessScriptHash(chainhash.HashB(witnessScript), &chaincfg.TestNet3Params) if err != nil { return nil, nil, nil, nil, err } @@ -265,7 +265,7 @@ func main() { // Our test spend is a 1-input 1-output transaction. The input is spends the miniscript // UTXO. The output is an arbitrary output. - withdrawToAddress, err := btcutil.DecodeAddress("bc1q77mts6tjfandrmd0wlfceku702n0yfu67ff3ud", &chaincfg.TestNet3Params) + withdrawToAddress, err := address.DecodeAddress("bc1q77mts6tjfandrmd0wlfceku702n0yfu67ff3ud", &chaincfg.TestNet3Params) errpanic(err) withdrawToPkScript, err := txscript.PayToAddrScript(withdrawToAddress) errpanic(err) diff --git a/go.mod b/go.mod index b9c472a..d739758 100644 --- a/go.mod +++ b/go.mod @@ -4,12 +4,15 @@ go 1.26 require ( github.com/BitBoxSwiss/bitboxsync-client-go v0.0.0-20260701061324-f7e835814680 - github.com/benma/miniscript-go v0.0.0-20240226152043-f7c34099edf9 - github.com/btcsuite/btcd v0.25.0 + github.com/benma/miniscript-go v0.0.0-20260829145716-5df6f424ae7c + github.com/btcsuite/btcd/address/v2 v2.0.0 github.com/btcsuite/btcd/btcec/v2 v2.5.0 - github.com/btcsuite/btcd/btcutil v1.2.0 - github.com/btcsuite/btcd/btcutil/psbt v1.2.0 - github.com/btcsuite/btcd/chaincfg/chainhash v1.2.0 + github.com/btcsuite/btcd/btcutil/v2 v2.0.0 + github.com/btcsuite/btcd/chaincfg/v2 v2.0.0 + github.com/btcsuite/btcd/chainhash/v2 v2.0.0 + github.com/btcsuite/btcd/psbt/v2 v2.0.0 + github.com/btcsuite/btcd/txscript/v2 v2.0.0 + github.com/btcsuite/btcd/wire/v2 v2.0.0 github.com/flynn/noise v1.1.0 github.com/karalabe/hid v1.0.1-0.20240306101548-573246063e52 github.com/pkg/errors v0.9.1 @@ -19,7 +22,6 @@ require ( ) require ( - github.com/btcsuite/btcd/chainhash/v2 v2.0.0 // indirect github.com/btcsuite/btclog v1.0.0 // indirect github.com/davecgh/go-spew v1.1.1 // indirect github.com/decred/dcrd/crypto/blake256 v1.1.0 // indirect diff --git a/go.sum b/go.sum index 2af382b..80df75b 100644 --- a/go.sum +++ b/go.sum @@ -1,19 +1,23 @@ github.com/BitBoxSwiss/bitboxsync-client-go v0.0.0-20260701061324-f7e835814680 h1:yGUYDddOzTmUdyBUX4FDGUW+O3VX2g2OfjtdZGIuRZ4= github.com/BitBoxSwiss/bitboxsync-client-go v0.0.0-20260701061324-f7e835814680/go.mod h1:NlTH3nCt38trIQH357yq7ugzI61WbZ+SFeq6B0bK/EU= -github.com/benma/miniscript-go v0.0.0-20240226152043-f7c34099edf9 h1:uXJp0+aJzVl2gckSB9rRVP0hTQk7PHG8lak9MUkbCP0= -github.com/benma/miniscript-go v0.0.0-20240226152043-f7c34099edf9/go.mod h1:qtNCDVwDj3ftKLgSoFJSIfW6vCOqoroo6stk9yY2BgM= -github.com/btcsuite/btcd v0.25.0 h1:JPbjwvHGpSywBRuorFFqTjaVP4y6Qw69XJ1nQ6MyWJM= -github.com/btcsuite/btcd v0.25.0/go.mod h1:qbPE+pEiR9643E1s1xu57awsRhlCIm1ZIi6FfeRA4KE= +github.com/benma/miniscript-go v0.0.0-20260829145716-5df6f424ae7c h1:WWESFXe5qBYPOsurQDExy08PbwTggH/TPE4ju7nPlUY= +github.com/benma/miniscript-go v0.0.0-20260829145716-5df6f424ae7c/go.mod h1:LhO0sIInVKMMcYvBDgb4nX8hmVW2SsbYjvOVSY4bluI= +github.com/btcsuite/btcd/address/v2 v2.0.0 h1:UVu8Hal6Siu4XastFe+JX5JkeBYONbDUIY5E+SVTs6I= +github.com/btcsuite/btcd/address/v2 v2.0.0/go.mod h1:htJK1AtaeK3bKNfZY63ep2oN8LbrI6qvmPGe1vekb3I= github.com/btcsuite/btcd/btcec/v2 v2.5.0 h1:KioMXOWa76b86sTZZOmbzv/ldaQCmB8KFAyn5PbB8E8= github.com/btcsuite/btcd/btcec/v2 v2.5.0/go.mod h1:+K/MYXcLBtHEQjRbjHuJChuybk4LCgjdjgRwil+e+Kk= -github.com/btcsuite/btcd/btcutil v1.2.0 h1:p3+S2g3Q+7G5NOh4Ji+2UrBOrg5Z0Q4ykzShWG1Dhgs= -github.com/btcsuite/btcd/btcutil v1.2.0/go.mod h1:/Taflm113pYjUpbWKKQEfa6XOtI/+WS8awxeMZpY75k= -github.com/btcsuite/btcd/btcutil/psbt v1.2.0 h1:w13gMXPVs9CCIAv/TCn/TBBHKxU4ywx5wjywwN08ORs= -github.com/btcsuite/btcd/btcutil/psbt v1.2.0/go.mod h1:wpG6BuIKYtMHPmqVnEcmKdciLc1qe6Pl3MKD6OoBBTY= -github.com/btcsuite/btcd/chaincfg/chainhash v1.2.0 h1:yMIg99+4aBvqfl/HzJRKfxTX9rGfikoI9uvFzterhc8= -github.com/btcsuite/btcd/chaincfg/chainhash v1.2.0/go.mod h1:Y72Ren9gfhlEvnwnT78BGcSNO2UMphTKLn9AorF+5rg= +github.com/btcsuite/btcd/btcutil/v2 v2.0.0 h1:77pgf/4tjWaSBLdos8yiWVWL3rSphxWNqkLwcyONExA= +github.com/btcsuite/btcd/btcutil/v2 v2.0.0/go.mod h1:ZF8MMdsx1JGgvHJUanxbigekSO+8bN/ai34LBk/lg3c= +github.com/btcsuite/btcd/chaincfg/v2 v2.0.0 h1:M/RTtXfXA9odC1RUEOyZFXj/NXKVHPYZXVjb60xTOok= +github.com/btcsuite/btcd/chaincfg/v2 v2.0.0/go.mod h1:rHgHIXYYfn70m25a+BJ9f9z7VZAsTiDQGB2XYaippGQ= github.com/btcsuite/btcd/chainhash/v2 v2.0.0 h1:PMLlSloHJuEeB80XG9EjpXWNEKAZAMLl6YHZ6YsEuoA= github.com/btcsuite/btcd/chainhash/v2 v2.0.0/go.mod h1:mKxcZ7oGTXE7IRV+sS9hP4EVBwc/SzfNR+52IsOP9j8= +github.com/btcsuite/btcd/psbt/v2 v2.0.0 h1:vKBfHGkxsplVExwCozfK9VuioZ6D6cRpAhcMia2kgrQ= +github.com/btcsuite/btcd/psbt/v2 v2.0.0/go.mod h1:WdHfpXJDXklnMU8u22YXz8o12q8hPYr4b8CxpKdjGYs= +github.com/btcsuite/btcd/txscript/v2 v2.0.0 h1:pEmmHaC8eRx6KSB63zSVJD7qrit9/c9cLSrw++XrYP8= +github.com/btcsuite/btcd/txscript/v2 v2.0.0/go.mod h1:pZXabc11Xr9nz/18kXY3yErdAajYc3gi28Zqb3KqlFo= +github.com/btcsuite/btcd/wire/v2 v2.0.0 h1:mYSKzZZ0a1sK+aMhXzfDSVsSzRkWkU3x2U04TFRS2z8= +github.com/btcsuite/btcd/wire/v2 v2.0.0/go.mod h1:bGxkPkk8IiDvUo1D96wE03llBIk7p2MdWYRyAQwLmqM= github.com/btcsuite/btclog v1.0.0 h1:sEkpKJMmfGiyZjADwEIgB1NSwMyfdD1FB8v6+w1T0Ns= github.com/btcsuite/btclog v1.0.0/go.mod h1:w7xnGOhwT3lmrS4H3b/D1XAXxvh+tbhUm8xeHN2y3TQ= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=