| 
									
										
										
										
											2023-10-27 14:13:44 -04:00
										 |  |  | import XCTest | 
					
						
							|  |  |  | @testable import BitcoinDevKit | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | final class OfflineWalletTests: XCTestCase { | 
					
						
							|  |  |  |     func testNewAddress() throws { | 
					
						
							|  |  |  |         let descriptor: Descriptor = try Descriptor( | 
					
						
							|  |  |  |             descriptor: "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", | 
					
						
							|  |  |  |             network: Network.testnet | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |         let wallet: Wallet = try Wallet.newNoPersist( | 
					
						
							|  |  |  |             descriptor: descriptor, | 
					
						
							|  |  |  |             changeDescriptor: nil, | 
					
						
							|  |  |  |             network: .testnet | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |         let addressInfo: AddressInfo = wallet.getAddress(addressIndex: AddressIndex.new) | 
					
						
							| 
									
										
										
										
											2024-01-03 16:57:57 -06:00
										 |  |  | 
 | 
					
						
							|  |  |  |         XCTAssertTrue(addressInfo.address.isValidForNetwork(network: Network.testnet), | 
					
						
							|  |  |  |                      "Address is not valid for testnet network") | 
					
						
							|  |  |  |         XCTAssertTrue(addressInfo.address.isValidForNetwork(network: Network.signet), | 
					
						
							|  |  |  |                      "Address is not valid for signet network") | 
					
						
							|  |  |  |         XCTAssertFalse(addressInfo.address.isValidForNetwork(network: Network.regtest), | 
					
						
							|  |  |  |                       "Address is valid for regtest network, but it shouldn't be") | 
					
						
							|  |  |  |         XCTAssertFalse(addressInfo.address.isValidForNetwork(network: Network.bitcoin), | 
					
						
							|  |  |  |                       "Address is valid for bitcoin network, but it shouldn't be") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-27 14:13:44 -04:00
										 |  |  |         XCTAssertEqual(addressInfo.address.asString(), "tb1qzg4mckdh50nwdm9hkzq06528rsu73hjxxzem3e") | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  |     func testBalance() throws { | 
					
						
							|  |  |  |         let descriptor: Descriptor = try Descriptor( | 
					
						
							|  |  |  |             descriptor: "wpkh([c258d2e4/84h/1h/0h]tpubDDYkZojQFQjht8Tm4jsS3iuEmKjTiEGjG6KnuFNKKJb5A6ZUCUZKdvLdSDWofKi4ToRCwb9poe1XdqfUnP4jaJjCB2Zwv11ZLgSbnZSNecE/0/*)", | 
					
						
							|  |  |  |             network: Network.testnet | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  |         let wallet: Wallet = try Wallet.newNoPersist( | 
					
						
							|  |  |  |             descriptor: descriptor, | 
					
						
							|  |  |  |             changeDescriptor: nil, | 
					
						
							|  |  |  |             network: .testnet | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-15 15:57:02 -06:00
										 |  |  |         XCTAssertEqual(wallet.getBalance().total, 0) | 
					
						
							| 
									
										
										
										
											2023-10-27 14:13:44 -04:00
										 |  |  |     } | 
					
						
							|  |  |  | } |