BitCoinJ для облачного приложения

В настоящее время я работаю над облачным проектом, который будет принимать платежи с использованием биткойнов. Я намерен использовать BitCoinJ для обработки платежа. К сожалению, единственная помощь, которую я могу получить, — это демонстрация JavaWorld, которая, похоже, не синхронизирована с текущим кодом. Не могли бы вы указать мне несколько лучших/обновленных вспомогательных ссылок/материалов.

Ответы (2)

В самой библиотеке bitcoinj есть несколько примеров, которые всегда актуальны (поскольку они являются частью сборки).

Инструмент командной строки «WalletTool», который написал Майк, очень полезен для основ создания, отправки, получения кошелька и т. д.

WalletAppKit kit=new WalletAppKit(MainNetParams.get(), new File("."), "mywalletfilename");
kit.setAutoSave(true);
kit.startAsync();
kit.awaitRunning();
kit.wallet().addEventListener(new WalletListener());

в то время как слушатель выглядит так:

public class WalletListener  extends AbstractWalletEventListener {
public WalletListener() {
}

@Override
public void onCoinsReceived(org.bitcoinj.core.Wallet wallet, Transaction tx, Coin prevBalance, Coin newBalance) {
    System.out.println("-----> coins resceived: " + tx.getHashAsString()+" prevBalance = "+prevBalance.getValue()+" newBal="+newBalance.getValue());
    System.out.println("received: " + tx.getValue(wallet));
}

@Override
public void onTransactionConfidenceChanged(org.bitcoinj.core.Wallet wallet, Transaction tx) {
    System.out.println("-----> confidence changed: " + tx.getHashAsString());
    TransactionConfidence confidence = tx.getConfidence();
    System.out.println("new block depth: " + confidence.getDepthInBlocks());
}

@Override
public void onCoinsSent(org.bitcoinj.core.Wallet wallet, Transaction tx, Coin prevBalance, Coin newBalance) {
    System.out.println("coins sent");
}

@Override
public void onReorganize(org.bitcoinj.core.Wallet wallet) {
}

@Override
public void onWalletChanged(org.bitcoinj.core.Wallet wallet) {
}

@Override
public void onKeysAdded(List<ECKey> keys) {
    System.out.println("new key added");
}

    /*@Override
    public void onScriptsAdded(Wallet wallet, List<Script> scripts) {
        System.out.println("new script added");
    }*/

}

Должно работать достаточно для получения BTC ;) не забывайте, что TXConfidence изменился, где он сообщает вам, что счетчик подтверждений TX изменился и на что он изменился... ;-)