|
8 | 8 | ;;;; any other, from this software.
|
9 | 9 |
|
10 | 10 | (ns clj-btc.core-test
|
11 |
| - (:require [clojure.test :refer :all] |
| 11 | + (:require [clojure.set :refer (superset?)] |
| 12 | + [clojure.test :refer :all] |
12 | 13 | [clj-btc.core :refer :all]
|
13 | 14 | [clj-btc.config :refer :all]))
|
14 | 15 |
|
|
19 | 20 | ;;; local configuration file.
|
20 | 21 |
|
21 | 22 | (def cfg (atom {}))
|
| 23 | + |
22 | 24 | (def addr-with-bitcoins
|
23 | 25 | {:public "mqWiQRdS6MePCtALRg2smULFvqf8Ru1usj",
|
24 | 26 | :private "cVGghpMADPnrX6YNnS7X8nSEnULR6epfJFHLyw9dvKi6n17tUkDg"})
|
|
46 | 48 | (str ~rpc-method " should return a result of type "
|
47 | 49 | ~(str expected-type)))))
|
48 | 50 |
|
| 51 | +(defn- supermap? |
| 52 | + "Does m1 cointain all of m2? (inspired by https://stackoverflow.com/questions/20421405/how-to-check-if-a-map-is-a-subset-of-another-in-clojure)" |
| 53 | + [m1 m2] |
| 54 | + (superset? (set m1) (set m2))) |
| 55 | + |
49 | 56 | (deftest return-types
|
50 | 57 | (is-type integer? getblockcount)
|
51 | 58 | (is-type integer? getconnectioncount)
|
|
106 | 113 | "raw transaction creation correct")
|
107 | 114 |
|
108 | 115 | (let [random-vout (rand-int 10000)
|
109 |
| - random-amount (bigdec (rand)) |
| 116 | + random-amount (bigdec (format "%.8f" (rand))) |
110 | 117 | raw-transaction (createrawtransaction
|
111 | 118 | :txids-map
|
112 | 119 | [{"txid" "7acb74b4ad7f982eed3dabf93c8f474451b0a60f3f7950cd12a2bbe721290cb8"
|
113 | 120 | "vout" random-vout}]
|
114 | 121 | :addrs-amounts-map
|
115 | 122 | {"mqWiQRdS6MePCtALRg2smULFvqf8Ru1usj" random-amount})
|
116 | 123 | decoded-raw-transaction (decoderawtransaction :hex-string raw-transaction)]
|
117 |
| - (is (= decoded-raw-transaction |
118 |
| - {"txid" "6316b2abcc2d957ecb1304f63725ea70841b1feae94c6f017e114556d8c60537", |
119 |
| - "version" 1, "locktime" 0, |
120 |
| - "vin" [{"txid" "7acb74b4ad7f982eed3dabf93c8f474451b0a60f3f7950cd12a2bbe721290cb8", |
121 |
| - "vout" random-vout, "scriptSig" {"asm" "", "hex" ""}, |
122 |
| - "sequence" 4294967295}], |
123 |
| - "vout" [{"value" random-amount, "n" 0, |
124 |
| - "scriptPubKey" |
125 |
| - {"asm" "OP_DUP OP_HASH160 6da5a9b587c385c1a6002bf77f71e4333e0ceb1a OP_EQUALVERIFY OP_CHECKSIG", |
126 |
| - "hex" "76a9146da5a9b587c385c1a6002bf77f71e4333e0ceb1a88ac", |
127 |
| - "reqSigs" 1, "type" "pubkeyhash", "addresses" ["mqWiQRdS6MePCtALRg2smULFvqf8Ru1usj"]}}]}) |
| 124 | + (is (supermap? |
| 125 | + decoded-raw-transaction |
| 126 | + {;; "txid" "6316b2abcc2d957ecb1304f63725ea70841b1feae94c6f017e114556d8c60537", |
| 127 | + "version" 1, "locktime" 0, |
| 128 | + "vin" [{"txid" "7acb74b4ad7f982eed3dabf93c8f474451b0a60f3f7950cd12a2bbe721290cb8", |
| 129 | + "vout" random-vout, "scriptSig" {"asm" "", "hex" ""}, |
| 130 | + "sequence" 4294967295}], |
| 131 | + "vout" [{"value" random-amount, "n" 0, |
| 132 | + "scriptPubKey" |
| 133 | + {"asm" "OP_DUP OP_HASH160 6da5a9b587c385c1a6002bf77f71e4333e0ceb1a OP_EQUALVERIFY OP_CHECKSIG", |
| 134 | + "hex" "76a9146da5a9b587c385c1a6002bf77f71e4333e0ceb1a88ac", |
| 135 | + "reqSigs" 1, "type" "pubkeyhash", "addresses" ["mqWiQRdS6MePCtALRg2smULFvqf8Ru1usj"]}}]}) |
128 | 136 | "decoding encoded raw transaction correct"))
|
129 | 137 | (is (= (getrawtransaction :txid "7acb74b4ad7f982eed3dabf93c8f474451b0a60f3f7950cd12a2bbe721290cb8")
|
130 | 138 | "01000000019c19404b3cd4aa272cdc45fd6362f33151181d6ea6f26bda8d6311664e8a2248000000006b483045022065939207fde542fd6f38da9c651537f3e36621e9a447f2877ff0e8a807137367022100c7935881cd3af35502eb12a7ea12d7a2952ac5e1ada1dd52bef1b9449fca36240121024d1a5f75a170eebebe25df71a87e3ef012cc07754db4c87feeee65f1aeed84bfffffffff0210270000000000001976a914fac7cf4845a26094ff9571a27db6268950a3b70e88ac3214ac3a000000001976a914560b13a3ac034489c8bc9488d749174a2fb198e988ac00000000")
|
131 | 139 | "get raw transaction")
|
132 | 140 |
|
133 | 141 | (is (= (signrawtransaction
|
134 |
| - :txid "010000000189957b01aed596d3b361b576234eaeed3249246f14562d6bc6085166cd247d5a0000000000ffffffff0180969800000000001976a9140dfc8bafc8419853b34d5e072ad37d1a5159f58488ac00000000" |
| 142 | + :hexstring "010000000189957b01aed596d3b361b576234eaeed3249246f14562d6bc6085166cd247d5a0000000000ffffffff0180969800000000001976a9140dfc8bafc8419853b34d5e072ad37d1a5159f58488ac00000000" |
135 | 143 | :txinfo [{:txid "7acb74b4ad7f982eed3dabf93c8f474451b0a60f3f7950cd12a2bbe721290cb8" :vout 2 :scriptPubKey "123d"}])
|
136 | 144 | {"hex" "010000000189957b01aed596d3b361b576234eaeed3249246f14562d6bc6085166cd247d5a0000000000ffffffff0180969800000000001976a9140dfc8bafc8419853b34d5e072ad37d1a5159f58488ac00000000",
|
137 | 145 | "complete" false})
|
|
0 commit comments