From 8acf2e91e8967ff487f8ab72c5cd1da4c9e701de Mon Sep 17 00:00:00 2001 From: Mike Hearn Date: Thu, 4 Dec 2014 18:51:45 +0100 Subject: [PATCH] Add a BIP70 example to the javascript folder --- examples/src/main/javascript/payprotocol.js | 24 +++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 examples/src/main/javascript/payprotocol.js diff --git a/examples/src/main/javascript/payprotocol.js b/examples/src/main/javascript/payprotocol.js new file mode 100644 index 00000000..0fa93e82 --- /dev/null +++ b/examples/src/main/javascript/payprotocol.js @@ -0,0 +1,24 @@ +// Example app that creates a minimal BIP70 payment request with a multisig output, and then prints it to base64. + +var bcj = org.bitcoinj; +var protos = org.bitcoin.protocols.payments.Protos; +var pbuf = com.google.protobuf; + +var details = protos.PaymentDetails.newBuilder(); +details.time = new Date().value; +var output = protos.Output.newBuilder(); + +var scriptBytes = bcj.script.ScriptBuilder.createMultiSigOutputScript(2, [new bcj.core.ECKey(), new bcj.core.ECKey()]).program; +// ... or to a regular address output: +// var scriptBytes = bcj.script.ScriptBuilder.createOutputScript(new bcj.core.ECKey().toAddress(bcj.params.MainNetParams.get())).program; + +output.script = pbuf.ByteString.copyFrom(scriptBytes); +details.addOutputs(output); + +var request = protos.PaymentRequest.newBuilder(); +request.serializedPaymentDetails = details.build().toByteString(); + +var bits = request.build().toByteArray(); +var b64 = java.util.Base64.getEncoder().encodeToString(bits); +print(b64); +