Skip to content
This repository was archived by the owner on Mar 28, 2023. It is now read-only.

Commit c76243e

Browse files
committed
[#1983] Reserve wallet whitelist; ETH QA uses BTC reserve rater
1 parent 09c1138 commit c76243e

File tree

3 files changed

+39
-26
lines changed

3 files changed

+39
-26
lines changed

core/order.go

Lines changed: 31 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1707,28 +1707,39 @@ func quantityForItem(version uint32, item *pb.Order_Item) *big.Int {
17071707
// ReserveCurrencyConverter will attempt to build a CurrencyConverter based on
17081708
// the reserve currency, or will panic if unsuccessful
17091709
func (n *OpenBazaarNode) ReserveCurrencyConverter() (*repo.CurrencyConverter, error) {
1710-
var reserveCode = "BTC"
1711-
if n.RegressionTestEnable || n.TestnetEnable {
1712-
reserveCode = "TBTC"
1713-
}
1714-
1715-
wal, err := n.Multiwallet.WalletForCurrencyCode(reserveCode)
1716-
if err != nil {
1717-
return nil, fmt.Errorf("unable to find reserve (%s) wallet", reserveCode)
1718-
}
1710+
// reserve currency whitelist
1711+
// TODO: later when the wallet can express whether it can
1712+
// provide reliable reserve currency rates, they can be
1713+
// reflected upon instead of using an explicit whitelist
1714+
var preferredReserveWalletCodes = []string{"BTC"}
1715+
for _, code := range preferredReserveWalletCodes {
1716+
var reserveCode = code
1717+
if n.RegressionTestEnable || n.TestnetEnable {
1718+
reserveCode = "T" + code
1719+
}
1720+
1721+
wal, err := n.Multiwallet.WalletForCurrencyCode(reserveCode)
1722+
if err != nil {
1723+
continue
1724+
}
17191725

1720-
if wal.ExchangeRates() == nil {
1721-
return nil, fmt.Errorf("reserve wallet has exchange rates disabled or unavailable")
1722-
}
1726+
if wal.ExchangeRates() == nil {
1727+
log.Warningf("%s reserve wallet has exchange rates disabled or unavailable", reserveCode)
1728+
continue
1729+
}
17231730

1724-
// priming the exchange rate cache
1725-
if _, err := wal.ExchangeRates().GetAllRates(false); err != nil {
1726-
log.Warningf("priming exchange rate cache: %s", err.Error())
1727-
}
1731+
if _, err := wal.ExchangeRates().GetAllRates(false); err != nil {
1732+
log.Warningf("%s reserve wallet priming exchange rate cache: %s", reserveCode, err.Error())
1733+
continue
1734+
}
17281735

1729-
cc, err := repo.NewCurrencyConverter(reserveCode, wal.ExchangeRates())
1730-
if err != nil {
1731-
return nil, fmt.Errorf("creating reserve currency converter: %s", err.Error())
1736+
cc, err := repo.NewCurrencyConverter(reserveCode, wal.ExchangeRates())
1737+
if err != nil {
1738+
log.Warningf("creating %s reserve currency converter: %s", reserveCode, err.Error())
1739+
continue
1740+
}
1741+
log.Infof("reserve exchange rates provided by %s wallet", reserveCode)
1742+
return cc, nil
17321743
}
1733-
return cc, nil
1744+
return nil, errors.New("unable to find reserve wallet with exchange rates")
17341745
}

qa/test_framework/test_framework.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,17 @@ def configure_node(self, n):
8282
config["Swarm"]["DisableNatPortMap"] = True
8383

8484
self.cointype = self.cointype.upper()
85-
8685
coinConfig = config["Wallets"][self.cointype]
86+
8787
del config["Wallets"]
8888
config["Wallets"] = {}
89-
config["Wallets"][self.cointype] = coinConfig
89+
config["Wallets"]["BTC"] = coinConfig
90+
config["Wallets"]["BTC"]["Type"] = "SPV"
91+
config["Wallets"]["BTC"]["TrustedPeer"] = "127.0.0.1:18444"
92+
config["Wallets"]["BTC"]["FeeAPI"] = ""
9093

91-
config["Wallets"][self.cointype]["Type"] = "SPV"
92-
config["Wallets"][self.cointype]["TrustedPeer"] = "127.0.0.1:18444"
93-
config["Wallets"][self.cointype]["FeeAPI"] = ""
94+
if self.cointype != "BTC":
95+
config["Wallets"][self.cointype] = coinConfig
9496

9597
with open(os.path.join(dir_path, "config"), 'w') as outfile:
9698
outfile.write(json.dumps(config, indent=4))

repo/currency_converter.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func NewCurrencyConverter(reserveCode string, rater rater) (*CurrencyConverter,
4242
if rate, err := cc.getExchangeRate(cc.reserveCode); err != nil {
4343
return nil, fmt.Errorf("unable to get reserve rate (%s): %s", cc.reserveCode, err.Error())
4444
} else if rate != 1.0 {
45-
return nil, fmt.Errorf("research exchange rate was not 1.0 (%f)", rate)
45+
return nil, fmt.Errorf("reserve exchange rate was not 1.0 (%f)", rate)
4646
}
4747
return cc, nil
4848
}

0 commit comments

Comments
 (0)