Fix integration tests after switch to big.Int amounts
This commit is contained in:
parent
f80a9142d9
commit
882ff1bfd5
@ -94,10 +94,12 @@ func (p *BaseParser) ParseTxFromJson(msg json.RawMessage) (*Tx, error) {
|
||||
|
||||
for i := range tx.Vout {
|
||||
vout := &tx.Vout[i]
|
||||
// convert vout.JsonValue to big.Int and clear it, it is only temporary value used for unmarshal
|
||||
vout.ValueSat, err = p.AmountToBigInt(vout.JsonValue)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
vout.JsonValue = ""
|
||||
if len(vout.ScriptPubKey.Addresses) == 1 {
|
||||
a, err := p.AddressFactory(vout.ScriptPubKey.Addresses[0])
|
||||
if err != nil {
|
||||
|
||||
@ -49,6 +49,7 @@ func NewBCashParser(params *chaincfg.Params, c *btc.Configuration) (*BCashParser
|
||||
BaseParser: &bchain.BaseParser{
|
||||
AddressFactory: func(addr string) (bchain.Address, error) { return newBCashAddress(addr, format) },
|
||||
BlockAddressesToKeep: c.BlockAddressesToKeep,
|
||||
AmountDecimalPoint: 8,
|
||||
},
|
||||
Params: params,
|
||||
OutputScriptToAddressesFunc: outputScriptToAddresses,
|
||||
|
||||
@ -710,13 +710,20 @@ func (b *BitcoinRPC) GetMempoolEntry(txid string) (*bchain.MempoolEntry, error)
|
||||
Params: []string{txid},
|
||||
}
|
||||
err := b.Call(&req, &res)
|
||||
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if res.Error != nil {
|
||||
return nil, res.Error
|
||||
}
|
||||
res.Result.FeeSat, err = b.Parser.AmountToBigInt(res.Result.Fee)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
res.Result.ModifiedFeeSat, err = b.Parser.AmountToBigInt(res.Result.ModifiedFee)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return res.Result, nil
|
||||
}
|
||||
|
||||
|
||||
@ -20,12 +20,13 @@ type ZCashParser struct {
|
||||
*bchain.BaseParser
|
||||
}
|
||||
|
||||
// NewZCAshParser returns new ZCAshParser instance
|
||||
// NewZCashParser returns new ZCashParser instance
|
||||
func NewZCashParser(c *btc.Configuration) *ZCashParser {
|
||||
return &ZCashParser{
|
||||
&bchain.BaseParser{
|
||||
AddressFactory: bchain.NewBaseAddress,
|
||||
BlockAddressesToKeep: c.BlockAddressesToKeep,
|
||||
AmountDecimalPoint: 8,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,8 +1,7 @@
|
||||
// +build integration
|
||||
|
||||
package rpc
|
||||
|
||||
import (
|
||||
"blockbook/bchain"
|
||||
"encoding/json"
|
||||
"errors"
|
||||
"fmt"
|
||||
@ -83,7 +82,7 @@ func LoadRPCConfig(coin string) (json.RawMessage, error) {
|
||||
return json.RawMessage(fmt.Sprintf(t, coin, c.URL, c.User, c.Pass)), nil
|
||||
}
|
||||
|
||||
func LoadTestData(coin string) (*TestData, error) {
|
||||
func LoadTestData(coin string, parser bchain.BlockChainParser) (*TestData, error) {
|
||||
b, err := readDataFile(".", "bchain/tests/rpc/testdata", coin+".json")
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -93,5 +92,16 @@ func LoadTestData(coin string) (*TestData, error) {
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
// convert amounts in test json to bit.Int and clear the temporary JsonValue
|
||||
for _, tx := range v.TxDetails {
|
||||
for i := range tx.Vout {
|
||||
vout := &tx.Vout[i]
|
||||
vout.ValueSat, err = parser.AmountToBigInt(vout.JsonValue)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
vout.JsonValue = ""
|
||||
}
|
||||
}
|
||||
return &v, nil
|
||||
}
|
||||
|
||||
@ -1,5 +1,3 @@
|
||||
// +build integration
|
||||
|
||||
package rpc
|
||||
|
||||
import (
|
||||
@ -9,6 +7,7 @@ import (
|
||||
"net"
|
||||
"reflect"
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/deckarep/golang-set"
|
||||
)
|
||||
@ -56,7 +55,7 @@ func NewTest(coin string, factory TestChainFactoryFunc) (*Test, error) {
|
||||
return nil, err
|
||||
}
|
||||
} else {
|
||||
td, err = LoadTestData(coin)
|
||||
td, err = LoadTestData(coin, cli.GetChainParser())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@ -162,7 +161,7 @@ func (rt *Test) TestGetTransaction(t *testing.T) {
|
||||
got.Confirmations = 0
|
||||
|
||||
if !reflect.DeepEqual(got, want) {
|
||||
t.Errorf("GetTransaction() got %v, want %v", got, want)
|
||||
t.Errorf("GetTransaction() got %+v, want %+v", got, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -181,7 +180,7 @@ func (rt *Test) TestGetTransactionForMempool(t *testing.T) {
|
||||
// transactions parsed from JSON may contain additional data
|
||||
got.Confirmations, got.Blocktime, got.Time = 0, 0, 0
|
||||
if !reflect.DeepEqual(got, want) {
|
||||
t.Errorf("GetTransactionForMempool() got %v, want %v", got, want)
|
||||
t.Errorf("GetTransactionForMempool() got %+v, want %+v", got, want)
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -329,8 +328,8 @@ func (rt *Test) TestGetMempoolEntry(t *testing.T) {
|
||||
if e.Size <= 0 {
|
||||
t.Errorf("GetMempoolEntry() got zero or negative size %d", e.Size)
|
||||
}
|
||||
if e.Fee <= 0 {
|
||||
t.Errorf("GetMempoolEntry() got zero or negative fee %f", e.Fee)
|
||||
if e.FeeSat.Sign() != 1 {
|
||||
t.Errorf("GetMempoolEntry() got zero or negative fee %v", e.FeeSat.String())
|
||||
}
|
||||
|
||||
// done
|
||||
@ -347,8 +346,11 @@ func (rt *Test) TestEstimateSmartFee(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if fee != -1 && fee < 0 {
|
||||
t.Errorf("EstimateSmartFee() returned unexpected fee rate: %f", fee)
|
||||
if fee.Sign() == -1 {
|
||||
sf := rt.Client.GetChainParser().AmountToDecimalString(&fee)
|
||||
if sf != "-1" {
|
||||
t.Errorf("EstimateSmartFee() returned unexpected fee rate: %v", sf)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -361,8 +363,11 @@ func (rt *Test) TestEstimateFee(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Error(err)
|
||||
}
|
||||
if fee != -1 && fee < 0 {
|
||||
t.Errorf("EstimateFee() returned unexpected fee rate: %f", fee)
|
||||
if fee.Sign() == -1 {
|
||||
sf := rt.Client.GetChainParser().AmountToDecimalString(&fee)
|
||||
if sf != "-1" {
|
||||
t.Errorf("EstimateFee() returned unexpected fee rate: %v", sf)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -385,6 +390,7 @@ func (rt *Test) TestGetBestBlockHash(t *testing.T) {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if hash != hh {
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
2
bchain/tests/rpc/testdata/Bcash.json
vendored
2
bchain/tests/rpc/testdata/Bcash.json
vendored
@ -70,6 +70,7 @@
|
||||
"blocktime":1531135480,
|
||||
"time":1531135480,
|
||||
"locktime": 0,
|
||||
"version": 1,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "fe496933e0a3582ef020bd35c38fe8244a80fa7c63e7607f6f9ccb0806f419e4",
|
||||
@ -175,6 +176,7 @@
|
||||
"blocktime":1531135480,
|
||||
"time":1531135480,
|
||||
"locktime": 0,
|
||||
"version": 1,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "52f37874fd5a2497c5d84619ab415ca17ebb1d49d559f0d468869f70537354b9",
|
||||
|
||||
2
bchain/tests/rpc/testdata/Bcash_Testnet.json
vendored
2
bchain/tests/rpc/testdata/Bcash_Testnet.json
vendored
@ -12,6 +12,7 @@
|
||||
"blocktime":1529571678,
|
||||
"time":1529571678,
|
||||
"locktime": 0,
|
||||
"version": 1,
|
||||
"vin": [
|
||||
{
|
||||
"coinbase": "03fbf212055374617368",
|
||||
@ -34,6 +35,7 @@
|
||||
"blocktime":1529571678,
|
||||
"time":1529571678,
|
||||
"locktime": 0,
|
||||
"version": 1,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "58ff2450a71b3c228d17d04ec8edcaae452bc97d5ccc4591e2741fd8b031d221",
|
||||
|
||||
2
bchain/tests/rpc/testdata/Bitcoin.json
vendored
2
bchain/tests/rpc/testdata/Bitcoin.json
vendored
@ -120,6 +120,7 @@
|
||||
"blocktime": 1529915213,
|
||||
"time": 1529915213,
|
||||
"locktime": 0,
|
||||
"version": 1,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "83eff5bcc738d52e04528984cd5cf601b69e7df65b2b10ed2475c0072cdde14c",
|
||||
@ -153,6 +154,7 @@
|
||||
"blocktime": 1529915213,
|
||||
"time": 1529915213,
|
||||
"locktime": 529149,
|
||||
"version": 2,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "413988d546516707f3b20ca9876e026a9472bd814662e42f37f4e57a15713da7",
|
||||
|
||||
@ -43,6 +43,7 @@
|
||||
"blocktime": 1528788394,
|
||||
"time": 1528788394,
|
||||
"locktime": 0,
|
||||
"version": 1,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "4097f5265397047bffe219a1bca65ea5726402c3d9aeecd577fa1c274fc1b8a4",
|
||||
@ -84,6 +85,7 @@
|
||||
"blocktime": 1528788394,
|
||||
"time": 1528788394,
|
||||
"locktime": 0,
|
||||
"version": 1,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "80437ba4e81bde8b584258f5adad0d08dea60f1e38026344442ad59a4ef797c9",
|
||||
|
||||
1
bchain/tests/rpc/testdata/Dash.json
vendored
1
bchain/tests/rpc/testdata/Dash.json
vendored
@ -27,6 +27,7 @@
|
||||
"blocktime": 1530189699,
|
||||
"time": 1530189699,
|
||||
"locktime": 0,
|
||||
"version": 1,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "a78824a88c089ea1344fe2a33c454024e6501e76cca2590515b390d85082bd23",
|
||||
|
||||
2
bchain/tests/rpc/testdata/Dash_Testnet.json
vendored
2
bchain/tests/rpc/testdata/Dash_Testnet.json
vendored
@ -31,6 +31,7 @@
|
||||
"blocktime": 1528713762,
|
||||
"time": 1528713762,
|
||||
"locktime": 139520,
|
||||
"version": 2,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "a41616c7585c98aeda98d6ff6766b15455e327c9472582b80289dab7597ad309",
|
||||
@ -64,6 +65,7 @@
|
||||
"blocktime": 1528713762,
|
||||
"time": 1528713762,
|
||||
"locktime": 139520,
|
||||
"version": 2,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "187ae015e41dff766f5a18ae705f59db950a6729a06fa5fd04630c362a9aee27",
|
||||
|
||||
29
bchain/tests/rpc/testdata/Ethereum_Testnet.json
vendored
29
bchain/tests/rpc/testdata/Ethereum_Testnet.json
vendored
@ -16,38 +16,21 @@
|
||||
"0x7f0d140329941f120b5b3fc751e30adeb87b2aebbfce5adcd0216604a34b6cc0"
|
||||
],
|
||||
"txDetails": {
|
||||
"0xe6b168d6bb3d8ed78e03dbf828b6bfd1fb613f6e129cba624964984553724c5d": {
|
||||
"hex": "7b226e6f6e6365223a2230783239666165222c226761735072696365223a223078313261303566323030222c22676173223a2230786462626130222c22746f223a22307836383262373930336131313039386366373730633761656634616130326138356233663336303161222c2276616c7565223a22307830222c22696e707574223a223078663032356361616630303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030323235222c2268617368223a22307865366231363864366262336438656437386530336462663832386236626664316662363133663665313239636261363234393634393834353533373234633564222c22626c6f636b4e756d626572223a223078326263616630222c2266726f6d223a22307864616363396336313735346130633436313666633533323364633934366538396562323732333032222c227472616e73616374696f6e496e646578223a22307831222c2276223a2230783162222c2272223a22307831626434306133313132326330333931386466366431363664373430613661336132326630386132353933346365623136383863363239373736363163383063222c2273223a22307836303766626331356331663739393561343235386635613962636363363362303430333632643139393164356566653133363163353632323265346361383966227d",
|
||||
"txid": "0xe6b168d6bb3d8ed78e03dbf828b6bfd1fb613f6e129cba624964984553724c5d",
|
||||
"0x7f0d140329941f120b5b3fc751e30adeb87b2aebbfce5adcd0216604a34b6cc0": {
|
||||
"hex": "7b226e6f6e6365223a223078333632306136222c226761735072696365223a223078313261303566323030222c22676173223a22307835323038222c22746f223a22307831623137626331326166623635643563346238316139666632613037366234326131396661616136222c2276616c7565223a223078646530623662336137363430303030222c22696e707574223a223078222c2268617368223a22307837663064313430333239393431663132306235623366633735316533306164656238376232616562626663653561646364303231363630346133346236636330222c22626c6f636b4e756d626572223a223078326263616630222c2266726f6d223a22307838316237653038663635626466353634383630366338393939386139636338313634333937363437222c227472616e73616374696f6e496e646578223a22307862222c2276223a2230783162222c2272223a22307862666662323864633865373939383833366639356664616139396433626435666635346365663562313839636462383537333537666161326431616231393136222c2273223a22307833616462316365313264396664306538616662373064386639346534636538356137666639346465333966623636333139363638363435663464643138646432227d",
|
||||
"txid": "0x7f0d140329941f120b5b3fc751e30adeb87b2aebbfce5adcd0216604a34b6cc0",
|
||||
"blocktime": 1521515026,
|
||||
"time": 1521515026,
|
||||
"vin": [
|
||||
{
|
||||
"addresses": ["0xdacc9c61754a0c4616fc5323dc946e89eb272302"]
|
||||
"addresses": ["0x81b7e08f65bdf5648606c89998a9cc8164397647"]
|
||||
}
|
||||
],
|
||||
"vout": [
|
||||
{
|
||||
"value": 1,
|
||||
"scriptPubKey": {
|
||||
"addresses": ["0x682b7903a11098cf770c7aef4aa02a85b3f3601a"]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"0x17ee235fc0359155b25419e0e4c65d9c500df6e71e8288d6ef020d04cc2f2cb3": {
|
||||
"hex": "7b226e6f6e6365223a223078346566222c226761735072696365223a223078626134336237343030222c22676173223a2230783936653838222c22746f223a22307864303534323939633438326164356362333961336661383734373235663965326132306433343963222c2276616c7565223a22307830222c22696e707574223a2230783165626366613630303030303030303030303030303030303030303030303030633034383732383566313736663532306635636434363732306236383662366534366165636430373030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303031303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030313430303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030633461303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303530303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030353831303030303030303030303030303030303030303030303030633365313631343261306432366336616530623163656238643961373236653734653164613664663666656562653137653437306464626434656261663364623938333136386235316337623136363732613131623966306662383864623438323962653237346230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303034363336663665363230303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303437323666373336313030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030222c2268617368223a22307831376565323335666330333539313535623235343139653065346336356439633530306466366537316538323838643665663032306430346363326632636233222c22626c6f636b4e756d626572223a223078326263616630222c2266726f6d223a22307838623461353365353739303739343466633261653539623837373066393331623639326232373062222c227472616e73616374696f6e496e646578223a22307830222c2276223a2230783163222c2272223a22307866633739633836353638323039313030323134616339353662373930653066383935656130343135313438643233613239353632356564393761633936333534222c2273223a223078373232303833616331643764663662626162393939383537616163323561336665646265386130633561326266376364653835393738363266373862313937227d",
|
||||
"txid": "0x17ee235fc0359155b25419e0e4c65d9c500df6e71e8288d6ef020d04cc2f2cb3",
|
||||
"blocktime": 1521515026,
|
||||
"time": 1521515026,
|
||||
"vin": [
|
||||
{
|
||||
"addresses": ["0x8b4a53e57907944fc2ae59b8770f931b692b270b"]
|
||||
}
|
||||
],
|
||||
"vout": [
|
||||
{
|
||||
"scriptPubKey": {
|
||||
"addresses": ["0xd054299c482ad5cb39a3fa874725f9e2a20d349c"]
|
||||
"addresses": ["0x1b17bc12afb65d5c4b81a9ff2a076b42a19faaa6"]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
1
bchain/tests/rpc/testdata/Namecoin.json
vendored
1
bchain/tests/rpc/testdata/Namecoin.json
vendored
@ -39,6 +39,7 @@
|
||||
"blocktime": 1530003649,
|
||||
"time": 1530003649,
|
||||
"locktime": 404678,
|
||||
"version": 1,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "223a4ff7a613173ffbc67f9efffe1b0c3fd5ba2471935a44cc81814038272901",
|
||||
|
||||
2
bchain/tests/rpc/testdata/Vertcoin.json
vendored
2
bchain/tests/rpc/testdata/Vertcoin.json
vendored
@ -14,6 +14,7 @@
|
||||
"blocktime": 1529932850,
|
||||
"time": 1529932850,
|
||||
"locktime": 952232,
|
||||
"version": 2,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "8ec70404bdd16559c589736863ee9d9f69431ba4e6b2ab3b1641b3f9f3821624",
|
||||
@ -47,6 +48,7 @@
|
||||
"blocktime": 1529932850,
|
||||
"time": 1529932850,
|
||||
"locktime": 952233,
|
||||
"version": 1,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "5765db7dd62cddada154b2c95505e298818a308cc1ce1e28d6e8565301cb8d74",
|
||||
|
||||
2
bchain/tests/rpc/testdata/Zcash.json
vendored
2
bchain/tests/rpc/testdata/Zcash.json
vendored
@ -22,6 +22,7 @@
|
||||
"blocktime": 1530264033,
|
||||
"time": 1530264033,
|
||||
"locktime": 349399,
|
||||
"version": 3,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "9c9faac29b0fa1b0e683727f2973bfcb87e4baadd07e9c997b431a31713cb30c",
|
||||
@ -57,6 +58,7 @@
|
||||
"blocktime": 1530264033,
|
||||
"time": 1530264033,
|
||||
"locktime": 0,
|
||||
"version": 3,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "4440c8e9d5b57da7ca0fb3f62ec13f392267aeb797c123bb01e850adf8573dd0",
|
||||
|
||||
2
bchain/tests/rpc/testdata/Zcash_Testnet.json
vendored
2
bchain/tests/rpc/testdata/Zcash_Testnet.json
vendored
@ -13,6 +13,7 @@
|
||||
"blocktime": 1528781777,
|
||||
"time": 1528781777,
|
||||
"locktime": 251028,
|
||||
"version": 3,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "19a1d013b898239e9a2943faa07f8716b9be168bc8e001daf3625f535fde1a60",
|
||||
@ -48,6 +49,7 @@
|
||||
"blocktime": 1528781777,
|
||||
"time": 1528781777,
|
||||
"locktime": 251090,
|
||||
"version": 3,
|
||||
"vin": [
|
||||
{
|
||||
"txid": "9acab5f13cf94074e75f5686b59fccd938f54b5f20ddddfcb6077c679a13c0ea",
|
||||
|
||||
@ -91,18 +91,20 @@ type BlockHeader struct {
|
||||
}
|
||||
|
||||
type MempoolEntry struct {
|
||||
Size uint32 `json:"size"`
|
||||
Fee big.Int `json:"fee"`
|
||||
ModifiedFee big.Int `json:"modifiedfee"`
|
||||
Time uint64 `json:"time"`
|
||||
Height uint32 `json:"height"`
|
||||
DescendantCount uint32 `json:"descendantcount"`
|
||||
DescendantSize uint32 `json:"descendantsize"`
|
||||
DescendantFees uint32 `json:"descendantfees"`
|
||||
AncestorCount uint32 `json:"ancestorcount"`
|
||||
AncestorSize uint32 `json:"ancestorsize"`
|
||||
AncestorFees uint32 `json:"ancestorfees"`
|
||||
Depends []string `json:"depends"`
|
||||
Size uint32 `json:"size"`
|
||||
FeeSat big.Int
|
||||
Fee json.Number `json:"fee"`
|
||||
ModifiedFeeSat big.Int
|
||||
ModifiedFee json.Number `json:"modifiedfee"`
|
||||
Time uint64 `json:"time"`
|
||||
Height uint32 `json:"height"`
|
||||
DescendantCount uint32 `json:"descendantcount"`
|
||||
DescendantSize uint32 `json:"descendantsize"`
|
||||
DescendantFees uint32 `json:"descendantfees"`
|
||||
AncestorCount uint32 `json:"ancestorcount"`
|
||||
AncestorSize uint32 `json:"ancestorsize"`
|
||||
AncestorFees uint32 `json:"ancestorfees"`
|
||||
Depends []string `json:"depends"`
|
||||
}
|
||||
|
||||
type RPCError struct {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user