feat: use display trait for string representation of address type
This commit is contained in:
parent
53afd9c238
commit
efef60082b
@ -36,7 +36,7 @@ class LiveTxBuilderTest {
|
|||||||
println("Balance: ${wallet.getBalance().total.toSat()}")
|
println("Balance: ${wallet.getBalance().total.toSat()}")
|
||||||
|
|
||||||
assert(wallet.getBalance().total.toSat() > 0uL) {
|
assert(wallet.getBalance().total.toSat() > 0uL) {
|
||||||
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address.asString()} and try again."
|
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address} and try again."
|
||||||
}
|
}
|
||||||
|
|
||||||
val recipient: Address = Address("tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", Network.SIGNET)
|
val recipient: Address = Address("tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", Network.SIGNET)
|
||||||
|
@ -53,7 +53,7 @@ class OfflineWalletTest {
|
|||||||
|
|
||||||
assertEquals(
|
assertEquals(
|
||||||
expected = "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e",
|
expected = "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e",
|
||||||
actual = addressInfo.address.asString()
|
actual = addressInfo.address.toString()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -611,6 +611,7 @@ enum WordCount {
|
|||||||
"Words24",
|
"Words24",
|
||||||
};
|
};
|
||||||
|
|
||||||
|
[Traits=(Display)]
|
||||||
interface Address {
|
interface Address {
|
||||||
[Throws=AddressError]
|
[Throws=AddressError]
|
||||||
constructor(string address, Network network);
|
constructor(string address, Network network);
|
||||||
@ -621,8 +622,6 @@ interface Address {
|
|||||||
|
|
||||||
string to_qr_uri();
|
string to_qr_uri();
|
||||||
|
|
||||||
string as_string();
|
|
||||||
|
|
||||||
boolean is_valid_for_network(Network network);
|
boolean is_valid_for_network(Network network);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
use crate::error::{AddressError, FeeRateError, PsbtError, PsbtParseError, TransactionError};
|
use crate::error::{AddressError, FeeRateError, PsbtError, PsbtParseError, TransactionError};
|
||||||
|
use std::fmt::Display;
|
||||||
|
|
||||||
use bdk_bitcoind_rpc::bitcoincore_rpc::jsonrpc::serde_json;
|
use bdk_bitcoind_rpc::bitcoincore_rpc::jsonrpc::serde_json;
|
||||||
use bdk_wallet::bitcoin::address::{NetworkChecked, NetworkUnchecked};
|
use bdk_wallet::bitcoin::address::{NetworkChecked, NetworkUnchecked};
|
||||||
@ -100,10 +101,6 @@ impl Address {
|
|||||||
self.0.to_qr_uri()
|
self.0.to_qr_uri()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn as_string(&self) -> String {
|
|
||||||
self.0.to_string()
|
|
||||||
}
|
|
||||||
|
|
||||||
pub fn is_valid_for_network(&self, network: Network) -> bool {
|
pub fn is_valid_for_network(&self, network: Network) -> bool {
|
||||||
let address_str = self.0.to_string();
|
let address_str = self.0.to_string();
|
||||||
if let Ok(unchecked_address) = address_str.parse::<BdkAddress<NetworkUnchecked>>() {
|
if let Ok(unchecked_address) = address_str.parse::<BdkAddress<NetworkUnchecked>>() {
|
||||||
@ -114,6 +111,12 @@ impl Address {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Display for Address {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
write!(f, "{}", self.0)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
impl From<Address> for BdkAddress {
|
impl From<Address> for BdkAddress {
|
||||||
fn from(address: Address) -> Self {
|
fn from(address: Address) -> Self {
|
||||||
address.0
|
address.0
|
||||||
|
@ -20,7 +20,7 @@ class LiveElectrumClientTest {
|
|||||||
println("Balance: ${wallet.getBalance().total.toSat()}")
|
println("Balance: ${wallet.getBalance().total.toSat()}")
|
||||||
|
|
||||||
assert(wallet.getBalance().total.toSat() > 0uL) {
|
assert(wallet.getBalance().total.toSat() > 0uL) {
|
||||||
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address.asString()} and try again."
|
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address} and try again."
|
||||||
}
|
}
|
||||||
|
|
||||||
println("Transactions count: ${wallet.transactions().count()}")
|
println("Transactions count: ${wallet.transactions().count()}")
|
||||||
|
@ -22,7 +22,7 @@ class LiveMemoryWalletTest {
|
|||||||
println("Balance: ${wallet.getBalance().total.toSat()}")
|
println("Balance: ${wallet.getBalance().total.toSat()}")
|
||||||
|
|
||||||
assert(wallet.getBalance().total.toSat() > 0uL) {
|
assert(wallet.getBalance().total.toSat() > 0uL) {
|
||||||
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address.asString()} and try again."
|
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address} and try again."
|
||||||
}
|
}
|
||||||
|
|
||||||
println("Transactions count: ${wallet.transactions().count()}")
|
println("Transactions count: ${wallet.transactions().count()}")
|
||||||
@ -57,7 +57,7 @@ class LiveMemoryWalletTest {
|
|||||||
println("Balance: ${wallet.getBalance().total.toSat()}")
|
println("Balance: ${wallet.getBalance().total.toSat()}")
|
||||||
|
|
||||||
assert(wallet.getBalance().total.toSat() > 0uL) {
|
assert(wallet.getBalance().total.toSat() > 0uL) {
|
||||||
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address.asString()} and try again."
|
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address} and try again."
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ class LiveTransactionTests {
|
|||||||
println("Wallet balance: ${wallet.getBalance().total.toSat()}")
|
println("Wallet balance: ${wallet.getBalance().total.toSat()}")
|
||||||
|
|
||||||
assert(wallet.getBalance().total.toSat() > 0uL) {
|
assert(wallet.getBalance().total.toSat() > 0uL) {
|
||||||
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address.asString()} and try again."
|
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address} and try again."
|
||||||
}
|
}
|
||||||
|
|
||||||
val transaction: Transaction = wallet.transactions().first().transaction
|
val transaction: Transaction = wallet.transactions().first().transaction
|
||||||
|
@ -34,7 +34,7 @@ class LiveTxBuilderTest {
|
|||||||
println("Balance: ${wallet.getBalance().total.toSat()}")
|
println("Balance: ${wallet.getBalance().total.toSat()}")
|
||||||
|
|
||||||
assert(wallet.getBalance().total.toSat() > 0uL) {
|
assert(wallet.getBalance().total.toSat() > 0uL) {
|
||||||
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address.asString()} and try again."
|
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address} and try again."
|
||||||
}
|
}
|
||||||
|
|
||||||
val recipient: Address = Address("tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", Network.SIGNET)
|
val recipient: Address = Address("tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", Network.SIGNET)
|
||||||
@ -61,7 +61,7 @@ class LiveTxBuilderTest {
|
|||||||
println("Balance: ${wallet.getBalance().total.toSat()}")
|
println("Balance: ${wallet.getBalance().total.toSat()}")
|
||||||
|
|
||||||
assert(wallet.getBalance().total.toSat() > 0uL) {
|
assert(wallet.getBalance().total.toSat() > 0uL) {
|
||||||
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address.asString()} and try again."
|
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address} and try again."
|
||||||
}
|
}
|
||||||
|
|
||||||
val recipient1: Address = Address("tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", Network.SIGNET)
|
val recipient1: Address = Address("tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", Network.SIGNET)
|
||||||
|
@ -34,7 +34,7 @@ class LiveWalletTest {
|
|||||||
println("Balance: ${wallet.getBalance().total.toSat()}")
|
println("Balance: ${wallet.getBalance().total.toSat()}")
|
||||||
|
|
||||||
assert(wallet.getBalance().total.toSat() > 0uL) {
|
assert(wallet.getBalance().total.toSat() > 0uL) {
|
||||||
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address.asString()} and try again."
|
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address} and try again."
|
||||||
}
|
}
|
||||||
|
|
||||||
println("Transactions count: ${wallet.transactions().count()}")
|
println("Transactions count: ${wallet.transactions().count()}")
|
||||||
@ -59,7 +59,7 @@ class LiveWalletTest {
|
|||||||
println("Balance: ${wallet.getBalance().total.toSat()}")
|
println("Balance: ${wallet.getBalance().total.toSat()}")
|
||||||
|
|
||||||
assert(wallet.getBalance().total.toSat() > 0uL) {
|
assert(wallet.getBalance().total.toSat() > 0uL) {
|
||||||
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address.asString()} and try again."
|
"Wallet balance must be greater than 0! Please send funds to ${wallet.revealNextAddress(KeychainKind.EXTERNAL).address} and try again."
|
||||||
}
|
}
|
||||||
|
|
||||||
val recipient: Address = Address("tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", Network.SIGNET)
|
val recipient: Address = Address("tb1qrnfslnrve9uncz9pzpvf83k3ukz22ljgees989", Network.SIGNET)
|
||||||
|
@ -51,7 +51,7 @@ class OfflineWalletTest {
|
|||||||
|
|
||||||
assertEquals(
|
assertEquals(
|
||||||
expected = "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e",
|
expected = "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e",
|
||||||
actual = addressInfo.address.asString()
|
actual = addressInfo.address.toString()
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ class LiveTxBuilderTest(unittest.TestCase):
|
|||||||
self.assertGreater(
|
self.assertGreater(
|
||||||
wallet.get_balance().total.to_sat(),
|
wallet.get_balance().total.to_sat(),
|
||||||
0,
|
0,
|
||||||
f"Wallet balance must be greater than 0! Please send funds to {wallet.reveal_next_address(bdk.KeychainKind.EXTERNAL).address.as_string()} and try again."
|
f"Wallet balance must be greater than 0! Please send funds to {wallet.reveal_next_address(bdk.KeychainKind.EXTERNAL).address} and try again."
|
||||||
)
|
)
|
||||||
|
|
||||||
recipient = bdk.Address(
|
recipient = bdk.Address(
|
||||||
@ -71,7 +71,7 @@ class LiveTxBuilderTest(unittest.TestCase):
|
|||||||
self.assertGreater(
|
self.assertGreater(
|
||||||
wallet.get_balance().total.to_sat(),
|
wallet.get_balance().total.to_sat(),
|
||||||
0,
|
0,
|
||||||
f"Wallet balance must be greater than 0! Please send funds to {wallet.reveal_next_address(bdk.KeychainKind.EXTERNAL).address.as_string()} and try again."
|
f"Wallet balance must be greater than 0! Please send funds to {wallet.reveal_next_address(bdk.KeychainKind.EXTERNAL).address} and try again."
|
||||||
)
|
)
|
||||||
|
|
||||||
recipient1 = bdk.Address(
|
recipient1 = bdk.Address(
|
||||||
|
@ -35,7 +35,7 @@ class LiveWalletTest(unittest.TestCase):
|
|||||||
self.assertGreater(
|
self.assertGreater(
|
||||||
wallet.get_balance().total.to_sat(),
|
wallet.get_balance().total.to_sat(),
|
||||||
0,
|
0,
|
||||||
f"Wallet balance must be greater than 0! Please send funds to {wallet.reveal_next_address(bdk.KeychainKind.EXTERNAL).address.as_string()} and try again."
|
f"Wallet balance must be greater than 0! Please send funds to {wallet.reveal_next_address(bdk.KeychainKind.EXTERNAL).address} and try again."
|
||||||
)
|
)
|
||||||
|
|
||||||
print(f"Transactions count: {len(wallet.transactions())}")
|
print(f"Transactions count: {len(wallet.transactions())}")
|
||||||
@ -71,7 +71,7 @@ class LiveWalletTest(unittest.TestCase):
|
|||||||
self.assertGreater(
|
self.assertGreater(
|
||||||
wallet.get_balance().total.to_sat(),
|
wallet.get_balance().total.to_sat(),
|
||||||
0,
|
0,
|
||||||
f"Wallet balance must be greater than 0! Please send funds to {wallet.reveal_next_address(bdk.KeychainKind.EXTERNAL).address.as_string()} and try again."
|
f"Wallet balance must be greater than 0! Please send funds to {wallet.reveal_next_address(bdk.KeychainKind.EXTERNAL).address} and try again."
|
||||||
)
|
)
|
||||||
|
|
||||||
recipient = bdk.Address(
|
recipient = bdk.Address(
|
||||||
|
@ -26,7 +26,7 @@ class OfflineWalletTest(unittest.TestCase):
|
|||||||
self.assertFalse(address_info.address.is_valid_for_network(bdk.Network.REGTEST), "Address is valid for regtest network, but it shouldn't be")
|
self.assertFalse(address_info.address.is_valid_for_network(bdk.Network.REGTEST), "Address is valid for regtest network, but it shouldn't be")
|
||||||
self.assertFalse(address_info.address.is_valid_for_network(bdk.Network.BITCOIN), "Address is valid for bitcoin network, but it shouldn't be")
|
self.assertFalse(address_info.address.is_valid_for_network(bdk.Network.BITCOIN), "Address is valid for bitcoin network, but it shouldn't be")
|
||||||
|
|
||||||
self.assertEqual("tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e", address_info.address.as_string())
|
self.assertEqual("tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e", address_info.address.__str__())
|
||||||
|
|
||||||
def test_balance(self):
|
def test_balance(self):
|
||||||
descriptor: bdk.Descriptor = bdk.Descriptor(
|
descriptor: bdk.Descriptor = bdk.Descriptor(
|
||||||
|
@ -24,7 +24,7 @@ final class LiveElectrumClientTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
try wallet.applyUpdate(update: update)
|
try wallet.applyUpdate(update: update)
|
||||||
let _ = try wallet.commit()
|
let _ = try wallet.commit()
|
||||||
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.asString()
|
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address
|
||||||
|
|
||||||
XCTAssertGreaterThan(
|
XCTAssertGreaterThan(
|
||||||
wallet.getBalance().total.toSat(),
|
wallet.getBalance().total.toSat(),
|
||||||
|
@ -25,7 +25,7 @@ final class LiveMemoryWalletTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
try wallet.applyUpdate(update: update)
|
try wallet.applyUpdate(update: update)
|
||||||
let _ = try wallet.commit()
|
let _ = try wallet.commit()
|
||||||
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.asString()
|
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.description
|
||||||
|
|
||||||
XCTAssertGreaterThan(
|
XCTAssertGreaterThan(
|
||||||
wallet.getBalance().total.toSat(),
|
wallet.getBalance().total.toSat(),
|
||||||
@ -68,7 +68,7 @@ final class LiveMemoryWalletTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
try wallet.applyUpdate(update: update)
|
try wallet.applyUpdate(update: update)
|
||||||
let _ = try wallet.commit()
|
let _ = try wallet.commit()
|
||||||
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.asString()
|
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.description
|
||||||
|
|
||||||
XCTAssertGreaterThan(
|
XCTAssertGreaterThan(
|
||||||
wallet.getBalance().total.toSat(),
|
wallet.getBalance().total.toSat(),
|
||||||
|
@ -24,7 +24,7 @@ final class LiveTransactionTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
try wallet.applyUpdate(update: update)
|
try wallet.applyUpdate(update: update)
|
||||||
let _ = try wallet.commit()
|
let _ = try wallet.commit()
|
||||||
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.asString()
|
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.description
|
||||||
|
|
||||||
XCTAssertGreaterThan(
|
XCTAssertGreaterThan(
|
||||||
wallet.getBalance().total.toSat(),
|
wallet.getBalance().total.toSat(),
|
||||||
|
@ -46,7 +46,7 @@ final class LiveTxBuilderTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
try wallet.applyUpdate(update: update)
|
try wallet.applyUpdate(update: update)
|
||||||
let _ = try wallet.commit()
|
let _ = try wallet.commit()
|
||||||
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.asString()
|
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.description
|
||||||
|
|
||||||
XCTAssertGreaterThan(
|
XCTAssertGreaterThan(
|
||||||
wallet.getBalance().total.toSat(),
|
wallet.getBalance().total.toSat(),
|
||||||
@ -88,7 +88,7 @@ final class LiveTxBuilderTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
try wallet.applyUpdate(update: update)
|
try wallet.applyUpdate(update: update)
|
||||||
let _ = try wallet.commit()
|
let _ = try wallet.commit()
|
||||||
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.asString()
|
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.description
|
||||||
|
|
||||||
XCTAssertGreaterThan(
|
XCTAssertGreaterThan(
|
||||||
wallet.getBalance().total.toSat(),
|
wallet.getBalance().total.toSat(),
|
||||||
|
@ -46,7 +46,7 @@ final class LiveWalletTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
try wallet.applyUpdate(update: update)
|
try wallet.applyUpdate(update: update)
|
||||||
let _ = try wallet.commit()
|
let _ = try wallet.commit()
|
||||||
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.asString()
|
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.description
|
||||||
|
|
||||||
XCTAssertGreaterThan(
|
XCTAssertGreaterThan(
|
||||||
wallet.getBalance().total.toSat(),
|
wallet.getBalance().total.toSat(),
|
||||||
@ -84,7 +84,7 @@ final class LiveWalletTests: XCTestCase {
|
|||||||
)
|
)
|
||||||
try wallet.applyUpdate(update: update)
|
try wallet.applyUpdate(update: update)
|
||||||
let _ = try wallet.commit()
|
let _ = try wallet.commit()
|
||||||
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.asString()
|
let address = try wallet.revealNextAddress(keychain: KeychainKind.external).address.description
|
||||||
|
|
||||||
XCTAssertGreaterThan(
|
XCTAssertGreaterThan(
|
||||||
wallet.getBalance().total.toSat(),
|
wallet.getBalance().total.toSat(),
|
||||||
|
@ -45,7 +45,7 @@ final class OfflineWalletTests: XCTestCase {
|
|||||||
XCTAssertFalse(addressInfo.address.isValidForNetwork(network: Network.bitcoin),
|
XCTAssertFalse(addressInfo.address.isValidForNetwork(network: Network.bitcoin),
|
||||||
"Address is valid for bitcoin network, but it shouldn't be")
|
"Address is valid for bitcoin network, but it shouldn't be")
|
||||||
|
|
||||||
XCTAssertEqual(addressInfo.address.asString(), "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e")
|
XCTAssertEqual(addressInfo.address.description, "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e")
|
||||||
}
|
}
|
||||||
|
|
||||||
func testBalance() throws {
|
func testBalance() throws {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user