iota-ruby 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,173 @@
1
+ require "test_helper"
2
+
3
+ class UtilsTest < Minitest::Test
4
+ def setup
5
+ @utils = IOTA::Utils::Utils.new
6
+ end
7
+
8
+ def test_checksum_validation
9
+ addressWithChecksum = "UYEEERFQYTPFAHIPXDQAQYWYMSMCLMGBTYAXLWFRFFWPYFOICOVLK9A9VYNCKK9TQUNBTARCEQXJHD9VYXOEDEOMRC"
10
+ assert_equal @utils.isValidChecksum(addressWithChecksum), true
11
+ end
12
+
13
+ def test_unit_conversion
14
+ tests = [
15
+ {
16
+ value: 100,
17
+ fromUnit: 'Gi',
18
+ toUnit: 'i',
19
+ expected: 100000000000
20
+ },
21
+ {
22
+ value: 10.1,
23
+ fromUnit: 'Gi',
24
+ toUnit: 'i',
25
+ expected: 10100000000
26
+ },
27
+ {
28
+ value: '10.1000',
29
+ fromUnit: 'Gi',
30
+ toUnit: 'i',
31
+ expected: 10100000000
32
+ },
33
+ {
34
+ value: 1,
35
+ fromUnit: 'i',
36
+ toUnit: 'Ti',
37
+ expected: 0.000000000001
38
+ },
39
+ {
40
+ value: 1,
41
+ fromUnit: 'Ti',
42
+ toUnit: 'i',
43
+ expected: 1000000000000
44
+ },
45
+ {
46
+ value: 1000,
47
+ fromUnit: 'Gi',
48
+ toUnit: 'Ti',
49
+ expected: 1
50
+ },
51
+ {
52
+ value: 133.999111111,
53
+ fromUnit: 'Gi',
54
+ toUnit: 'i',
55
+ expected: 133999111111
56
+ }
57
+ ]
58
+
59
+ tests.each do |test|
60
+ converted = @utils.convertUnits(test[:value], test[:fromUnit], test[:toUnit])
61
+ assert_equal test[:expected], converted
62
+ end
63
+ end
64
+
65
+ def test_bundle_validation
66
+ tests = [
67
+ # Valid Bundle
68
+ {
69
+ "bundle" => [
70
+ {
71
+ "hash" => "CKUBZGZUZJPZSPHWLPXMJPMWTTQYGSNDMBLSPIVZGHVJHEBABBAXWYKTGYHZAUKAPGALKEBXHHSD99999",
72
+ "signatureMessageFragment" => "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999",
73
+ "address" => "PPJFBGPEFOMNBNTTCFBTQCGY9BVXTS9LWQVFNXODIHVEPJLFRSJYMYBDFOOFWPIBAYBLBZO9PHYOLEJBA",
74
+ "value" => 1,
75
+ "obsoleteTag" => "BIGTEST99999999999999999999",
76
+ "timestamp" => 1502215514,
77
+ "currentIndex" => 0,
78
+ "lastIndex" => 3,
79
+ "bundle" => "ZNSJHWENEAN9VKGQICUBWGKBKRQVPMDIIUEFNVBYRROMEJNCCHGPJIWQERZASRQDYZKDJDXZJRFRVKRWY",
80
+ "trunkTransaction" => "UEBOMWXEKEQCZFOTGRDF9MXZQDXX9VBKQNKLQDTNMNSY9RM9ZVPHVNXOIYEJLBIPE9JSHMWQPPXZ99999",
81
+ "branchTransaction" => "GPWZXISZREDVZTRCPSZAJYPDHNFF9AGZXIYWIDLVWZDHBIQRPSJPXAUNRMXCZLIRSBHBILATOQYQX9999",
82
+ "tag" => "VUTFNPTRCHCH9JDRPPEJHJDZKJX",
83
+ "attachmentTimestamp" => -1789972691417,
84
+ "attachmentTimestampLowerBound" => -442481168685,
85
+ "attachmentTimestampUpperBound" => -1558788566106,
86
+ "nonce" => "RJTBFCUPVBRCZNAVV9HPS9IRKVM"
87
+ },
88
+ {
89
+ "hash" => "UEBOMWXEKEQCZFOTGRDF9MXZQDXX9VBKQNKLQDTNMNSY9RM9ZVPHVNXOIYEJLBIPE9JSHMWQPPXZ99999",
90
+ "signatureMessageFragment" => "QHYTTDPBSHHHFXNQWXWMOINNIOUXCMJTZGWSCJEMWFUVDSYSRHABDKLPXFGHX9DVOPGCE9CNDPQEYOLRWADEPEQVIAXHVGALDOPHJGSQYFPOCEOZQRVIVNXES9DPCGBYIDIUZRGI9PGZWYHOXNCMDXT9YRXWVBPPABP9XQFS9SNUFIDS9ZDDONYHYGNNEMAAM9XOGYPFIGVXAVEQMTXXLJZFOCILIWUYODUYERZLVFSCRO9PAFWCIGSUQQOAZQOYJZIOMTVCVFLXTCNLIUMVM9FREBSBLEFGWRFGNV9XPOJYVXMXROYDUUWHRSVIOMFHSEVZDNERZMZPVHSYUVCQLKZGDTQNOHSBORQJBLDLDM9OBVJXMMPRTQADQCMPOETPZSGXGYUA9QOWJDBTWXEXBCPLPKVATHQQWTUNDCHCAKOOFWPCOFCRCUMFGWTTSRVNPIQJMOGQJV9UGBVWDQLCGGDJUC9QII9SOYDOGXC9VIPZKOAYL9BSTIUXUPESUMBWYZHXLEAAGCVYHNSUUUGDVILVSUTQBIFSPVQHWGNCQVOV9UQMHAWXBEZFEGHRB9RARBVRHQN9VXVJSCMEQMAFSYXLRZLSPHJUPTJXRQ9AHJWQDBBMKVEPRUIDQJGUVHVMDXNTDUCYTBYGZHZVQFEBGYZGSUPN9GHXLDQGH9RMVSYQ9VTHQXOXRDISURXPYTMLAUKQDCOLXTPRNFYNTZHDYH9UWLTNP9AZMSNV9EIDNUGPQUADTBHO9EKMUHEZKHVZJYZXMUMCONPD9KXXZDWBH9YLZNFVKI9BUWKGAMEUKD9AGGXZGAFWDLJF9XADITKONBUTGUHYYWYKKSCGSFUNGIG9EJIPUETMBDUNGZUPXKEYTQCVKIEIQTURL9XEVPT9RBFHXMCFYDGPRTFUWZWMYRMQVKNYAHKRZIBDN9DWQ9CDUSQBFTDSOTQKCZORVSMIHPJBJ9HWHFG9IUZVOYTQWBMRG9VBSQVTIDBREOXNRARNPAYPLLQGJRWRNJLFE99MEXVOKGEH99VFBAVCJOYTVDMSTRDWBDIEWVWLNZEJCNHIRUKZEPWVFGGITVQLMTDYHSSCHUYPCRDWRRATKHMUWFLRMODOTIYBDVVFPJMHUMFXKDTBGYIRYIHAPFHHOCURRJVTIOSLUMVYCTQKLTZVDJIETCETCQXJITTGMTMXNDGIHAMAPVDEPXRXXMBO9ZWOUJJWHWUFRHLAKGCLIQCPWDJIVZILIWUSNDYPSOEGRAEJGNQBDYWCXZCSNQ9AZFLZ9GDCBJTHXBD9IQLXDUZ9ICEVSOLSTIEQUJNYH9OOZJIVHTDZMIBZ9SVBBBGTEGTCKKUEQZOMDEXXRFLKTDXKGHVXMDOSQGJXDWYRZ9PNSEAZNSZFAJQAAACNHZDMBIBKHAIC9HXELOEGCYN9LVZCDJ9XRDJSNFMBGVZAQZLCCSDUPRRYFCQRBRYMFYEAM9SZWC9JBLQEQJZCWFLZKUKQJTOGRMRCRGKMPYRAIBSQARAZXETXDSRLIGQIBMPQCQAIFVZKJVTHBFT9PRBTHVGCGXFPRBDWLBDRHVJISDNRQEUUIUXMNVHRIUSMIQAMIQHEMF9OBWPUZWHIUEFAMBHZHDGKMKFL9SKTURRPJOKYM9CJYOYTGPRDPOUUZQUTYDBPUDLOPRAVWUWZRRNZGCLVNUATOYALLKQRWDCEDSJKKJWOQFIAMA9XLJYEYWOOUUWGQIOSEAJLOPCXWBEPYURZZRZOYTZVGRCWMOQZGAUGGWFNZHIHHUCAKZPLEQFWBVKLFYIXIJSEQLEFWRUSJFKVIBGHNESKHBYXNUSTUNSSBUJNCETWZ9MZXNHQQWCIDEJFDYBXWTXTWSOUDTUIITZR9OMZNZXDAIOCPSPRAUQRZDBWNFT9OXAOINSXXJSLVSHAHDGHLJAJIDEHNOFJXNTJZ9XAEHTNWKMDFEYCWZ9VYERIXNIMELVOYVGTIB99ACZUJYUMP9MQKPOFIRFMMWQ9YSWHLYLZ9QANFECFLKWBXYEOBH9MYACFUSLVCCWCIJDGJPWZBNGJUKYYIFIESAUAMW9Q9GDKGCMOSFANYUTZTUXEEQJWQCFNMGTLPZDZNRVGPXPSFOFNGKZGNNPQWWEIFOGLHOEUSAOIMKI9JFFBGLQQMWQJPJNOQFSMCJTRIRTVLEQIIIVVICD",
91
+ "address" => "ZWXPIOIUFRIC9EZCUUJWEOZKBWH9ROHCIP9WRZGUXQZMUTMTGGEBPHBUMWK9GTLEXCIVWWR9ZAENHKSJ9",
92
+ "value" => -2000000000,
93
+ "obsoleteTag" => "BIGTEST99999999999999999999",
94
+ "timestamp" => 1502215514,
95
+ "currentIndex" => 1,
96
+ "lastIndex" => 3,
97
+ "bundle" => "ZNSJHWENEAN9VKGQICUBWGKBKRQVPMDIIUEFNVBYRROMEJNCCHGPJIWQERZASRQDYZKDJDXZJRFRVKRWY",
98
+ "trunkTransaction" => "YBRMGZC9SHQNUNDGZEIHETCZJX9DZJ9AAXHGSPQWEAIVC9OSZWVUGBMVX9MUWYJVNNUJTCNOTUGP99999",
99
+ "branchTransaction" => "GPWZXISZREDVZTRCPSZAJYPDHNFF9AGZXIYWIDLVWZDHBIQRPSJPXAUNRMXCZLIRSBHBILATOQYQX9999",
100
+ "tag" => "KOXCGHOATHMIGGHJX9PJYKYCEWI",
101
+ "attachmentTimestamp" => -3519568744220,
102
+ "attachmentTimestampLowerBound" => -2402437163849,
103
+ "attachmentTimestampUpperBound" => 2116140926633,
104
+ "nonce" => "MFSLEXDI9CVT9LE99XOGC9ABHOV"
105
+ },
106
+ {
107
+ "hash" => "YBRMGZC9SHQNUNDGZEIHETCZJX9DZJ9AAXHGSPQWEAIVC9OSZWVUGBMVX9MUWYJVNNUJTCNOTUGP99999",
108
+ "signatureMessageFragment" => "ICJAYWSUQXPRGDBXWGOVLAIHIGTRCLPBZIFMCKWBF9MWICVBGMYYNTSVWDUNALFZMSLMGKTILEUULOBMDCHTKABBHXU9RCNRAGDPEDJLULAXEZYTQQUAXZYARFXUGFDZLRPZSTXLOJFIMBUGHJNLWJNOMULNQOVCBYFNLSZZH9YCEA99UEEGEDXNSISHHMBRSAADCYIP9XICGFSPRLNMXMFVGWHKDUZQLZBKHDVBOAZQBFSYDDYZHQOVYJZAKMFXFIWCMGO9VTYZEAVGEDZFKY9VMTLDWOKSYFUGUF9IWUTZMTHJINKFQ9CNPKUVGXKEJXJZICZSSFHZYDFOKNINWU9IFJUKETQPSUBAKOKFNEWEAYXZEHVDUUATVGRFBDWNTBPETJECHXPUHRGWXOKOYVUJPQKASXBYWDZFGMHAAQGDCQWEAFFGMMANYZ9JGJURTQCLJBGOUQVYVGRWWGHRRGKYSSIDHZZLPVNYPAJYMMHD9EKOYAYVWWVPUHZQTFBOXJQIFVOYXSNQ9XQISMIZAQELLVRVFXQKLKTZSRJNBRPNFFGOTSMDADAYSVVUDPDXYETLZVPH9BSFOJMHVENEIRHKNV9GOEYHZIOSJIMNTUMTBEGFBMZQGXQYADGRE9MPHVXHGFT9YSRAIS9YMMXBYACDQVIXOQLRQSVPGPLHGZUSBTSOEJNEVSEZBYRUDHUJMEDDZRNBUPSDWIDXDKHXHUIE9KSCGYE9PKBTSKRXMCERJWCUENIGJKHKFKXYEXSGFHKYGXCVYETWQERNDIZACUPLXFKBFOLTGYOQIPFX9YPCVIYVNYACOFYSPKHHLKSBXIJQDZLQ9JWPDICSXWTUWHAQIRWHUFHZNYMJMJCVIZWPBGURYIDQSYDTHMBHSB9LFOCGVNNZEXFSQUGFS9IGGNBYDVXQSATZTVKFUYCWQXISDQWFVUJQVQQQBBKGZDZETQKHYQIHDUMYULXVYEX9SKILMGPP9CJPWIWHCFGMCWGOXAGRVFIABEQBSSRFSAAOAYRAQOQWTUIMD9EFTWJZRLHCBRCOWSORAPFRGGSZECFQQDFKWYRSDPLLXJLNZJJMYOG9QZYWEIWY9KWPBPGJZCJZIFDCNFTUGIN9VMJL9XHRJXWNYTBZCYHKTKHWKDGVUDIZJPMXOYUHUVCOULMRRBYH9CJHVGMVLNKZFMYXQFJSYRLILZISXVMTNQ9BLADY9YDBPUOFBQTFJWYUZX99Z9LFJJ9WV9NAMBUEXOZQTNIGPKDEYE9FTO99SSMCCCGWD9DDVAFKRP9OMAGBSHZMORJTIPHOHKT9YEAQCFIULKTYJWUL9ABACZRZUMFZSWFBLOZUUTBSKRLPQCDZNQIWPRXYEZSLWTFRYKWZPHNUXII9MWFCKBEOEXOJC9ITEQNQPQPQUHVQZDJEZNIMRTIEYW99ZIZGVH9QEVCOWZKXAYNCMDWNBWTDAQDMAXCPHTTLUOIXTWLZNRTVSLKQFAQHRJSCMWD9XRFNCXNRUDOILEJPXRAXUCJNMHYBVONKBQYDGMDOPMVJNURTADTGVASPCB9ZPQVWIRI9VVKBTZE99MFGFHFCESXMTXFGLMELWORBZTEMEEZHEEFHRCPY9DMZHPXYI9CPDREJSECKCSIEHUQJACGNPWIOSUCARELRIFHMC9GCRIKK9PVKUCYMILFMRMKCYPVOAIIAVIDNXEXDNMLE9FLUGVFROOJMPRYWXDNWGWTSFNMZPIPWDZOVWLUBQSMJPZUABZJAYN9KLRULXKUXMRLRWYKIE9EYYCODKHCRGZHKOIRSQBP9LAFQAUPPKYNJ9SOMOCPHMRHIYAEKXZMAXZBAQZBDTUBGKQAONOIVBKITECYVELHCST9QHWGALGNBYUNQNALDRZLZIJDPABN9MWDIVTVHHTOHFKFMIYSTOSRXAOYOMCYOLZZSMGWF9KWDMVMMYRPOHHWZKOXYQYAUPWXIPZTXKNZXLUSKZGEMGODFEM9AAOMNH9JDAYIJRA9WBYXGHTZJCUVYQXCXWH9WKLVQBNUYETQPTCRSL9GNARBVQUPEOXSUVNPOCAPWHWJWZNOPGCJLFLIACQZRN9XYNZOU9DZSBTTUUXVAUOVZWDHIZHNWA9KSUWCNU9C9OQXIZYUUQP9QKEOXUIXYTHTRZJIAUKSKFFNVGIPVJGVNVKHDQTTMXKA",
109
+ "address" => "ZWXPIOIUFRIC9EZCUUJWEOZKBWH9ROHCIP9WRZGUXQZMUTMTGGEBPHBUMWK9GTLEXCIVWWR9ZAENHKSJ9",
110
+ "value" => 0,
111
+ "obsoleteTag" => "BIGTEST99999999999999999999",
112
+ "timestamp" => 1502215514,
113
+ "currentIndex" => 2,
114
+ "lastIndex" => 3,
115
+ "bundle" => "ZNSJHWENEAN9VKGQICUBWGKBKRQVPMDIIUEFNVBYRROMEJNCCHGPJIWQERZASRQDYZKDJDXZJRFRVKRWY",
116
+ "trunkTransaction" => "F9AYXWCOWNCRJKTGHRYAURGOCMEXHWQE9YYCLNPOWZECDKPATVVBA9VJJBMEWVPNYYFNYWNDPMUU99999",
117
+ "branchTransaction" => "GPWZXISZREDVZTRCPSZAJYPDHNFF9AGZXIYWIDLVWZDHBIQRPSJPXAUNRMXCZLIRSBHBILATOQYQX9999",
118
+ "tag" => "9GDNXRQSWHOVQWCUXESHIHTSGG9",
119
+ "attachmentTimestamp" => -1576624671529,
120
+ "attachmentTimestampLowerBound" => 116988204706,
121
+ "attachmentTimestampUpperBound" => -2233110606683,
122
+ "nonce" => "KESGKIIXKGV9BPIBCXLBYBBVTCH"
123
+ },
124
+ {
125
+ "hash" => "F9AYXWCOWNCRJKTGHRYAURGOCMEXHWQE9YYCLNPOWZECDKPATVVBA9VJJBMEWVPNYYFNYWNDPMUU99999",
126
+ "signatureMessageFragment" => "999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999",
127
+ "address" => "BRU9LRH9YNGTYMFRODMPMEAPIDTDYUFLQLFWTXKNXQYHSYNEMCFVFGKMIWWOWDFOAJ9RRZVCWX9ELQEP9",
128
+ "value" => 1999999999,
129
+ "obsoleteTag" => "BIGTEST99999999999999999999",
130
+ "timestamp" => 1502215528,
131
+ "currentIndex" => 3,
132
+ "lastIndex" => 3,
133
+ "bundle" => "ZNSJHWENEAN9VKGQICUBWGKBKRQVPMDIIUEFNVBYRROMEJNCCHGPJIWQERZASRQDYZKDJDXZJRFRVKRWY",
134
+ "trunkTransaction" => "GPWZXISZREDVZTRCPSZAJYPDHNFF9AGZXIYWIDLVWZDHBIQRPSJPXAUNRMXCZLIRSBHBILATOQYQX9999",
135
+ "branchTransaction" => "TRKDBAIFTWTNRMCLVGBSXJXZO9VNFMYOSDJXELM9LNUHXOQBFRMNAAZTWURMNGUZDJVXNITXWZKAZ9999",
136
+ "tag" => "MIRMAZTQUR9MMEPCWOMHMDLZPFE",
137
+ "attachmentTimestamp" => -1737679689424,
138
+ "attachmentTimestampLowerBound" => -282646045775,
139
+ "attachmentTimestampUpperBound" => 2918881518838,
140
+ "nonce" => "IJZRLQMGVIYWOS9FDKDRPONJWNB"
141
+ }
142
+ ],
143
+ "expected" => true
144
+ },
145
+ # Invalid Bundle
146
+ {
147
+ "bundle" => [
148
+ {
149
+ "hash" => "IPQYUNLDGKCLJVEJGVVISSQYVDJJWOXCW9RZXIDFKMBXDVZDXFBZNZJKBSTIMBKAXHFTGETEIPTZGNTJK",
150
+ "signatureMessageFragment" => "",
151
+ "address" => "A9RGRKVGWMWMKOLVMDFWJUHNUNYWZTJADGGPZGXNLERLXYWJE9WQHWWBMCPZMVVMJUMWWBLZLNMLDCGDJ",
152
+ "value" => 0,
153
+ "tag" => "999999999999999999999999999",
154
+ "timestamp" => 1482522289,
155
+ "currentIndex" => 0,
156
+ "lastIndex" => 0,
157
+ "bundle" => "TXEFLKNPJRBYZPORHZU9CEMFIFVVQBUSTDGSJCZMBTZCDTTJVUFPTCCVHHORPMGCURKTH9VGJIXUQJVHK",
158
+ "trunkTransaction" => "999999999999999999999999999999999999999999999999999999999999999999999999999999999",
159
+ "branchTransaction" => "999999999999999999999999999999999999999999999999999999999999999999999999999999999",
160
+ "nonce" => "999999999999999999999999999999999999999999999999999999999999999999999999999999999"
161
+ }
162
+ ],
163
+ "expected" => false
164
+ }
165
+ ]
166
+
167
+ tests.each_with_index do |test, index|
168
+ bundle = IOTA::Models::Bundle.new(test['bundle'])
169
+ isValid = @utils.isBundle(bundle)
170
+ assert_equal test['expected'], isValid
171
+ end
172
+ end
173
+ end
metadata ADDED
@@ -0,0 +1,144 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: iota-ruby
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Vivek Marakana
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2017-12-03 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.15'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.15'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: digest-sha3
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '1.1'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '1.1'
69
+ description: Ruby gem for the IOTA core
70
+ email:
71
+ - vivek.marakana@gmail.com
72
+ executables:
73
+ - iota-console
74
+ extensions: []
75
+ extra_rdoc_files: []
76
+ files:
77
+ - ".editorconfig"
78
+ - ".gitignore"
79
+ - ".travis.yml"
80
+ - Gemfile
81
+ - LICENSE
82
+ - README.md
83
+ - Rakefile
84
+ - bin/iota-console
85
+ - examples/multisig.rb
86
+ - iota-ruby.gemspec
87
+ - lib/iota.rb
88
+ - lib/iota/api/api.rb
89
+ - lib/iota/api/commands.rb
90
+ - lib/iota/api/wrappers.rb
91
+ - lib/iota/crypto/bundle.rb
92
+ - lib/iota/crypto/converter.rb
93
+ - lib/iota/crypto/curl.rb
94
+ - lib/iota/crypto/hmac.rb
95
+ - lib/iota/crypto/kerl.rb
96
+ - lib/iota/crypto/private_key.rb
97
+ - lib/iota/crypto/signing.rb
98
+ - lib/iota/models/account.rb
99
+ - lib/iota/models/base.rb
100
+ - lib/iota/models/bundle.rb
101
+ - lib/iota/models/input.rb
102
+ - lib/iota/models/seed.rb
103
+ - lib/iota/models/transaction.rb
104
+ - lib/iota/models/transfer.rb
105
+ - lib/iota/multisig/address.rb
106
+ - lib/iota/multisig/multisig.rb
107
+ - lib/iota/utils/ascii.rb
108
+ - lib/iota/utils/broker.rb
109
+ - lib/iota/utils/input_validator.rb
110
+ - lib/iota/utils/object_validator.rb
111
+ - lib/iota/utils/utils.rb
112
+ - lib/iota/version.rb
113
+ - test/ascii_test.rb
114
+ - test/kerl_test.rb
115
+ - test/test_helper.rb
116
+ - test/utils_test.rb
117
+ homepage: https://github.com/vivekmarakana/iota.lib.rb
118
+ licenses: []
119
+ metadata: {}
120
+ post_install_message:
121
+ rdoc_options: []
122
+ require_paths:
123
+ - lib
124
+ required_ruby_version: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '0'
129
+ required_rubygems_version: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - ">="
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ requirements: []
135
+ rubyforge_project:
136
+ rubygems_version: 2.6.12
137
+ signing_key:
138
+ specification_version: 4
139
+ summary: IOTA API wrapper for Ruby
140
+ test_files:
141
+ - test/ascii_test.rb
142
+ - test/kerl_test.rb
143
+ - test/test_helper.rb
144
+ - test/utils_test.rb