/** * Returns the number of issued receiving keys */ public int getNumberIssuedReceiveAddresses() { lock.lock(); try { return keys.getNumIssuedExternalKeys(); } finally { lock.unlock(); } }
@Test public void issuedKeys() throws Bip44KeyLookAheadExceededException { List<BitAddress> issuedAddresses = new ArrayList<>(); assertEquals(0, pocket.getIssuedReceiveAddresses().size()); assertEquals(0, pocket.keys.getNumIssuedExternalKeys()); issuedAddresses.add(0, pocket.currentAddress(KeyChain.KeyPurpose.RECEIVE_FUNDS)); BitAddress freshAddress = pocket.getFreshReceiveAddress(); assertEquals(freshAddress, pocket.currentAddress(KeyChain.KeyPurpose.RECEIVE_FUNDS)); assertEquals(1, pocket.getIssuedReceiveAddresses().size()); assertEquals(1, pocket.keys.getNumIssuedExternalKeys()); assertEquals(issuedAddresses, pocket.getIssuedReceiveAddresses()); issuedAddresses.add(0, pocket.currentAddress(KeyChain.KeyPurpose.RECEIVE_FUNDS)); freshAddress = pocket.getFreshReceiveAddress(); assertEquals(freshAddress, pocket.currentAddress(KeyChain.KeyPurpose.RECEIVE_FUNDS)); assertEquals(2, pocket.getIssuedReceiveAddresses().size()); assertEquals(2, pocket.keys.getNumIssuedExternalKeys()); assertEquals(issuedAddresses, pocket.getIssuedReceiveAddresses()); }
@Test public void fillTransactions() throws Exception { pocket.onConnection(getBlockchainConnection(DOGE)); checkUnspentOutputs(getDummyUtxoSet(), pocket); assertEquals(11000000000L, pocket.getBalance().value); // Issued keys assertEquals(18, pocket.keys.getNumIssuedExternalKeys()); assertEquals(9, pocket.keys.getNumIssuedInternalKeys()); // No addresses left to subscribe List<AbstractAddress> addressesToWatch = pocket.getAddressesToWatch(); assertEquals(0, addressesToWatch.size()); // 18 external issued + 20 lookahead + 9 external issued + 20 lookahead assertEquals(67, pocket.addressesStatus.size()); assertEquals(67, pocket.addressesSubscribed.size()); BitAddress receiveAddr = pocket.getReceiveAddress(); // This key is not issued assertEquals(18, pocket.keys.getNumIssuedExternalKeys()); assertEquals(67, pocket.addressesStatus.size()); assertEquals(67, pocket.addressesSubscribed.size()); DeterministicKey key = pocket.keys.findKeyFromPubHash(receiveAddr.getHash160()); assertNotNull(key); // 18 here is the key index, not issued keys count assertEquals(18, key.getChildNumber().num()); assertEquals(11000000000L, pocket.getBalance().value); }
@Test public void serializeUnencryptedEmpty() throws Exception { pocket.maybeInitializeAllKeys(); Protos.WalletPocket walletPocketProto = pocket.toProtobuf(); WalletPocketHD newPocket = new WalletPocketProtobufSerializer().readWallet(walletPocketProto, null); assertEquals(walletPocketProto.toString(), newPocket.toProtobuf().toString()); // Issued keys assertEquals(0, newPocket.keys.getNumIssuedExternalKeys()); assertEquals(0, newPocket.keys.getNumIssuedInternalKeys()); // 20 lookahead + 20 lookahead assertEquals(40, newPocket.keys.getActiveKeys().size()); }
assertEquals(18, newPocket.keys.getNumIssuedExternalKeys()); assertEquals(9, newPocket.keys.getNumIssuedInternalKeys());