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


Java Protos类代码示例

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


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

示例1: createPaymentRequest

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
/**
 * Create a payment request. You may want to sign the request using {@link #signPaymentRequest}. Use
 * {@link org.bitcoin.protocols.payments.Protos.PaymentRequest.Builder#build} to get the actual payment request.
 * 
 * @param params network parameters
 * @param outputs list of outputs to request coins to
 * @param memo arbitrary, user readable memo, or null if none
 * @param paymentUrl URL to send payment message to, or null if none
 * @param merchantData arbitrary merchant data, or null if none
 * @return created payment request, in its builder form
 */
public static Protos.PaymentRequest.Builder createPaymentRequest(NetworkParameters params,
        List<Protos.Output> outputs, @Nullable String memo, @Nullable String paymentUrl,
        @Nullable byte[] merchantData) {
    final Protos.PaymentDetails.Builder paymentDetails = Protos.PaymentDetails.newBuilder();
    paymentDetails.setNetwork(params.getPaymentProtocolId());
    for (Protos.Output output : outputs)
        paymentDetails.addOutputs(output);
    if (memo != null)
        paymentDetails.setMemo(memo);
    if (paymentUrl != null)
        paymentDetails.setPaymentUrl(paymentUrl);
    if (merchantData != null)
        paymentDetails.setMerchantData(ByteString.copyFrom(merchantData));
    paymentDetails.setTime(Utils.currentTimeSeconds());

    final Protos.PaymentRequest.Builder paymentRequest = Protos.PaymentRequest.newBuilder();
    paymentRequest.setSerializedPaymentDetails(paymentDetails.build().toByteString());
    return paymentRequest;
}
 
开发者ID:guodroid,项目名称:okwallet,代码行数:31,代码来源:PaymentProtocol.java

示例2: sendPayment

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
/**
 * Generates a Payment message and sends the payment to the merchant who sent the PaymentRequest.
 * Provide transactions built by the wallet.
 * NOTE: This does not broadcast the transactions to the bitcoin network, it merely sends a Payment message to the
 * merchant confirming the payment.
 * Returns an object wrapping PaymentACK once received.
 * If the PaymentRequest did not specify a payment_url, returns null and does nothing.
 * @param txns list of transactions to be included with the Payment message.
 * @param refundAddr will be used by the merchant to send money back if there was a problem.
 * @param memo is a message to include in the payment message sent to the merchant.
 */
@Nullable
public ListenableFuture<PaymentProtocol.Ack> sendPayment(List<Transaction> txns, @Nullable Address refundAddr, @Nullable String memo)
        throws PaymentProtocolException, VerificationException, IOException {
    Protos.Payment payment = getPayment(txns, refundAddr, memo);
    if (payment == null)
        return null;
    if (isExpired())
        throw new PaymentProtocolException.Expired("PaymentRequest is expired");
    URL url;
    try {
        url = new URL(paymentDetails.getPaymentUrl());
    } catch (MalformedURLException e) {
        throw new PaymentProtocolException.InvalidPaymentURL(e);
    }
    return sendPayment(url, payment);
}
 
开发者ID:guodroid,项目名称:okwallet,代码行数:28,代码来源:PaymentSession.java

示例3: createPaymentMessage

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
/**
 * Create a payment message. This wraps up transaction data along with anything else useful for making a payment.
 * 
 * @param transactions transactions to include with the payment message
 * @param refundOutputs list of outputs to refund coins to, or null
 * @param memo arbitrary, user readable memo, or null if none
 * @param merchantData arbitrary merchant data, or null if none
 * @return created payment message
 */
public static Protos.Payment createPaymentMessage(List<Transaction> transactions,
        @Nullable List<Protos.Output> refundOutputs, @Nullable String memo, @Nullable byte[] merchantData) {
    Protos.Payment.Builder builder = Protos.Payment.newBuilder();
    for (Transaction transaction : transactions) {
        transaction.verify();
        builder.addTransactions(ByteString.copyFrom(transaction.unsafeBitcoinSerialize()));
    }
    if (refundOutputs != null) {
        for (Protos.Output output : refundOutputs)
            builder.addRefundTo(output);
    }
    if (memo != null)
        builder.setMemo(memo);
    if (merchantData != null)
        builder.setMerchantData(ByteString.copyFrom(merchantData));
    return builder.build();
}
 
开发者ID:guodroid,项目名称:okwallet,代码行数:27,代码来源:PaymentProtocol.java

示例4: createPaymentRequest

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
/**
 * Create a payment request. You may want to sign the request using {@link #signPaymentRequest}. Use
 * {@link Protos.PaymentRequest.Builder#build} to get the actual payment request.
 * 
 * @param params network parameters
 * @param outputs list of outputs to request coins to
 * @param memo arbitrary, user readable memo, or null if none
 * @param paymentUrl URL to send payment message to, or null if none
 * @param merchantData arbitrary merchant data, or null if none
 * @return created payment request, in its builder form
 */
public static Protos.PaymentRequest.Builder createPaymentRequest(NetworkParameters params,
        List<Protos.Output> outputs, @Nullable String memo, @Nullable String paymentUrl,
        @Nullable byte[] merchantData) {
    final Protos.PaymentDetails.Builder paymentDetails = Protos.PaymentDetails.newBuilder();
    paymentDetails.setNetwork(params.getPaymentProtocolId());
    for (Protos.Output output : outputs)
        paymentDetails.addOutputs(output);
    if (memo != null)
        paymentDetails.setMemo(memo);
    if (paymentUrl != null)
        paymentDetails.setPaymentUrl(paymentUrl);
    if (merchantData != null)
        paymentDetails.setMerchantData(ByteString.copyFrom(merchantData));
    paymentDetails.setTime(Utils.currentTimeSeconds());

    final Protos.PaymentRequest.Builder paymentRequest = Protos.PaymentRequest.newBuilder();
    paymentRequest.setSerializedPaymentDetails(paymentDetails.build().toByteString());
    return paymentRequest;
}
 
开发者ID:Grant-Redmond,项目名称:cryptwallet,代码行数:31,代码来源:PaymentProtocol.java

示例5: testDefaults

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
@Test
public void testDefaults() throws Exception {
    Protos.Output.Builder outputBuilder = Protos.Output.newBuilder()
            .setScript(ByteString.copyFrom(outputToMe.getScriptBytes()));
    Protos.PaymentDetails paymentDetails = Protos.PaymentDetails.newBuilder()
            .setTime(time)
            .addOutputs(outputBuilder)
            .build();
    Protos.PaymentRequest paymentRequest = Protos.PaymentRequest.newBuilder()
            .setSerializedPaymentDetails(paymentDetails.toByteString())
            .build();
    MockPaymentSession paymentSession = new MockPaymentSession(paymentRequest);
    assertEquals(Coin.ZERO, paymentSession.getValue());
    assertNull(paymentSession.getPaymentUrl());
    assertNull(paymentSession.getMemo());
}
 
开发者ID:Grant-Redmond,项目名称:cryptwallet,代码行数:17,代码来源:PaymentSessionTest.java

示例6: newSimplePaymentRequest

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
private Protos.PaymentRequest newSimplePaymentRequest(String netID) {
    Protos.Output.Builder outputBuilder = Protos.Output.newBuilder()
            .setAmount(coin.value)
            .setScript(ByteString.copyFrom(outputToMe.getScriptBytes()));
    Protos.PaymentDetails paymentDetails = Protos.PaymentDetails.newBuilder()
            .setNetwork(netID)
            .setTime(time)
            .setPaymentUrl(simplePaymentUrl)
            .addOutputs(outputBuilder)
            .setMemo(paymentRequestMemo)
            .setMerchantData(merchantData)
            .build();
    return Protos.PaymentRequest.newBuilder()
            .setPaymentDetailsVersion(1)
            .setPkiType("none")
            .setSerializedPaymentDetails(paymentDetails.toByteString())
            .build();
}
 
开发者ID:Grant-Redmond,项目名称:cryptwallet,代码行数:19,代码来源:PaymentSessionTest.java

示例7: newExpiredPaymentRequest

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
private Protos.PaymentRequest newExpiredPaymentRequest() {
    Protos.Output.Builder outputBuilder = Protos.Output.newBuilder()
            .setAmount(coin.value)
            .setScript(ByteString.copyFrom(outputToMe.getScriptBytes()));
    Protos.PaymentDetails paymentDetails = Protos.PaymentDetails.newBuilder()
            .setNetwork("test")
            .setTime(time - 10)
            .setExpires(time - 1)
            .setPaymentUrl(simplePaymentUrl)
            .addOutputs(outputBuilder)
            .setMemo(paymentRequestMemo)
            .setMerchantData(merchantData)
            .build();
    return Protos.PaymentRequest.newBuilder()
            .setPaymentDetailsVersion(1)
            .setPkiType("none")
            .setSerializedPaymentDetails(paymentDetails.toByteString())
            .build();
}
 
开发者ID:Grant-Redmond,项目名称:cryptwallet,代码行数:20,代码来源:PaymentSessionTest.java

示例8: testSignAndVerifyValid

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
@Test
public void testSignAndVerifyValid() throws Exception {
    Protos.PaymentRequest.Builder paymentRequest = minimalPaymentRequest().toBuilder();

    // Sign
    KeyStore keyStore = X509Utils
            .loadKeyStore("JKS", "password", getClass().getResourceAsStream("test-valid-cert"));
    PrivateKey privateKey = (PrivateKey) keyStore.getKey("test-valid", "password".toCharArray());
    X509Certificate clientCert = (X509Certificate) keyStore.getCertificate("test-valid");
    PaymentProtocol.signPaymentRequest(paymentRequest, new X509Certificate[]{clientCert}, privateKey);

    // Verify
    PkiVerificationData verificationData = PaymentProtocol.verifyPaymentRequestPki(paymentRequest.build(), caStore);
    assertNotNull(verificationData);
    assertEquals(caCert, verificationData.rootAuthority.getTrustedCert());
}
 
开发者ID:Grant-Redmond,项目名称:cryptwallet,代码行数:17,代码来源:PaymentProtocolTest.java

示例9: sendPayment

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
/**
 * Generates a Payment message and sends the payment to the merchant who sent the PaymentRequest.
 * Provide transactions built by the wallet.
 * NOTE: This does not broadcast the transactions to the bitcoin network, it merely sends a Payment message to the
 * merchant confirming the payment.
 * Returns an object wrapping PaymentACK once received.
 * If the PaymentRequest did not specify a payment_url, returns null and does nothing.
 * @param txns list of transactions to be included with the Payment message.
 * @param refundAddr will be used by the merchant to send money back if there was a problem.
 * @param memo is a message to include in the payment message sent to the merchant.
 */
public @Nullable ListenableFuture<PaymentProtocol.Ack> sendPayment(List<Transaction> txns, @Nullable Address refundAddr, @Nullable String memo)
        throws PaymentProtocolException, VerificationException, IOException {
    Protos.Payment payment = getPayment(txns, refundAddr, memo);
    if (payment == null)
        return null;
    if (isExpired())
        throw new PaymentProtocolException.Expired("PaymentRequest is expired");
    URL url;
    try {
        url = new URL(paymentDetails.getPaymentUrl());
    } catch (MalformedURLException e) {
        throw new PaymentProtocolException.InvalidPaymentURL(e);
    }
    return sendPayment(url, payment);
}
 
开发者ID:HashEngineering,项目名称:namecoinj,代码行数:27,代码来源:PaymentSession.java

示例10: sendPayment

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
@VisibleForTesting
protected ListenableFuture<PaymentProtocol.Ack> sendPayment(final URL url, final Protos.Payment payment) {
    return executor.submit(new Callable<PaymentProtocol.Ack>() {
        @Override
        public PaymentProtocol.Ack call() throws Exception {
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setRequestProperty("Content-Type", PaymentProtocol.MIMETYPE_PAYMENT);
            connection.setRequestProperty("Accept", PaymentProtocol.MIMETYPE_PAYMENTACK);
            connection.setRequestProperty("Content-Length", Integer.toString(payment.getSerializedSize()));
            connection.setUseCaches(false);
            connection.setDoInput(true);
            connection.setDoOutput(true);

            // Send request.
            DataOutputStream outStream = new DataOutputStream(connection.getOutputStream());
            payment.writeTo(outStream);
            outStream.flush();
            outStream.close();

            // Get response.
            Protos.PaymentACK paymentAck = Protos.PaymentACK.parseFrom(connection.getInputStream());
            return PaymentProtocol.parsePaymentAck(paymentAck);
        }
    });
}
 
开发者ID:egordon,项目名称:CoinJoin,代码行数:27,代码来源:PaymentSession.java

示例11: handleRequest

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
private void handleRequest() {
    try {
        final String[] addresses = donationAddresses();
        final NetworkParameters params = Address.getParametersFromAddress(addresses[0]);

        final Protos.Output.Builder output1 = Protos.Output.newBuilder();
        output1.setAmount(AMOUNT);
        output1.setScript(ByteString
                .copyFrom(ScriptBuilder.createOutputScript(new Address(params, addresses[0])).getProgram()));

        final Protos.Output.Builder output2 = Protos.Output.newBuilder();
        output2.setAmount(AMOUNT);
        output2.setScript(ByteString
                .copyFrom(ScriptBuilder.createOutputScript(new Address(params, addresses[1])).getProgram()));

        final Protos.PaymentDetails.Builder paymentDetails = Protos.PaymentDetails.newBuilder();
        paymentDetails.setNetwork(params.getPaymentProtocolId());
        paymentDetails.addOutputs(output1);
        paymentDetails.addOutputs(output2);
        paymentDetails.setMemo(MEMO);
        paymentDetails.setTime(System.currentTimeMillis());

        final Protos.PaymentRequest.Builder paymentRequest = Protos.PaymentRequest.newBuilder();
        paymentRequest.setSerializedPaymentDetails(paymentDetails.build().toByteString());

        BitcoinIntegration.requestForResult(SampleActivity.this, REQUEST_CODE,
                paymentRequest.build().toByteArray());
    } catch (final AddressFormatException x) {
        throw new RuntimeException(x);
    }
}
 
开发者ID:guodroid,项目名称:okwallet,代码行数:32,代码来源:SampleActivity.java

示例12: fetchPaymentRequest

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
private static ListenableFuture<PaymentSession> fetchPaymentRequest(final URI uri, final boolean verifyPki, @Nullable final TrustStoreLoader trustStoreLoader) {
    return executor.submit(new Callable<PaymentSession>() {
        @Override
        public PaymentSession call() throws Exception {
            HttpURLConnection connection = (HttpURLConnection)uri.toURL().openConnection();
            connection.setRequestProperty("Accept", PaymentProtocol.MIMETYPE_PAYMENTREQUEST);
            connection.setUseCaches(false);
            Protos.PaymentRequest paymentRequest = Protos.PaymentRequest.parseFrom(connection.getInputStream());
            return new PaymentSession(paymentRequest, verifyPki, trustStoreLoader);
        }
    });
}
 
开发者ID:guodroid,项目名称:okwallet,代码行数:13,代码来源:PaymentSession.java

示例13: getOutputs

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
/**
 * Returns the outputs of the payment request.
 */
public List<PaymentProtocol.Output> getOutputs() {
    List<PaymentProtocol.Output> outputs = new ArrayList<>(paymentDetails.getOutputsCount());
    for (Protos.Output output : paymentDetails.getOutputsList()) {
        Coin amount = output.hasAmount() ? Coin.valueOf(output.getAmount()) : null;
        outputs.add(new PaymentProtocol.Output(amount, output.getScript().toByteArray()));
    }
    return outputs;
}
 
开发者ID:guodroid,项目名称:okwallet,代码行数:12,代码来源:PaymentSession.java

示例14: getSendRequest

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
/**
 * Returns a {@link SendRequest} suitable for broadcasting to the network.
 */
public SendRequest getSendRequest() {
    Transaction tx = new Transaction(params);
    for (Protos.Output output : paymentDetails.getOutputsList())
        tx.addOutput(new TransactionOutput(params, tx, Coin.valueOf(output.getAmount()), output.getScript().toByteArray()));
    return SendRequest.forTx(tx).fromPaymentDetails(paymentDetails);
}
 
开发者ID:guodroid,项目名称:okwallet,代码行数:10,代码来源:PaymentSession.java

示例15: getPayment

import org.bitcoin.protocols.payments.Protos; //导入依赖的package包/类
/**
 * Generates a Payment message based on the information in the PaymentRequest.
 * Provide transactions built by the wallet.
 * If the PaymentRequest did not specify a payment_url, returns null.
 * @param txns list of transactions to be included with the Payment message.
 * @param refundAddr will be used by the merchant to send money back if there was a problem.
 * @param memo is a message to include in the payment message sent to the merchant.
 */
@Nullable
public Protos.Payment getPayment(List<Transaction> txns, @Nullable Address refundAddr, @Nullable String memo)
        throws IOException, PaymentProtocolException.InvalidNetwork {
    if (paymentDetails.hasPaymentUrl()) {
        for (Transaction tx : txns)
            if (!tx.getParams().equals(params))
                throw new PaymentProtocolException.InvalidNetwork(params.getPaymentProtocolId());
        return PaymentProtocol.createPaymentMessage(txns, totalValue, refundAddr, memo, getMerchantData());
    } else {
        return null;
    }
}
 
开发者ID:guodroid,项目名称:okwallet,代码行数:21,代码来源:PaymentSession.java


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