@@ -33,6 +33,16 @@ def test_transaction_input():
33
33
check_two_way_cbor (tx_in )
34
34
35
35
36
+ def test_hashable_transaction_input ():
37
+ my_inputs = {}
38
+ tx_id_hex1 = "732bfd67e66be8e8288349fcaaa2294973ef6271cc189a239bb431275401b8e5"
39
+ tx_id_hex2 = "732bfd67e66be8e8288349fcaaa2294973ef6271cc189a239bb431275401b8e5"
40
+ tx_in1 = TransactionInput (TransactionId (bytes .fromhex (tx_id_hex1 )), 0 )
41
+ tx_in2 = TransactionInput (TransactionId (bytes .fromhex (tx_id_hex2 )), 0 )
42
+ assert tx_in1 == tx_in2
43
+ my_inputs [tx_in1 ] = 1
44
+
45
+
36
46
def test_transaction_output ():
37
47
addr = Address .decode (
38
48
"addr_test1vrm9x2zsux7va6w892g38tvchnzahvcd9tykqf3ygnmwtaqyfg52x"
@@ -133,7 +143,7 @@ def test_invalid_transaction_output():
133
143
addr = Address .decode (
134
144
"addr_test1vrm9x2zsux7va6w892g38tvchnzahvcd9tykqf3ygnmwtaqyfg52x"
135
145
)
136
- output = TransactionOutput (addr , - 100000000000 )
146
+ output = TransactionOutput (addr , - 1 )
137
147
with pytest .raises (InvalidDataException ):
138
148
output .to_cbor_hex ()
139
149
@@ -266,15 +276,26 @@ def test_multi_asset_addition():
266
276
}
267
277
)
268
278
279
+ result = a .union (b )
280
+
269
281
assert a + b == MultiAsset .from_primitive (
270
282
{
271
283
b"1" * SCRIPT_HASH_SIZE : {b"Token1" : 11 , b"Token2" : 22 },
272
284
b"2" * SCRIPT_HASH_SIZE : {b"Token1" : 1 , b"Token2" : 2 },
273
285
}
274
286
)
287
+
288
+ assert result == MultiAsset .from_primitive (
289
+ {
290
+ b"1" * SCRIPT_HASH_SIZE : {b"Token1" : 11 , b"Token2" : 22 },
291
+ b"2" * SCRIPT_HASH_SIZE : {b"Token1" : 1 , b"Token2" : 2 },
292
+ }
293
+ )
294
+
275
295
assert a == MultiAsset .from_primitive (
276
296
{b"1" * SCRIPT_HASH_SIZE : {b"Token1" : 1 , b"Token2" : 2 }}
277
297
)
298
+
278
299
assert b == MultiAsset .from_primitive (
279
300
{
280
301
b"1" * SCRIPT_HASH_SIZE : {b"Token1" : 10 , b"Token2" : 20 },
@@ -305,6 +326,7 @@ def test_multi_asset_subtraction():
305
326
assert a == MultiAsset .from_primitive (
306
327
{b"1" * SCRIPT_HASH_SIZE : {b"Token1" : 1 , b"Token2" : 2 }}
307
328
)
329
+
308
330
assert b == MultiAsset .from_primitive (
309
331
{
310
332
b"1" * SCRIPT_HASH_SIZE : {b"Token1" : 10 , b"Token2" : 20 },
@@ -329,6 +351,10 @@ def test_asset_comparison():
329
351
330
352
d = Asset .from_primitive ({b"Token3" : 1 , b"Token4" : 2 })
331
353
354
+ result = a .union (b )
355
+
356
+ assert result == Asset .from_primitive ({b"Token1" : 2 , b"Token2" : 5 })
357
+
332
358
assert a == a
333
359
334
360
assert a <= b
@@ -341,6 +367,8 @@ def test_asset_comparison():
341
367
342
368
assert not any ([a == d , a <= d , d <= a ])
343
369
370
+ assert not a == "abc"
371
+
344
372
with pytest .raises (TypeCheckError ):
345
373
a <= 1
346
374
@@ -381,6 +409,8 @@ def test_multi_asset_comparison():
381
409
assert not a <= d
382
410
assert not d <= a
383
411
412
+ assert not a == "abc"
413
+
384
414
with pytest .raises (TypeCheckError ):
385
415
a <= 1
386
416
@@ -414,6 +444,8 @@ def test_values():
414
444
assert b <= c
415
445
assert not c <= b
416
446
447
+ assert not a == "abc"
448
+
417
449
assert b - a == Value .from_primitive (
418
450
[10 , {b"1" * SCRIPT_HASH_SIZE : {b"Token1" : 10 , b"Token2" : 20 }}]
419
451
)
@@ -452,6 +484,18 @@ def test_values():
452
484
]
453
485
)
454
486
487
+ result = a .union (b )
488
+
489
+ assert result == Value .from_primitive (
490
+ [12 , {b"1" * SCRIPT_HASH_SIZE : {b"Token1" : 12 , b"Token2" : 24 }}]
491
+ )
492
+
493
+ d = 10000000
494
+
495
+ f = Value (1 )
496
+
497
+ assert f <= d
498
+
455
499
456
500
def test_inline_datum_serdes ():
457
501
@dataclass
0 commit comments