mirror of
https://github.com/trezor/trezor-firmware.git
synced 2024-12-26 16:18:22 +00:00
feat(cardano): update tests for streamed tx signing
This commit is contained in:
parent
b0c8590f00
commit
28f0f60295
151
common/tests/fixtures/cardano/sign_tx.chunked.json
vendored
151
common/tests/fixtures/cardano/sign_tx.chunked.json
vendored
File diff suppressed because one or more lines are too long
662
common/tests/fixtures/cardano/sign_tx.failed.json
vendored
662
common/tests/fixtures/cardano/sign_tx.failed.json
vendored
@ -23,10 +23,11 @@
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"address": "jsK75PTH2esX8k4Wvxenyz83LJJWToBbVmGrWUer2CHFHanLseh7r3sW5X5q",
|
||||
"amount": "3003112"
|
||||
"address": "jsK75PTH2esX8k4Wvxenyz83LJJWToBbVmGrWUer2CHFHanLseh7r3sW5X5q",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid address"
|
||||
@ -54,7 +55,8 @@
|
||||
"address": "5dnY6xgRcNUSLGa4gfqef2jGAMHb7koQs9EXErXLNC1LiMPUnhn8joXhvEJpWQtN3F4ysATcBvCn5tABgL3e4hPWapPHmcK5GJMSEaET5JafgAGwSrznzL1Mqa",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid address"
|
||||
@ -82,7 +84,8 @@
|
||||
"address": "Ae2tdPwUPEZ5YUb8sM3eS8JqKgrRLzhiu71crfuH2MFtqaYr5ACNRZR3Mbm",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid address"
|
||||
@ -100,17 +103,18 @@
|
||||
"auxiliary_data": null,
|
||||
"inputs": [
|
||||
{
|
||||
"path": "m/44'/1815'/0'/0/1",
|
||||
"prev_hash": "1af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc",
|
||||
"prev_index": 0
|
||||
"path": "m/44'/1815'/0'/0/1",
|
||||
"prev_hash": "1af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc",
|
||||
"prev_index": 0
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"address": "addr1q89s8py7y68e3x66sscs0wkhlg5ssfrfs65084jry45scvehcr",
|
||||
"amount": "3003112"
|
||||
"address": "addr1q89s8py7y68e3x66sscs0wkhlg5ssfrfs65084jry45scvehcr",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid address"
|
||||
@ -128,17 +132,18 @@
|
||||
"auxiliary_data": null,
|
||||
"inputs": [
|
||||
{
|
||||
"path": "m/1852'/1815'/0'/0/0",
|
||||
"prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7",
|
||||
"prev_index": 0
|
||||
"path": "m/1852'/1815'/0'/0/0",
|
||||
"prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7",
|
||||
"prev_index": 0
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"address": "addr1q89s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqj922xhxkn6twlq2wn4q50q352annk3903tj00h45mgfm5z3vcwsfrvkr5zglq4rxu",
|
||||
"amount": "3003112"
|
||||
"address": "addr1q89s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqj922xhxkn6twlq2wn4q50q352annk3903tj00h45mgfm5z3vcwsfrvkr5zglq4rxu",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid address"
|
||||
@ -156,9 +161,9 @@
|
||||
"auxiliary_data": null,
|
||||
"inputs": [
|
||||
{
|
||||
"path": "m/1852'/1815'/0'/0/0",
|
||||
"prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7",
|
||||
"prev_index": 0
|
||||
"path": "m/1852'/1815'/0'/0/0",
|
||||
"prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7",
|
||||
"prev_index": 0
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
@ -166,7 +171,8 @@
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Fee is out of range"
|
||||
@ -199,7 +205,8 @@
|
||||
"path": "m/44'/1815'/0'/0/1",
|
||||
"amount": "1000000"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Total transaction amount is out of range!"
|
||||
@ -227,7 +234,8 @@
|
||||
"address": "2657WMsDfac7BteXkJq5Jzdog4h47fPbkwUM49isuWbYAr2cFRHa3rURP236h9PBe",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Output address network mismatch"
|
||||
@ -255,7 +263,8 @@
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Output address network mismatch"
|
||||
@ -283,7 +292,8 @@
|
||||
"address": "addr_test1vr9s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqtmut0e",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid address"
|
||||
@ -311,7 +321,8 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid address"
|
||||
@ -339,7 +350,8 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid network id/protocol magic combination!"
|
||||
@ -367,7 +379,8 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid network id/protocol magic combination!"
|
||||
@ -395,7 +408,8 @@
|
||||
"address": "addr1590z7zqwhya6mpk5q929ur897g3pp9kkgalpreny8y304r2dcrtx0sf3dluyu4erzr3xtmdnzvcyfzekkuteu2xagx0qt7gvvj",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid address"
|
||||
@ -426,7 +440,8 @@
|
||||
"stakingPath": "m/1852'/1815'/0'/2/0",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Outputs can not contain both address and address_parameters fields!"
|
||||
@ -440,7 +455,10 @@
|
||||
"fee": 42,
|
||||
"ttl": 10,
|
||||
"certificates": [
|
||||
{"type": 0, "path": "m/1852'/1815'/0'/0/0"}
|
||||
{
|
||||
"type": 0,
|
||||
"path": "m/1852'/1815'/0'/0/0"
|
||||
}
|
||||
],
|
||||
"withdrawals": [],
|
||||
"auxiliary_data": null,
|
||||
@ -456,7 +474,8 @@
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid certificate"
|
||||
@ -490,7 +509,8 @@
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid certificate"
|
||||
@ -504,7 +524,12 @@
|
||||
"fee": 42,
|
||||
"ttl": 10,
|
||||
"certificates": [],
|
||||
"withdrawals": [{"path": "m/1852'/1815'/0'/0/0", "amount": "1000"}],
|
||||
"withdrawals": [
|
||||
{
|
||||
"path": "m/1852'/1815'/0'/0/0",
|
||||
"amount": "1000"
|
||||
}
|
||||
],
|
||||
"auxiliary_data": null,
|
||||
"inputs": [
|
||||
{
|
||||
@ -518,7 +543,8 @@
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid withdrawal"
|
||||
@ -532,10 +558,12 @@
|
||||
"fee": 42,
|
||||
"ttl": 10,
|
||||
"certificates": [],
|
||||
"withdrawals": [{
|
||||
"withdrawals": [
|
||||
{
|
||||
"path": "m/1852'/1815'/0'/2/0",
|
||||
"amount": "449999999199999999"
|
||||
}],
|
||||
}
|
||||
],
|
||||
"auxiliary_data": null,
|
||||
"inputs": [
|
||||
{
|
||||
@ -549,13 +577,13 @@
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid withdrawal"
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
"description": "Duplicate withdrawal",
|
||||
"parameters": {
|
||||
@ -587,14 +615,15 @@
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Duplicate withdrawals"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Auxiliary data blob is incomplete",
|
||||
"description": "Auxiliary data hash has incorrect length",
|
||||
"parameters": {
|
||||
"protocol_magic": 764824073,
|
||||
"network_id": 1,
|
||||
@ -603,7 +632,7 @@
|
||||
"certificates": [],
|
||||
"withdrawals": [],
|
||||
"auxiliary_data": {
|
||||
"blob": "a200a11864a118c843aa00ff01"
|
||||
"hash": "a200a11864a118c843aa00ff01"
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
@ -617,37 +646,8 @@
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid auxiliary data"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Auxiliary data blob has leftover data",
|
||||
"parameters": {
|
||||
"protocol_magic": 764824073,
|
||||
"network_id": 1,
|
||||
"fee": 42,
|
||||
"ttl": 10,
|
||||
"certificates": [],
|
||||
"withdrawals": [],
|
||||
"auxiliary_data": {
|
||||
"blob": "a200a11864a118c843aa00ff01a119012c590100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa000000"
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
"path": "m/1852'/1815'/0'/0/0",
|
||||
"prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7",
|
||||
"prev_index": 0
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid auxiliary data"
|
||||
@ -685,7 +685,8 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid auxiliary data"
|
||||
@ -701,7 +702,7 @@
|
||||
"certificates": [],
|
||||
"withdrawals": [],
|
||||
"auxiliary_data": {
|
||||
"blob": "a200a11864a118c843aa00ff01a119012c590100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"hash": "ea4c91860dd5ec5449f8f985d227946ff39086b17f10b5afb93d12ee87050b6a",
|
||||
"catalyst_registration_parameters": {
|
||||
"voting_public_key": "38DA0B509D45BF6C87BD55594B92F97081D3923B8C1334B9B8D0BF13FC1C12D0",
|
||||
"staking_path": "m/1852'/1815'/0'/2/0",
|
||||
@ -725,7 +726,8 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid auxiliary data"
|
||||
@ -759,7 +761,8 @@
|
||||
"stakingPath": "m/1852'/1815'/0'/2/0",
|
||||
"amount": "7120787"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid change output path"
|
||||
@ -793,7 +796,8 @@
|
||||
"stakingPath": "m/1852'/1815'/190'/2/0",
|
||||
"amount": "7120787"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid change output staking path"
|
||||
@ -826,507 +830,13 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid certificate path"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Too many tokens in output",
|
||||
"parameters": {
|
||||
"protocol_magic": 764824073,
|
||||
"network_id": 1,
|
||||
"fee": 42,
|
||||
"ttl": 10,
|
||||
"certificates": [],
|
||||
"withdrawals": [],
|
||||
"auxiliary_data": null,
|
||||
"inputs": [
|
||||
{
|
||||
"path": "m/1852'/1815'/0'/0/0",
|
||||
"prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7",
|
||||
"prev_index": 0
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112",
|
||||
"token_bundle": [
|
||||
{
|
||||
"policy_id": "00a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "01aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "7878754"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "02aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "1234"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "03aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "1234"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "04aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "1234"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "05aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "1234"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "06aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "1234"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "07aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "1234"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "08aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "1234"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "09aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "1234"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "01a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "10aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "11aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "12aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "13aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "14aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "15aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "16aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "17aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "02a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "18aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "19aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "20aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "21aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "22aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "23aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "24aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "25aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "03a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "26aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "27aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "28aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "29aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "30aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "31aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "32aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "33aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "04a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "34aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "35aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "36aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "37aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "38aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "39aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "40aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "41aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "05a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "42aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "43aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "44aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "45aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "46aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "47aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "48aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "49aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "06a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "50aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "51aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "52aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "53aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "54aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "55aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "56aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "57aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "07a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "58aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "59aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "60aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "61aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "62aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "63aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "64aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "65aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "08a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "66aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "67aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "68aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "69aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "70aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "71aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "72aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "73aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "09a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "74aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "75aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "76aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "77aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "78aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "79aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "80aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "81aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "10a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "82aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "83aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "84aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "85aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "86aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "87aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "88aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "89aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "11a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "90aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "91aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "92aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "93aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "94aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "95aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "96aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "97aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"policy_id": "12a292ffee938be03e9bae5657982a74e9014eb4960108c9e23a5b39",
|
||||
"tokens": [
|
||||
{
|
||||
"asset_name_bytes": "98aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "99aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
},
|
||||
{
|
||||
"asset_name_bytes": "100aaaaaaaaaaaaaaaaaaaaaaa",
|
||||
"amount": "47"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Maximum tx output value size"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Repeated asset name in multiasset token group",
|
||||
"parameters": {
|
||||
@ -1364,7 +874,8 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid token bundle in output"
|
||||
@ -1412,7 +923,8 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid token bundle in output"
|
||||
|
753
common/tests/fixtures/cardano/sign_tx.json
vendored
753
common/tests/fixtures/cardano/sign_tx.json
vendored
File diff suppressed because it is too large
Load Diff
@ -1,9 +1,9 @@
|
||||
{
|
||||
"setup": {
|
||||
"mnemonic": [
|
||||
"extra extend academic bishop cricket bundle tofu goat apart victim enlarge program behavior permit course armed jerky faint language modern",
|
||||
"extra extend academic acne away best indicate impact square oasis prospect painting voting guest either argue username racism enemy eclipse",
|
||||
"extra extend academic arcade born dive legal hush gross briefing talent drug much home firefly toxic analysis idea umbrella slice"
|
||||
"extra extend academic bishop cricket bundle tofu goat apart victim enlarge program behavior permit course armed jerky faint language modern",
|
||||
"extra extend academic acne away best indicate impact square oasis prospect painting voting guest either argue username racism enemy eclipse",
|
||||
"extra extend academic arcade born dive legal hush gross briefing talent drug much home firefly toxic analysis idea umbrella slice"
|
||||
],
|
||||
"passphrase": "TREZOR"
|
||||
},
|
||||
@ -30,11 +30,19 @@
|
||||
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
|
||||
"amount": "3003112"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"tx_hash": "73e09bdebf98a9e0f17f86a2d11e0f14f4f8dae77cdf26ff1678e821f20c8db6",
|
||||
"serialized_tx": "83a400818258201af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc00018182582b82d818582183581c9e1c71de652ec8b85fec296f0685ca3988781c94a2e1a5d89d92f45fa0001a0d0c25611a002dd2e802182a030aa1028184582024c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c584055c179ff2beca2c6a78d66de3dea5a6e3134ca3430447c9b73ede73d9b6ae524cde73db59d93a4dfccbbd42b4f4dbacbb655b27171d0f248fdd2d0dc16e0130458206f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b41a0f6"
|
||||
"witnesses": [
|
||||
{
|
||||
"type": 0,
|
||||
"pub_key": "24c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c",
|
||||
"signature": "55c179ff2beca2c6a78d66de3dea5a6e3134ca3430447c9b73ede73d9b6ae524cde73db59d93a4dfccbbd42b4f4dbacbb655b27171d0f248fdd2d0dc16e01304",
|
||||
"chain_code": "6f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -64,11 +72,19 @@
|
||||
"path": "m/44'/1815'/0'/0/1",
|
||||
"amount": "1000000"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"tx_hash": "4c43ce4c72f145b145ae7add414722735e250d048f61c4585a5becafcbffa6ae",
|
||||
"serialized_tx": "83a400818258201af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc00018282582b82d818582183581c9e1c71de652ec8b85fec296f0685ca3988781c94a2e1a5d89d92f45fa0001a0d0c25611a002dd2e882582b82d818582183581c2ea63b3db3a1865f59c11762a5aede800ed8f2dc0605d75df2ed7c9ca0001ae82668161a000f424002182a030aa1028184582024c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c5840594c986290cc5cddf3c242f2d650fcbfd0705949c9990569798c29e42ca7b0d6e92a589be6962dcce9c53c63de973d84c38cf53374b5329e20973a280abec00d58206f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b41a0f6"
|
||||
"witnesses": [
|
||||
{
|
||||
"type": 0,
|
||||
"pub_key": "24c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c",
|
||||
"signature": "594c986290cc5cddf3c242f2d650fcbfd0705949c9990569798c29e42ca7b0d6e92a589be6962dcce9c53c63de973d84c38cf53374b5329e20973a280abec00d",
|
||||
"chain_code": "6f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -90,19 +106,27 @@
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"address": "2657WMsDfac7BteXkJq5Jzdog4h47fPbkwUM49isuWbYAr2cFRHa3rURP236h9PBe",
|
||||
"amount": "3003112"
|
||||
"address": "2657WMsDfac7BteXkJq5Jzdog4h47fPbkwUM49isuWbYAr2cFRHa3rURP236h9PBe",
|
||||
"amount": "3003112"
|
||||
},
|
||||
{
|
||||
"addressType": 8,
|
||||
"path": "m/44'/1815'/0'/0/1",
|
||||
"amount": "1000000"
|
||||
"addressType": 8,
|
||||
"path": "m/44'/1815'/0'/0/1",
|
||||
"amount": "1000000"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"tx_hash": "93a2c3cfb67ef1e4bae167b0f443c3370664bdb9171bc9cd41bad98e5cc049b2",
|
||||
"serialized_tx": "83a400818258201af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc00018282582f82d818582583581cc817d85b524e3d073795819a25cdbb84cff6aa2bbb3a081980d248cba10242182a001a0fb6fc611a002dd2e882582f82d818582583581c709bfb5d9733cbdd72f520cd2c8b9f8f942da5e6cd0b6994e1803b0aa10242182a001aef14e76d1a000f424002182a030aa1028184582024c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c5840552d1d66972598532fa539faa98cdc7889c8dce00577626a62fb22d0e244d9f49732b6ab65593352a7486123077b7e36308c5048cc8ee6dc465e576f065cb70558206f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b45a10242182af6"
|
||||
"witnesses": [
|
||||
{
|
||||
"type": 0,
|
||||
"pub_key": "24c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c",
|
||||
"signature": "552d1d66972598532fa539faa98cdc7889c8dce00577626a62fb22d0e244d9f49732b6ab65593352a7486123077b7e36308c5048cc8ee6dc465e576f065cb705",
|
||||
"chain_code": "6f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -47,7 +47,8 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid certificate"
|
||||
@ -99,7 +100,8 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid certificate"
|
||||
@ -148,7 +150,8 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid certificate"
|
||||
@ -197,14 +200,15 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid certificate"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Contains other certificates",
|
||||
"description": "Contains multiple pool registration certificates",
|
||||
"parameters": {
|
||||
"protocol_magic": 764824073,
|
||||
"network_id": 1,
|
||||
@ -232,6 +236,56 @@
|
||||
"metadata": null
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"pool_parameters": {
|
||||
"pool_id": "f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973",
|
||||
"vrf_key_hash": "198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640",
|
||||
"pledge": 500000000,
|
||||
"cost": 340000000,
|
||||
"margin": {
|
||||
"numerator": 1,
|
||||
"denominator": 2
|
||||
},
|
||||
"reward_account": "stake1uya87zwnmax0v6nnn8ptqkl6ydx4522kpsc3l3wmf3yswygwx45el",
|
||||
"owners": [
|
||||
{
|
||||
"staking_key_path": "m/1852'/1815'/0'/2/0"
|
||||
}
|
||||
],
|
||||
"relays": [],
|
||||
"metadata": null
|
||||
}
|
||||
}
|
||||
],
|
||||
"withdrawals": [],
|
||||
"auxiliary_data": null,
|
||||
"inputs": [
|
||||
{
|
||||
"prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7",
|
||||
"prev_index": 0
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Stakepool registration transaction cannot contain other certificates nor withdrawals"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "Contains a different certificate",
|
||||
"parameters": {
|
||||
"protocol_magic": 764824073,
|
||||
"network_id": 1,
|
||||
"fee": 42,
|
||||
"ttl": 10,
|
||||
"certificates": [
|
||||
{
|
||||
"type": 0,
|
||||
"path": "m/1852'/1815'/0'/2/0"
|
||||
@ -250,10 +304,11 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Stakepool registration transaction cannot contain other certificates nor withdrawals"
|
||||
"error_message": "Invalid certificate"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -304,7 +359,8 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Stakepool registration transaction cannot contain other certificates nor withdrawals"
|
||||
@ -353,10 +409,11 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Stakepool registration transaction can contain only external inputs"
|
||||
"error_message": "Stakepool registration transaction can only contain staking witnesses"
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -401,7 +458,8 @@
|
||||
"address": "addr_test1vr9s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqtmut0e",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "ProcessError: Invalid address"
|
||||
@ -449,7 +507,8 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "ProcessError: Invalid address"
|
||||
@ -531,11 +590,95 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid pool owner staking path"
|
||||
}
|
||||
},
|
||||
{
|
||||
"description": "With ORDINARY_TRANSACTION signing mode",
|
||||
"parameters": {
|
||||
"protocol_magic": 764824073,
|
||||
"network_id": 1,
|
||||
"fee": 42,
|
||||
"ttl": 10,
|
||||
"certificates": [
|
||||
{
|
||||
"type": 3,
|
||||
"pool_parameters": {
|
||||
"pool_id": "f61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb4973",
|
||||
"vrf_key_hash": "198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d0640",
|
||||
"pledge": 500000000,
|
||||
"cost": 340000000,
|
||||
"margin": {
|
||||
"numerator": 1,
|
||||
"denominator": 2
|
||||
},
|
||||
"reward_account": "stake1uya87zwnmax0v6nnn8ptqkl6ydx4522kpsc3l3wmf3yswygwx45el",
|
||||
"owners": [
|
||||
{
|
||||
"staking_key_path": "m/1852'/1815'/0'/2/0"
|
||||
},
|
||||
{
|
||||
"staking_key_hash": "3a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c490711"
|
||||
}
|
||||
],
|
||||
"relays": [
|
||||
{
|
||||
"type": 0,
|
||||
"ipv4_address": "192.168.0.1",
|
||||
"ipv6_address": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
|
||||
"port": 1234
|
||||
},
|
||||
{
|
||||
"type": 0,
|
||||
"ipv6_address": "2001:0db8:85a3:0000:0000:8a2e:0370:7334",
|
||||
"port": 1234
|
||||
},
|
||||
{
|
||||
"type": 0,
|
||||
"ipv4_address": "192.168.0.1",
|
||||
"port": 1234
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"host_name": "www.test.test",
|
||||
"port": 1234
|
||||
},
|
||||
{
|
||||
"type": 2,
|
||||
"host_name": "www.test2.test"
|
||||
}
|
||||
],
|
||||
"metadata": {
|
||||
"url": "https://www.test.test",
|
||||
"hash": "914c57c1f12bbf4a82b12d977d4f274674856a11ed4b9b95bd70f5d41c5064a6"
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"withdrawals": [],
|
||||
"auxiliary_data": null,
|
||||
"inputs": [
|
||||
{
|
||||
"path": null,
|
||||
"prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7",
|
||||
"prev_index": 0
|
||||
}
|
||||
],
|
||||
"outputs": [
|
||||
{
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
],
|
||||
"signing_mode": "ORDINARY_TRANSACTION"
|
||||
},
|
||||
"result": {
|
||||
"error_message": "Invalid certificate"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
@ -80,11 +80,19 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"tx_hash": "e3b9a5657bf62609465a930c8359d774c73944973cfc5a104a0f0ed1e1e8db21",
|
||||
"serialized_tx": "83a500818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182583901eb0baa5e570cffbe2934db29df0b6a3d7c0430ee65d4c3a7ab2fefb91bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff0102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820102581de13a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071182581c122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b4277581c3a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c4907118584001904d244c0a8000150b80d01200000a3852e8a00003473700384001904d2f650b80d01200000a3852e8a00003473700384001904d244c0a80001f683011904d26d7777772e746573742e7465737482026e7777772e74657374322e74657374827568747470733a2f2f7777772e746573742e746573745820914c57c1f12bbf4a82b12d977d4f274674856a11ed4b9b95bd70f5d41c5064a6a10081825820bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e584006305b52f76d2d2da6925c02036a9a28456976009f8c6432513f273110d09ea26db79c696cec322b010e5cbb7d90a6b473b157e65df846a1487062569a5f5a04f6"
|
||||
"witnesses": [
|
||||
{
|
||||
"type": 1,
|
||||
"pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e",
|
||||
"signature": "06305b52f76d2d2da6925c02036a9a28456976009f8c6432513f273110d09ea26db79c696cec322b010e5cbb7d90a6b473b157e65df846a1487062569a5f5a04",
|
||||
"chain_code": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -163,11 +171,19 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"tx_hash": "c0d944db15446cf05e8db014685414c928d4d9a3e96aea229234be56eeae34c5",
|
||||
"serialized_tx": "83a500818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182583901eb0baa5e570cffbe2934db29df0b6a3d7c0430ee65d4c3a7ab2fefb91bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff0102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820001581de13a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071182581c122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b4277581c3a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c4907118584001904d244c0a8000150b80d01200000a3852e8a00003473700384001904d2f650b80d01200000a3852e8a00003473700384001904d244c0a80001f683011904d26d7777772e746573742e7465737482026e7777772e74657374322e74657374827568747470733a2f2f7777772e746573742e746573745820914c57c1f12bbf4a82b12d977d4f274674856a11ed4b9b95bd70f5d41c5064a6a10081825820bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e584039e1750c2599cfc3a35bd477e25abb4786cf493d903734b91f71135229a3a6da2d2741e36e255ef1cae6b424324c3595f2050da5715cd573ea5370a91296860ff6"
|
||||
"witnesses": [
|
||||
{
|
||||
"type": 1,
|
||||
"pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e",
|
||||
"signature": "39e1750c2599cfc3a35bd477e25abb4786cf493d903734b91f71135229a3a6da2d2741e36e255ef1cae6b424324c3595f2050da5715cd573ea5370a91296860f",
|
||||
"chain_code": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -247,11 +263,19 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"tx_hash": "f3d62758ff2f520e7256e65be9d8165da60c7979a97202c19d625709412411fd",
|
||||
"serialized_tx": "83a500818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182583901eb0baa5e570cffbe2934db29df0b6a3d7c0430ee65d4c3a7ab2fefb91bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff0102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820102581de13a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071182581c58e438148441c6409537ebd82bb04924362cce2912f3494693fcb000581c3a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c4907118584001904d244c0a8000150b80d01200000a3852e8a00003473700384001904d2f650b80d01200000a3852e8a00003473700384001904d244c0a80001f683011904d26d7777772e746573742e7465737482026e7777772e74657374322e74657374827568747470733a2f2f7777772e746573742e746573745820914c57c1f12bbf4a82b12d977d4f274674856a11ed4b9b95bd70f5d41c5064a6a10081825820d1a07f06b872c68120def0203d0fc3d582ac4ce3897d5eaf448026960875f76d5840c61890be9a2c964f2b64cbd6a91ac6a56332d28ea773855c86e3cd0d1693ae61e9bc053143d2aba14a721fae77edde70ee736b17a761e7b823d87071a4852205f6"
|
||||
"witnesses": [
|
||||
{
|
||||
"type": 1,
|
||||
"pub_key": "d1a07f06b872c68120def0203d0fc3d582ac4ce3897d5eaf448026960875f76d",
|
||||
"signature": "c61890be9a2c964f2b64cbd6a91ac6a56332d28ea773855c86e3cd0d1693ae61e9bc053143d2aba14a721fae77edde70ee736b17a761e7b823d87071a4852205",
|
||||
"chain_code": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -297,11 +321,19 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"tx_hash": "504f9214142996e0b7e315103b25d88a4afa3d01dd5be22376921b52b01483c3",
|
||||
"serialized_tx": "83a500818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182583901eb0baa5e570cffbe2934db29df0b6a3d7c0430ee65d4c3a7ab2fefb91bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff0102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820102581de13a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071181581c122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b427780f6a10081825820bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e5840aa2099208399fcc27c18d7ef0c7e873f9e22f0935b7e912cddd34b33b8cafd541a878dc01c042ce490e4c9bad3c62c2f59acaa009d336c9ff875c5f153d34900f6"
|
||||
"witnesses": [
|
||||
{
|
||||
"type": 1,
|
||||
"pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e",
|
||||
"signature": "aa2099208399fcc27c18d7ef0c7e873f9e22f0935b7e912cddd34b33b8cafd541a878dc01c042ce490e4c9bad3c62c2f59acaa009d336c9ff875c5f153d34900",
|
||||
"chain_code": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -347,11 +379,19 @@
|
||||
"address": "addr_test1vr9s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqtmut0e",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"tx_hash": "12921b4f8e77f815e0c8ed97c541fbd5ba38a6d3323f4ff1af0cb934b8ac6b39",
|
||||
"serialized_tx": "83a500818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182581d60cb03849e268f989b5a843107bad7fa2908246986a8f3d643f8c184800102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820102581de03a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071181581c122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b427780f6a10081825820bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e584027cab81902d04b2491d7aa2bf57bd9db59d33c2df1502dae0412d5225c6b0b8f7b057de6a7e7eae25016ed6ea1f6e6239fb36a285216c6ee4a3cb3376287a300f6"
|
||||
"witnesses": [
|
||||
{
|
||||
"type": 1,
|
||||
"pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e",
|
||||
"signature": "27cab81902d04b2491d7aa2bf57bd9db59d33c2df1502dae0412d5225c6b0b8f7b057de6a7e7eae25016ed6ea1f6e6239fb36a285216c6ee4a3cb3376287a300",
|
||||
"chain_code": null
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
@ -418,8 +458,7 @@
|
||||
],
|
||||
"withdrawals": [],
|
||||
"auxiliary_data": {
|
||||
"type": 0,
|
||||
"blob": "a200a11864a118c843aa00ff01a119012c590100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
"hash": "ea4c91860dd5ec5449f8f985d227946ff39086b17f10b5afb93d12ee87050b6a"
|
||||
},
|
||||
"inputs": [
|
||||
{
|
||||
@ -433,11 +472,19 @@
|
||||
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
|
||||
"amount": "1"
|
||||
}
|
||||
]
|
||||
],
|
||||
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
|
||||
},
|
||||
"result": {
|
||||
"tx_hash": "880fafab19a36407e9af300c2905e2f6bc8a8debd8b625005f56994d242ba460",
|
||||
"serialized_tx": "83a600818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182583901eb0baa5e570cffbe2934db29df0b6a3d7c0430ee65d4c3a7ab2fefb91bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff0102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820102581de13a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071182581c122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b4277581c3a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c4907118584001904d244c0a8000150b80d01200000a3852e8a00003473700384001904d2f650b80d01200000a3852e8a00003473700384001904d244c0a80001f683011904d26d7777772e746573742e7465737482026e7777772e74657374322e74657374827568747470733a2f2f7777772e746573742e746573745820914c57c1f12bbf4a82b12d977d4f274674856a11ed4b9b95bd70f5d41c5064a6075820ea4c91860dd5ec5449f8f985d227946ff39086b17f10b5afb93d12ee87050b6aa10081825820bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e584073dbc58bd6f6bc0d91a2b5852706dde05da7acbfde035481b88b1219518ea8609dc045ea3309b1ffb01830ec64578e80c70db37a1041e72d52649be20ff80009a200a11864a118c843aa00ff01a119012c590100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
|
||||
"witnesses": [
|
||||
{
|
||||
"type": 1,
|
||||
"pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e",
|
||||
"signature": "73dbc58bd6f6bc0d91a2b5852706dde05da7acbfde035481b88b1219518ea8609dc045ea3309b1ffb01830ec64578e80c70db37a1041e72d52649be20ff80009",
|
||||
"chain_code": null
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
|
@ -1,6 +1,5 @@
|
||||
from common import *
|
||||
from apps.common.paths import HARDENED
|
||||
from trezor.messages import CardanoTxInputType
|
||||
|
||||
if not utils.BITCOIN_ONLY:
|
||||
from apps.cardano.sign_tx import _should_hide_output
|
||||
@ -10,99 +9,33 @@ if not utils.BITCOIN_ONLY:
|
||||
class TestCardanoSignTransaction(unittest.TestCase):
|
||||
def test_should_show_outputs(self):
|
||||
outputs_to_hide = [
|
||||
# output is from the same address as input
|
||||
(
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
[[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0]],
|
||||
),
|
||||
# output is from the same account but from different addresses
|
||||
(
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
[
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 1],
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 2],
|
||||
],
|
||||
),
|
||||
# both output and input are from account 2
|
||||
(
|
||||
[44 | HARDENED, 1815 | HARDENED, 2 | HARDENED, 0, 0],
|
||||
[
|
||||
[44 | HARDENED, 1815 | HARDENED, 2 | HARDENED, 0, 0],
|
||||
[44 | HARDENED, 1815 | HARDENED, 2 | HARDENED, 0, 1],
|
||||
[44 | HARDENED, 1815 | HARDENED, 2 | HARDENED, 0, 2],
|
||||
],
|
||||
),
|
||||
# byron input and shelley output
|
||||
(
|
||||
[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
[
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
],
|
||||
),
|
||||
# mixed byron and shelley inputs
|
||||
(
|
||||
[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
[
|
||||
[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
],
|
||||
),
|
||||
# byron path
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
# shelley path
|
||||
[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
# path account is 2
|
||||
[1852 | HARDENED, 1815 | HARDENED, 2 | HARDENED, 0, 0],
|
||||
# path index is 2
|
||||
[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 2],
|
||||
]
|
||||
outputs_to_show = [
|
||||
# output is from different account
|
||||
(
|
||||
[44 | HARDENED, 1815 | HARDENED, 2 | HARDENED, 0, 0],
|
||||
[[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0]],
|
||||
),
|
||||
# output path is not complete
|
||||
(
|
||||
[44 | HARDENED, 1815 | HARDENED],
|
||||
[[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0]],
|
||||
),
|
||||
# output path is not complete
|
||||
(
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED],
|
||||
[[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0]],
|
||||
),
|
||||
# one of the inputs has different account than output
|
||||
(
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
[
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
|
||||
[44 | HARDENED, 1815 | HARDENED, 2 | HARDENED, 0, 0],
|
||||
],
|
||||
),
|
||||
# path is not complete
|
||||
[1852 | HARDENED, 1815 | HARDENED],
|
||||
# path is not complete
|
||||
[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED],
|
||||
# staking output path
|
||||
(
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0,],
|
||||
[[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0]],
|
||||
),
|
||||
# output address too large
|
||||
(
|
||||
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 1000001],
|
||||
[[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0]],
|
||||
),
|
||||
[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0,],
|
||||
# max safe account number exceeded
|
||||
(
|
||||
[1852 | HARDENED, 1815 | HARDENED, 101 | HARDENED, 0, 0],
|
||||
[
|
||||
[1852 | HARDENED, 1815 | HARDENED, 101 | HARDENED, 0, 0]
|
||||
],
|
||||
),
|
||||
[1852 | HARDENED, 1815 | HARDENED, 101 | HARDENED, 0, 0],
|
||||
# output address too large
|
||||
[1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 1000001],
|
||||
]
|
||||
|
||||
for output_path, input_paths in outputs_to_hide:
|
||||
inputs = [
|
||||
CardanoTxInputType(address_n=input_path, prev_hash=b"", prev_index=0) for input_path in input_paths
|
||||
]
|
||||
self.assertTrue(_should_hide_output(output_path, inputs))
|
||||
for output_path in outputs_to_hide:
|
||||
self.assertTrue(_should_hide_output(output_path))
|
||||
|
||||
for output_path, input_paths in outputs_to_show:
|
||||
inputs = [
|
||||
CardanoTxInputType(address_n=input_path, prev_hash=b"", prev_index=0) for input_path in input_paths
|
||||
]
|
||||
self.assertFalse(_should_hide_output(output_path, inputs))
|
||||
for output_path in outputs_to_show:
|
||||
self.assertFalse(_should_hide_output(output_path))
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@ -34,6 +34,7 @@ pytestmark = [
|
||||
"cardano/sign_tx.slip39.json",
|
||||
)
|
||||
def test_cardano_sign_tx(client, parameters, result):
|
||||
signing_mode = cardano.SIGNING_MODE_IDS[parameters["signing_mode"]]
|
||||
inputs = [cardano.parse_input(i) for i in parameters["inputs"]]
|
||||
outputs = [cardano.parse_output(o) for o in parameters["outputs"]]
|
||||
certificates = [cardano.parse_certificate(c) for c in parameters["certificates"]]
|
||||
@ -50,6 +51,7 @@ def test_cardano_sign_tx(client, parameters, result):
|
||||
with client:
|
||||
response = cardano.sign_tx(
|
||||
client=client,
|
||||
signing_mode=signing_mode,
|
||||
inputs=inputs,
|
||||
outputs=outputs,
|
||||
fee=parameters["fee"],
|
||||
@ -61,14 +63,14 @@ def test_cardano_sign_tx(client, parameters, result):
|
||||
network_id=parameters["network_id"],
|
||||
auxiliary_data=auxiliary_data,
|
||||
)
|
||||
assert response.tx_hash.hex() == result["tx_hash"]
|
||||
assert response.serialized_tx.hex() == result["serialized_tx"]
|
||||
assert response == _transform_expected_result(result)
|
||||
|
||||
|
||||
@parametrize_using_common_fixtures(
|
||||
"cardano/sign_tx.failed.json", "cardano/sign_tx_stake_pool_registration.failed.json"
|
||||
)
|
||||
def test_cardano_sign_tx_failed(client, parameters, result):
|
||||
signing_mode = cardano.SIGNING_MODE_IDS[parameters["signing_mode"]]
|
||||
inputs = [cardano.parse_input(i) for i in parameters["inputs"]]
|
||||
outputs = [cardano.parse_output(o) for o in parameters["outputs"]]
|
||||
certificates = [cardano.parse_certificate(c) for c in parameters["certificates"]]
|
||||
@ -79,6 +81,7 @@ def test_cardano_sign_tx_failed(client, parameters, result):
|
||||
with pytest.raises(TrezorFailure, match=result["error_message"]):
|
||||
cardano.sign_tx(
|
||||
client=client,
|
||||
signing_mode=signing_mode,
|
||||
inputs=inputs,
|
||||
outputs=outputs,
|
||||
fee=parameters["fee"],
|
||||
@ -92,41 +95,31 @@ def test_cardano_sign_tx_failed(client, parameters, result):
|
||||
)
|
||||
|
||||
|
||||
@parametrize_using_common_fixtures("cardano/sign_tx.chunked.json")
|
||||
def test_cardano_sign_tx_with_multiple_chunks(client, parameters, result):
|
||||
inputs = [cardano.parse_input(i) for i in parameters["inputs"]]
|
||||
outputs = [cardano.parse_output(o) for o in parameters["outputs"]]
|
||||
certificates = [cardano.parse_certificate(c) for c in parameters["certificates"]]
|
||||
withdrawals = [cardano.parse_withdrawal(w) for w in parameters["withdrawals"]]
|
||||
auxiliary_data = cardano.parse_auxiliary_data(parameters["auxiliary_data"])
|
||||
def _transform_expected_result(result):
|
||||
"""Transform the JSON representation of the expected result into the format which is returned by trezorlib.
|
||||
|
||||
expected_responses = [
|
||||
messages.PassphraseRequest(),
|
||||
messages.ButtonRequest(),
|
||||
messages.ButtonRequest(),
|
||||
]
|
||||
expected_responses += [
|
||||
messages.CardanoSignedTxChunk(signed_tx_chunk=bytes.fromhex(signed_tx_chunk))
|
||||
for signed_tx_chunk in result["signed_tx_chunks"]
|
||||
]
|
||||
expected_responses += [
|
||||
messages.CardanoSignedTx(tx_hash=bytes.fromhex(result["tx_hash"]))
|
||||
]
|
||||
|
||||
with client:
|
||||
client.set_expected_responses(expected_responses)
|
||||
response = cardano.sign_tx(
|
||||
client=client,
|
||||
inputs=inputs,
|
||||
outputs=outputs,
|
||||
fee=parameters["fee"],
|
||||
ttl=parameters.get("ttl"),
|
||||
validity_interval_start=parameters.get("validity_interval_start"),
|
||||
certificates=certificates,
|
||||
withdrawals=withdrawals,
|
||||
protocol_magic=parameters["protocol_magic"],
|
||||
network_id=parameters["network_id"],
|
||||
auxiliary_data=auxiliary_data,
|
||||
)
|
||||
assert response.tx_hash.hex() == result["tx_hash"]
|
||||
assert response.serialized_tx.hex() == result["serialized_tx"]
|
||||
This involves converting the hex strings into real binary values."""
|
||||
transformed_result = {
|
||||
"tx_hash": bytes.fromhex(result["tx_hash"]),
|
||||
"witnesses": [
|
||||
{
|
||||
"type": witness["type"],
|
||||
"pub_key": bytes.fromhex(witness["pub_key"]),
|
||||
"signature": bytes.fromhex(witness["signature"]),
|
||||
"chain_code": bytes.fromhex(witness["chain_code"])
|
||||
if witness["chain_code"]
|
||||
else None,
|
||||
}
|
||||
for witness in result["witnesses"]
|
||||
],
|
||||
}
|
||||
if supplement := result.get("auxiliary_data_supplement"):
|
||||
transformed_result["auxiliary_data_supplement"] = {
|
||||
"type": supplement["type"],
|
||||
"auxiliary_data_hash": bytes.fromhex(supplement["auxiliary_data_hash"]),
|
||||
}
|
||||
if catalyst_signature := supplement.get("catalyst_signature"):
|
||||
transformed_result["auxiliary_data_supplement"][
|
||||
"catalyst_signature"
|
||||
] = bytes.fromhex(catalyst_signature)
|
||||
return transformed_result
|
||||
|
Loading…
Reference in New Issue
Block a user