当前位置: 首页>>代码示例>>Java>>正文


Java Transaction类代码示例

本文整理汇总了Java中org.ethereum.geth.Transaction的典型用法代码示例。如果您正苦于以下问题:Java Transaction类的具体用法?Java Transaction怎么用?Java Transaction使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


Transaction类属于org.ethereum.geth包,在下文中一共展示了Transaction类的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: createAndSendTransaction

import org.ethereum.geth.Transaction; //导入依赖的package包/类
/**
 * Create and send transaction.
 *
 * @param passphrase Passphrase
 * @param nonce      Account nonce (use -1 to use last known nonce)
 * @param toAddress  Address destination
 * @param amount     Amount
 * @param gasLimit   Gas limit
 * @param gasPrice   Gas price
 * @param data
 * @param promise    Promise
 * @return Return String transaction
 */
@ReactMethod
public void createAndSendTransaction(String passphrase, double nonce, String toAddress,
                                     double amount, double gasLimit, double gasPrice,
                                     String data, Promise promise) {
    try {
        Account acc = GethHolder.getAccount();
        Address fromAddress = acc.getAddress();
        BigInt chain = new BigInt(GethHolder.getNodeConfig().getEthereumNetworkID());
        Context ctx = new Context();

        if (nonce == -1) {
          nonce = GethHolder.getNode().getEthereumClient().getPendingNonceAt(ctx, fromAddress);
        }

        Transaction tx = new Transaction(
                (long) nonce,
                new Address(toAddress),
                new BigInt((long) amount),
                new BigInt((long) gasLimit),
                new BigInt((long) gasPrice),
                data.getBytes("UTF8"));

        // Sign a transaction with a single authorization
        Transaction signed = GethHolder.getKeyStore().signTxPassphrase(acc, passphrase, tx, chain);
        // Send it out to the network.
        GethHolder.getNode().getEthereumClient().sendTransaction(ctx, signed);
        promise.resolve(tx.toString());
    } catch (Exception e) {
        promise.reject(NEW_TRANSACTION_ERROR, e);
    }
}
 
开发者ID:YsnKsy,项目名称:react-native-geth,代码行数:45,代码来源:RNGethModule.java

示例2: signTransaction

import org.ethereum.geth.Transaction; //导入依赖的package包/类
@Override
public Single<byte[]> signTransaction(Wallet signer, String signerPassword, String toAddress, BigInteger amount, BigInteger gasPrice, BigInteger gasLimit, long nonce, byte[] data, long chainId) {
    return Single.fromCallable(() -> {
        BigInt value = new BigInt(0);
        value.setString(amount.toString(), 10);

        BigInt gasPriceBI = new BigInt(0);
        gasPriceBI.setString(gasPrice.toString(), 10);

        BigInt gasLimitBI = new BigInt(0);
        gasLimitBI.setString(gasLimit.toString(), 10);

        Transaction tx = new Transaction(
                nonce,
                new Address(toAddress),
                value,
                gasLimitBI,
                gasPriceBI,
                data);

        BigInt chain = new BigInt(chainId); // Chain identifier of the main net
        org.ethereum.geth.Account gethAccount = findAccount(signer.address);
        keyStore.unlock(gethAccount, signerPassword);
        Transaction signed = keyStore.signTx(gethAccount, tx, chain);
        keyStore.lock(gethAccount.getAddress());

        return signed.encodeRLP();
    })
    .subscribeOn(Schedulers.io());
}
 
开发者ID:TrustWallet,项目名称:trust-wallet-android,代码行数:31,代码来源:GethKeystoreAccountService.java

示例3: initGame

import org.ethereum.geth.Transaction; //导入依赖的package包/类
@OnClick(R.id.init_game)
    void initGame() {
//        machine
//                .initGameForPlayer(new Uint256(Convert.toWei(0.001, Convert.Unit.ETHER)), new Uint256(20))
//                .map(receipt -> machine.getGameInitializedEvents(receipt))
//                .subscribe(gameInitializedEventResponses -> {
//                    if (gameInitializedEventResponses.isEmpty()) {
//                        Log.i(TAG, "response is empty");
//                        return;
//                    }
//                    SlotMachine.GameInitializedEventResponse response = gameInitializedEventResponses.get(0);
//
//                    Log.i(TAG, "player address : " + response.player.toString());
//                    Log.i(TAG, "bet : " + response.bet.getValue());
//                    Log.i(TAG, "lines : " + response.lines.getValue());
//                });

        Completable
                .create(e -> {
                    CredentialManager.setDefault(1, "asdf");

                    Function function = new Function(
                            "initGameForPlayer",
                            Arrays.asList(
                                    new Uint256(Convert.toWei(0.001, Convert.Unit.ETHER)),
                                    new Uint256(20),
                                    new Uint256(playerSeed.getIndex())),
                            Collections.emptyList());
                    Transaction tx = new Transaction(
                            playerNonce++, // nonce
                            new org.ethereum.geth.Address(machine.getContractAddress()), // receiver address
                            new BigInt(0),
                            Convert.toBigInt(GethConstants.DEFAULT_GAS_LIMIT), // gas limit
                            Convert.toBigInt(GethConstants.DEFAULT_GAS_PRICE), // gas price
                            Utils.hexToByte(FunctionEncoder.encode(function))
                    );
                    Transaction signed = CredentialManager.getDefault().sign(tx);
                    GethManager.getClient().sendTransaction(GethManager.getMainContext(), signed);

                    e.onComplete();
                })
                .subscribeOn(Schedulers.io())
                .subscribe(() -> {
                }, Throwable::printStackTrace);
    }
 
开发者ID:SlotNSlot,项目名称:SlotNSlot_Android,代码行数:46,代码来源:PlayExampleActivity.java

示例4: setBankerSeed

import org.ethereum.geth.Transaction; //导入依赖的package包/类
@OnClick(R.id.set_banker_seed)
    void setBankerSeed() {
//        machine
//                .setBankerSeed(new Bytes32(Utils.generateRandom(bankerSeed, banker--)))
//                .map(receipt -> machine.getBankerSeedSetEvents(receipt))
//                .subscribe(bankerSeedSetEventResponses -> {
//                    if (bankerSeedSetEventResponses.isEmpty()) {
//                        Log.i(TAG, "response is empty");
//                        return;
//                    }
//
//                    SlotMachine.BankerSeedSetEventResponse response = bankerSeedSetEventResponses.get(0);
//
//                    Log.i(TAG, "banker seed : " + Utils.byteToHex(response.bankerSeed.getValue()));
//                });

        Completable
                .create(e -> {
                    CredentialManager.setDefault(0, "asdf");

                    Function function = new Function(
                            "setBankerSeed",
                            Arrays.asList(
                                    bankerSeed.getSeed(playerSeed.getIndex()),
                                    new Uint256(playerSeed.getIndex())),
                            Collections.emptyList());
                    Transaction tx = new Transaction(
                            bankerNonce++, // nonce
                            new org.ethereum.geth.Address(machine.getContractAddress()), // receiver address
                            new BigInt(0),
                            Convert.toBigInt(GethConstants.DEFAULT_GAS_LIMIT), // gas limit
                            Convert.toBigInt(GethConstants.DEFAULT_GAS_PRICE), // gas price
                            Utils.hexToByte(FunctionEncoder.encode(function))
                    );
                    Transaction signed = CredentialManager.getDefault().sign(tx);
                    GethManager.getClient().sendTransaction(GethManager.getMainContext(), signed);

                    e.onComplete();
                })
                .subscribeOn(Schedulers.io())
                .subscribe(() -> {
                }, Throwable::printStackTrace);
    }
 
开发者ID:SlotNSlot,项目名称:SlotNSlot_Android,代码行数:44,代码来源:PlayExampleActivity.java

示例5: setPlayerSeed

import org.ethereum.geth.Transaction; //导入依赖的package包/类
@OnClick(R.id.set_player_seed)
    void setPlayerSeed() {
//        machine
//                .setPlayerSeed(new Bytes32(Utils.generateRandom(playerSeed, player--)))
//                .map(receipt -> machine.getGameConfirmedEvents(receipt))
//                .subscribe(gameConfirmedEventResponses -> {
//                    if (gameConfirmedEventResponses.isEmpty()) {
//                        Log.i(TAG, "response is empty");
//                        return;
//                    }
//
//                    SlotMachine.GameConfirmedEventResponse response = gameConfirmedEventResponses.get(0);
//
//                    Log.i(TAG, "reward : " + response.reward.getValue());
//                });

        Completable
                .create(e -> {
                    CredentialManager.setDefault(1, "asdf");

                    Function function = new Function(
                            "setPlayerSeed",
                            Arrays.asList(
                                    playerSeed.getSeed(),
                                    new Uint256(playerSeed.getIndex())),
                            Collections.emptyList());
                    Transaction tx = new Transaction(
                            playerNonce++, // nonce
                            new org.ethereum.geth.Address(machine.getContractAddress()), // receiver address
                            new BigInt(0),
                            Convert.toBigInt(GethConstants.DEFAULT_GAS_LIMIT), // gas limit
                            Convert.toBigInt(GethConstants.DEFAULT_GAS_PRICE), // gas price
                            Utils.hexToByte(FunctionEncoder.encode(function))
                    );
                    Transaction signed = CredentialManager.getDefault().sign(tx);
                    GethManager.getClient().sendTransaction(GethManager.getMainContext(), signed);

                    bankerSeed.confirm(playerSeed.getIndex());
                    playerSeed.confirm(playerSeed.getIndex());
                    e.onComplete();
                })
                .subscribeOn(Schedulers.io())
                .subscribe(() -> {
                }, Throwable::printStackTrace);
    }
 
开发者ID:SlotNSlot,项目名称:SlotNSlot_Android,代码行数:46,代码来源:PlayExampleActivity.java


注:本文中的org.ethereum.geth.Transaction类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。