1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-27 08:38:07 +00:00

feat(cardano): update tests for streamed tx signing

This commit is contained in:
gabrielkerekes 2021-06-30 14:19:06 +02:00 committed by matejcik
parent b0c8590f00
commit 28f0f60295
8 changed files with 1017 additions and 1023 deletions

File diff suppressed because one or more lines are too long

View File

@ -23,10 +23,11 @@
], ],
"outputs": [ "outputs": [
{ {
"address": "jsK75PTH2esX8k4Wvxenyz83LJJWToBbVmGrWUer2CHFHanLseh7r3sW5X5q", "address": "jsK75PTH2esX8k4Wvxenyz83LJJWToBbVmGrWUer2CHFHanLseh7r3sW5X5q",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid address" "error_message": "Invalid address"
@ -54,7 +55,8 @@
"address": "5dnY6xgRcNUSLGa4gfqef2jGAMHb7koQs9EXErXLNC1LiMPUnhn8joXhvEJpWQtN3F4ysATcBvCn5tABgL3e4hPWapPHmcK5GJMSEaET5JafgAGwSrznzL1Mqa", "address": "5dnY6xgRcNUSLGa4gfqef2jGAMHb7koQs9EXErXLNC1LiMPUnhn8joXhvEJpWQtN3F4ysATcBvCn5tABgL3e4hPWapPHmcK5GJMSEaET5JafgAGwSrznzL1Mqa",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid address" "error_message": "Invalid address"
@ -82,7 +84,8 @@
"address": "Ae2tdPwUPEZ5YUb8sM3eS8JqKgrRLzhiu71crfuH2MFtqaYr5ACNRZR3Mbm", "address": "Ae2tdPwUPEZ5YUb8sM3eS8JqKgrRLzhiu71crfuH2MFtqaYr5ACNRZR3Mbm",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid address" "error_message": "Invalid address"
@ -100,17 +103,18 @@
"auxiliary_data": null, "auxiliary_data": null,
"inputs": [ "inputs": [
{ {
"path": "m/44'/1815'/0'/0/1", "path": "m/44'/1815'/0'/0/1",
"prev_hash": "1af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc", "prev_hash": "1af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc",
"prev_index": 0 "prev_index": 0
} }
], ],
"outputs": [ "outputs": [
{ {
"address": "addr1q89s8py7y68e3x66sscs0wkhlg5ssfrfs65084jry45scvehcr", "address": "addr1q89s8py7y68e3x66sscs0wkhlg5ssfrfs65084jry45scvehcr",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid address" "error_message": "Invalid address"
@ -128,17 +132,18 @@
"auxiliary_data": null, "auxiliary_data": null,
"inputs": [ "inputs": [
{ {
"path": "m/1852'/1815'/0'/0/0", "path": "m/1852'/1815'/0'/0/0",
"prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7", "prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7",
"prev_index": 0 "prev_index": 0
} }
], ],
"outputs": [ "outputs": [
{ {
"address": "addr1q89s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqj922xhxkn6twlq2wn4q50q352annk3903tj00h45mgfm5z3vcwsfrvkr5zglq4rxu", "address": "addr1q89s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqj922xhxkn6twlq2wn4q50q352annk3903tj00h45mgfm5z3vcwsfrvkr5zglq4rxu",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid address" "error_message": "Invalid address"
@ -156,9 +161,9 @@
"auxiliary_data": null, "auxiliary_data": null,
"inputs": [ "inputs": [
{ {
"path": "m/1852'/1815'/0'/0/0", "path": "m/1852'/1815'/0'/0/0",
"prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7", "prev_hash": "3b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b7",
"prev_index": 0 "prev_index": 0
} }
], ],
"outputs": [ "outputs": [
@ -166,7 +171,8 @@
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2", "address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Fee is out of range" "error_message": "Fee is out of range"
@ -199,7 +205,8 @@
"path": "m/44'/1815'/0'/0/1", "path": "m/44'/1815'/0'/0/1",
"amount": "1000000" "amount": "1000000"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Total transaction amount is out of range!" "error_message": "Total transaction amount is out of range!"
@ -227,7 +234,8 @@
"address": "2657WMsDfac7BteXkJq5Jzdog4h47fPbkwUM49isuWbYAr2cFRHa3rURP236h9PBe", "address": "2657WMsDfac7BteXkJq5Jzdog4h47fPbkwUM49isuWbYAr2cFRHa3rURP236h9PBe",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Output address network mismatch" "error_message": "Output address network mismatch"
@ -255,7 +263,8 @@
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2", "address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Output address network mismatch" "error_message": "Output address network mismatch"
@ -283,7 +292,8 @@
"address": "addr_test1vr9s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqtmut0e", "address": "addr_test1vr9s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqtmut0e",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid address" "error_message": "Invalid address"
@ -311,7 +321,8 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid address" "error_message": "Invalid address"
@ -339,7 +350,8 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid network id/protocol magic combination!" "error_message": "Invalid network id/protocol magic combination!"
@ -367,7 +379,8 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid network id/protocol magic combination!" "error_message": "Invalid network id/protocol magic combination!"
@ -395,7 +408,8 @@
"address": "addr1590z7zqwhya6mpk5q929ur897g3pp9kkgalpreny8y304r2dcrtx0sf3dluyu4erzr3xtmdnzvcyfzekkuteu2xagx0qt7gvvj", "address": "addr1590z7zqwhya6mpk5q929ur897g3pp9kkgalpreny8y304r2dcrtx0sf3dluyu4erzr3xtmdnzvcyfzekkuteu2xagx0qt7gvvj",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid address" "error_message": "Invalid address"
@ -426,7 +440,8 @@
"stakingPath": "m/1852'/1815'/0'/2/0", "stakingPath": "m/1852'/1815'/0'/2/0",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Outputs can not contain both address and address_parameters fields!" "error_message": "Outputs can not contain both address and address_parameters fields!"
@ -440,7 +455,10 @@
"fee": 42, "fee": 42,
"ttl": 10, "ttl": 10,
"certificates": [ "certificates": [
{"type": 0, "path": "m/1852'/1815'/0'/0/0"} {
"type": 0,
"path": "m/1852'/1815'/0'/0/0"
}
], ],
"withdrawals": [], "withdrawals": [],
"auxiliary_data": null, "auxiliary_data": null,
@ -456,7 +474,8 @@
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2", "address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid certificate" "error_message": "Invalid certificate"
@ -490,7 +509,8 @@
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2", "address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid certificate" "error_message": "Invalid certificate"
@ -504,7 +524,12 @@
"fee": 42, "fee": 42,
"ttl": 10, "ttl": 10,
"certificates": [], "certificates": [],
"withdrawals": [{"path": "m/1852'/1815'/0'/0/0", "amount": "1000"}], "withdrawals": [
{
"path": "m/1852'/1815'/0'/0/0",
"amount": "1000"
}
],
"auxiliary_data": null, "auxiliary_data": null,
"inputs": [ "inputs": [
{ {
@ -518,7 +543,8 @@
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2", "address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid withdrawal" "error_message": "Invalid withdrawal"
@ -532,10 +558,12 @@
"fee": 42, "fee": 42,
"ttl": 10, "ttl": 10,
"certificates": [], "certificates": [],
"withdrawals": [{ "withdrawals": [
{
"path": "m/1852'/1815'/0'/2/0", "path": "m/1852'/1815'/0'/2/0",
"amount": "449999999199999999" "amount": "449999999199999999"
}], }
],
"auxiliary_data": null, "auxiliary_data": null,
"inputs": [ "inputs": [
{ {
@ -549,13 +577,13 @@
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2", "address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid withdrawal" "error_message": "Invalid withdrawal"
} }
}, },
{ {
"description": "Duplicate withdrawal", "description": "Duplicate withdrawal",
"parameters": { "parameters": {
@ -587,14 +615,15 @@
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2", "address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Duplicate withdrawals" "error_message": "Duplicate withdrawals"
} }
}, },
{ {
"description": "Auxiliary data blob is incomplete", "description": "Auxiliary data hash has incorrect length",
"parameters": { "parameters": {
"protocol_magic": 764824073, "protocol_magic": 764824073,
"network_id": 1, "network_id": 1,
@ -603,7 +632,7 @@
"certificates": [], "certificates": [],
"withdrawals": [], "withdrawals": [],
"auxiliary_data": { "auxiliary_data": {
"blob": "a200a11864a118c843aa00ff01" "hash": "a200a11864a118c843aa00ff01"
}, },
"inputs": [ "inputs": [
{ {
@ -617,37 +646,8 @@
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2", "address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
"amount": "3003112" "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": [ "signing_mode": "ORDINARY_TRANSACTION"
{
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
"amount": "3003112"
}
]
}, },
"result": { "result": {
"error_message": "Invalid auxiliary data" "error_message": "Invalid auxiliary data"
@ -685,7 +685,8 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid auxiliary data" "error_message": "Invalid auxiliary data"
@ -701,7 +702,7 @@
"certificates": [], "certificates": [],
"withdrawals": [], "withdrawals": [],
"auxiliary_data": { "auxiliary_data": {
"blob": "a200a11864a118c843aa00ff01a119012c590100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", "hash": "ea4c91860dd5ec5449f8f985d227946ff39086b17f10b5afb93d12ee87050b6a",
"catalyst_registration_parameters": { "catalyst_registration_parameters": {
"voting_public_key": "38DA0B509D45BF6C87BD55594B92F97081D3923B8C1334B9B8D0BF13FC1C12D0", "voting_public_key": "38DA0B509D45BF6C87BD55594B92F97081D3923B8C1334B9B8D0BF13FC1C12D0",
"staking_path": "m/1852'/1815'/0'/2/0", "staking_path": "m/1852'/1815'/0'/2/0",
@ -725,7 +726,8 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid auxiliary data" "error_message": "Invalid auxiliary data"
@ -759,7 +761,8 @@
"stakingPath": "m/1852'/1815'/0'/2/0", "stakingPath": "m/1852'/1815'/0'/2/0",
"amount": "7120787" "amount": "7120787"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid change output path" "error_message": "Invalid change output path"
@ -793,7 +796,8 @@
"stakingPath": "m/1852'/1815'/190'/2/0", "stakingPath": "m/1852'/1815'/190'/2/0",
"amount": "7120787" "amount": "7120787"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid change output staking path" "error_message": "Invalid change output staking path"
@ -826,507 +830,13 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid certificate path" "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", "description": "Repeated asset name in multiasset token group",
"parameters": { "parameters": {
@ -1364,7 +874,8 @@
} }
] ]
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid token bundle in output" "error_message": "Invalid token bundle in output"
@ -1412,7 +923,8 @@
} }
] ]
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"error_message": "Invalid token bundle in output" "error_message": "Invalid token bundle in output"

File diff suppressed because it is too large Load Diff

View File

@ -1,9 +1,9 @@
{ {
"setup": { "setup": {
"mnemonic": [ "mnemonic": [
"extra extend academic bishop cricket bundle tofu goat apart victim enlarge program behavior permit course armed jerky faint language modern", "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 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 arcade born dive legal hush gross briefing talent drug much home firefly toxic analysis idea umbrella slice"
], ],
"passphrase": "TREZOR" "passphrase": "TREZOR"
}, },
@ -30,11 +30,19 @@
"address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2", "address": "Ae2tdPwUPEZCanmBz5g2GEwFqKTKpNJcGYPKfDxoNeKZ8bRHr8366kseiK2",
"amount": "3003112" "amount": "3003112"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"tx_hash": "73e09bdebf98a9e0f17f86a2d11e0f14f4f8dae77cdf26ff1678e821f20c8db6", "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", "path": "m/44'/1815'/0'/0/1",
"amount": "1000000" "amount": "1000000"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"tx_hash": "4c43ce4c72f145b145ae7add414722735e250d048f61c4585a5becafcbffa6ae", "tx_hash": "4c43ce4c72f145b145ae7add414722735e250d048f61c4585a5becafcbffa6ae",
"serialized_tx": "83a400818258201af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc00018282582b82d818582183581c9e1c71de652ec8b85fec296f0685ca3988781c94a2e1a5d89d92f45fa0001a0d0c25611a002dd2e882582b82d818582183581c2ea63b3db3a1865f59c11762a5aede800ed8f2dc0605d75df2ed7c9ca0001ae82668161a000f424002182a030aa1028184582024c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c5840594c986290cc5cddf3c242f2d650fcbfd0705949c9990569798c29e42ca7b0d6e92a589be6962dcce9c53c63de973d84c38cf53374b5329e20973a280abec00d58206f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b41a0f6" "witnesses": [
{
"type": 0,
"pub_key": "24c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c",
"signature": "594c986290cc5cddf3c242f2d650fcbfd0705949c9990569798c29e42ca7b0d6e92a589be6962dcce9c53c63de973d84c38cf53374b5329e20973a280abec00d",
"chain_code": "6f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b"
}
]
} }
}, },
{ {
@ -90,19 +106,27 @@
], ],
"outputs": [ "outputs": [
{ {
"address": "2657WMsDfac7BteXkJq5Jzdog4h47fPbkwUM49isuWbYAr2cFRHa3rURP236h9PBe", "address": "2657WMsDfac7BteXkJq5Jzdog4h47fPbkwUM49isuWbYAr2cFRHa3rURP236h9PBe",
"amount": "3003112" "amount": "3003112"
}, },
{ {
"addressType": 8, "addressType": 8,
"path": "m/44'/1815'/0'/0/1", "path": "m/44'/1815'/0'/0/1",
"amount": "1000000" "amount": "1000000"
} }
] ],
"signing_mode": "ORDINARY_TRANSACTION"
}, },
"result": { "result": {
"tx_hash": "93a2c3cfb67ef1e4bae167b0f443c3370664bdb9171bc9cd41bad98e5cc049b2", "tx_hash": "93a2c3cfb67ef1e4bae167b0f443c3370664bdb9171bc9cd41bad98e5cc049b2",
"serialized_tx": "83a400818258201af8fa0b754ff99253d983894e63a2b09cbb56c833ba18c3384210163f63dcfc00018282582f82d818582583581cc817d85b524e3d073795819a25cdbb84cff6aa2bbb3a081980d248cba10242182a001a0fb6fc611a002dd2e882582f82d818582583581c709bfb5d9733cbdd72f520cd2c8b9f8f942da5e6cd0b6994e1803b0aa10242182a001aef14e76d1a000f424002182a030aa1028184582024c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c5840552d1d66972598532fa539faa98cdc7889c8dce00577626a62fb22d0e244d9f49732b6ab65593352a7486123077b7e36308c5048cc8ee6dc465e576f065cb70558206f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b45a10242182af6" "witnesses": [
{
"type": 0,
"pub_key": "24c4fe188a39103db88818bc191fd8571eae7b284ebcbdf2462bde97b058a95c",
"signature": "552d1d66972598532fa539faa98cdc7889c8dce00577626a62fb22d0e244d9f49732b6ab65593352a7486123077b7e36308c5048cc8ee6dc465e576f065cb705",
"chain_code": "6f7a744035f4b3ddb8f861c18446169643cc3ae85e271b4b4f0eda05cf84c65b"
}
]
} }
} }
] ]

View File

@ -47,7 +47,8 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"error_message": "Invalid certificate" "error_message": "Invalid certificate"
@ -99,7 +100,8 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"error_message": "Invalid certificate" "error_message": "Invalid certificate"
@ -148,7 +150,8 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"error_message": "Invalid certificate" "error_message": "Invalid certificate"
@ -197,14 +200,15 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"error_message": "Invalid certificate" "error_message": "Invalid certificate"
} }
}, },
{ {
"description": "Contains other certificates", "description": "Contains multiple pool registration certificates",
"parameters": { "parameters": {
"protocol_magic": 764824073, "protocol_magic": 764824073,
"network_id": 1, "network_id": 1,
@ -232,6 +236,56 @@
"metadata": null "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, "type": 0,
"path": "m/1852'/1815'/0'/2/0" "path": "m/1852'/1815'/0'/2/0"
@ -250,10 +304,11 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"error_message": "Stakepool registration transaction cannot contain other certificates nor withdrawals" "error_message": "Invalid certificate"
} }
}, },
{ {
@ -304,7 +359,8 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"error_message": "Stakepool registration transaction cannot contain other certificates nor withdrawals" "error_message": "Stakepool registration transaction cannot contain other certificates nor withdrawals"
@ -353,10 +409,11 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "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", "address": "addr_test1vr9s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqtmut0e",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"error_message": "ProcessError: Invalid address" "error_message": "ProcessError: Invalid address"
@ -449,7 +507,8 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"error_message": "ProcessError: Invalid address" "error_message": "ProcessError: Invalid address"
@ -531,11 +590,95 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"error_message": "Invalid pool owner staking path" "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"
}
} }
] ]
} }

View File

@ -80,11 +80,19 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"tx_hash": "e3b9a5657bf62609465a930c8359d774c73944973cfc5a104a0f0ed1e1e8db21", "tx_hash": "e3b9a5657bf62609465a930c8359d774c73944973cfc5a104a0f0ed1e1e8db21",
"serialized_tx": "83a500818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182583901eb0baa5e570cffbe2934db29df0b6a3d7c0430ee65d4c3a7ab2fefb91bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff0102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820102581de13a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071182581c122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b4277581c3a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c4907118584001904d244c0a8000150b80d01200000a3852e8a00003473700384001904d2f650b80d01200000a3852e8a00003473700384001904d244c0a80001f683011904d26d7777772e746573742e7465737482026e7777772e74657374322e74657374827568747470733a2f2f7777772e746573742e746573745820914c57c1f12bbf4a82b12d977d4f274674856a11ed4b9b95bd70f5d41c5064a6a10081825820bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e584006305b52f76d2d2da6925c02036a9a28456976009f8c6432513f273110d09ea26db79c696cec322b010e5cbb7d90a6b473b157e65df846a1487062569a5f5a04f6" "witnesses": [
{
"type": 1,
"pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e",
"signature": "06305b52f76d2d2da6925c02036a9a28456976009f8c6432513f273110d09ea26db79c696cec322b010e5cbb7d90a6b473b157e65df846a1487062569a5f5a04",
"chain_code": null
}
]
} }
}, },
{ {
@ -163,11 +171,19 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"tx_hash": "c0d944db15446cf05e8db014685414c928d4d9a3e96aea229234be56eeae34c5", "tx_hash": "c0d944db15446cf05e8db014685414c928d4d9a3e96aea229234be56eeae34c5",
"serialized_tx": "83a500818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182583901eb0baa5e570cffbe2934db29df0b6a3d7c0430ee65d4c3a7ab2fefb91bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff0102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820001581de13a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071182581c122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b4277581c3a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c4907118584001904d244c0a8000150b80d01200000a3852e8a00003473700384001904d2f650b80d01200000a3852e8a00003473700384001904d244c0a80001f683011904d26d7777772e746573742e7465737482026e7777772e74657374322e74657374827568747470733a2f2f7777772e746573742e746573745820914c57c1f12bbf4a82b12d977d4f274674856a11ed4b9b95bd70f5d41c5064a6a10081825820bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e584039e1750c2599cfc3a35bd477e25abb4786cf493d903734b91f71135229a3a6da2d2741e36e255ef1cae6b424324c3595f2050da5715cd573ea5370a91296860ff6" "witnesses": [
{
"type": 1,
"pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e",
"signature": "39e1750c2599cfc3a35bd477e25abb4786cf493d903734b91f71135229a3a6da2d2741e36e255ef1cae6b424324c3595f2050da5715cd573ea5370a91296860f",
"chain_code": null
}
]
} }
}, },
{ {
@ -247,11 +263,19 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"tx_hash": "f3d62758ff2f520e7256e65be9d8165da60c7979a97202c19d625709412411fd", "tx_hash": "f3d62758ff2f520e7256e65be9d8165da60c7979a97202c19d625709412411fd",
"serialized_tx": "83a500818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182583901eb0baa5e570cffbe2934db29df0b6a3d7c0430ee65d4c3a7ab2fefb91bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff0102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820102581de13a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071182581c58e438148441c6409537ebd82bb04924362cce2912f3494693fcb000581c3a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c4907118584001904d244c0a8000150b80d01200000a3852e8a00003473700384001904d2f650b80d01200000a3852e8a00003473700384001904d244c0a80001f683011904d26d7777772e746573742e7465737482026e7777772e74657374322e74657374827568747470733a2f2f7777772e746573742e746573745820914c57c1f12bbf4a82b12d977d4f274674856a11ed4b9b95bd70f5d41c5064a6a10081825820d1a07f06b872c68120def0203d0fc3d582ac4ce3897d5eaf448026960875f76d5840c61890be9a2c964f2b64cbd6a91ac6a56332d28ea773855c86e3cd0d1693ae61e9bc053143d2aba14a721fae77edde70ee736b17a761e7b823d87071a4852205f6" "witnesses": [
{
"type": 1,
"pub_key": "d1a07f06b872c68120def0203d0fc3d582ac4ce3897d5eaf448026960875f76d",
"signature": "c61890be9a2c964f2b64cbd6a91ac6a56332d28ea773855c86e3cd0d1693ae61e9bc053143d2aba14a721fae77edde70ee736b17a761e7b823d87071a4852205",
"chain_code": null
}
]
} }
}, },
{ {
@ -297,11 +321,19 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"tx_hash": "504f9214142996e0b7e315103b25d88a4afa3d01dd5be22376921b52b01483c3", "tx_hash": "504f9214142996e0b7e315103b25d88a4afa3d01dd5be22376921b52b01483c3",
"serialized_tx": "83a500818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182583901eb0baa5e570cffbe2934db29df0b6a3d7c0430ee65d4c3a7ab2fefb91bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff0102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820102581de13a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071181581c122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b427780f6a10081825820bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e5840aa2099208399fcc27c18d7ef0c7e873f9e22f0935b7e912cddd34b33b8cafd541a878dc01c042ce490e4c9bad3c62c2f59acaa009d336c9ff875c5f153d34900f6" "witnesses": [
{
"type": 1,
"pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e",
"signature": "aa2099208399fcc27c18d7ef0c7e873f9e22f0935b7e912cddd34b33b8cafd541a878dc01c042ce490e4c9bad3c62c2f59acaa009d336c9ff875c5f153d34900",
"chain_code": null
}
]
} }
}, },
{ {
@ -347,11 +379,19 @@
"address": "addr_test1vr9s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqtmut0e", "address": "addr_test1vr9s8py7y68e3x66sscs0wkhlg5ssfrfs65084jrlrqcfqqtmut0e",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"tx_hash": "12921b4f8e77f815e0c8ed97c541fbd5ba38a6d3323f4ff1af0cb934b8ac6b39", "tx_hash": "12921b4f8e77f815e0c8ed97c541fbd5ba38a6d3323f4ff1af0cb934b8ac6b39",
"serialized_tx": "83a500818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182581d60cb03849e268f989b5a843107bad7fa2908246986a8f3d643f8c184800102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820102581de03a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071181581c122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b427780f6a10081825820bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e584027cab81902d04b2491d7aa2bf57bd9db59d33c2df1502dae0412d5225c6b0b8f7b057de6a7e7eae25016ed6ea1f6e6239fb36a285216c6ee4a3cb3376287a300f6" "witnesses": [
{
"type": 1,
"pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e",
"signature": "27cab81902d04b2491d7aa2bf57bd9db59d33c2df1502dae0412d5225c6b0b8f7b057de6a7e7eae25016ed6ea1f6e6239fb36a285216c6ee4a3cb3376287a300",
"chain_code": null
}
]
} }
}, },
{ {
@ -418,8 +458,7 @@
], ],
"withdrawals": [], "withdrawals": [],
"auxiliary_data": { "auxiliary_data": {
"type": 0, "hash": "ea4c91860dd5ec5449f8f985d227946ff39086b17f10b5afb93d12ee87050b6a"
"blob": "a200a11864a118c843aa00ff01a119012c590100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
}, },
"inputs": [ "inputs": [
{ {
@ -433,11 +472,19 @@
"address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r", "address": "addr1q84sh2j72ux0l03fxndjnhctdg7hcppsaejafsa84vh7lwgmcs5wgus8qt4atk45lvt4xfxpjtwfhdmvchdf2m3u3hlsd5tq5r",
"amount": "1" "amount": "1"
} }
] ],
"signing_mode": "POOL_REGISTRATION_AS_OWNER"
}, },
"result": { "result": {
"tx_hash": "880fafab19a36407e9af300c2905e2f6bc8a8debd8b625005f56994d242ba460", "tx_hash": "880fafab19a36407e9af300c2905e2f6bc8a8debd8b625005f56994d242ba460",
"serialized_tx": "83a600818258203b40265111d8bb3c3c608d95b3a0bf83461ace32d79336579a1939b3aad1c0b700018182583901eb0baa5e570cffbe2934db29df0b6a3d7c0430ee65d4c3a7ab2fefb91bc428e4720702ebd5dab4fb175324c192dc9bb76cc5da956e3c8dff0102182a030a04818a03581cf61c42cbf7c8c53af3f520508212ad3e72f674f957fe23ff0acb49735820198890ad6c92e80fbdab554dda02da9fb49d001bbd96181f3e07f7a6ab0d06401a1dcd65001a1443fd00d81e820102581de13a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c49071182581c122a946b9ad3d2ddf029d3a828f0468aece76895f15c9efbd69b4277581c3a7f09d3df4cf66a7399c2b05bfa234d5a29560c311fc5db4c4907118584001904d244c0a8000150b80d01200000a3852e8a00003473700384001904d2f650b80d01200000a3852e8a00003473700384001904d244c0a80001f683011904d26d7777772e746573742e7465737482026e7777772e74657374322e74657374827568747470733a2f2f7777772e746573742e746573745820914c57c1f12bbf4a82b12d977d4f274674856a11ed4b9b95bd70f5d41c5064a6075820ea4c91860dd5ec5449f8f985d227946ff39086b17f10b5afb93d12ee87050b6aa10081825820bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e584073dbc58bd6f6bc0d91a2b5852706dde05da7acbfde035481b88b1219518ea8609dc045ea3309b1ffb01830ec64578e80c70db37a1041e72d52649be20ff80009a200a11864a118c843aa00ff01a119012c590100aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" "witnesses": [
{
"type": 1,
"pub_key": "bc65be1b0b9d7531778a1317c2aa6de936963c3f9ac7d5ee9e9eda25e0c97c5e",
"signature": "73dbc58bd6f6bc0d91a2b5852706dde05da7acbfde035481b88b1219518ea8609dc045ea3309b1ffb01830ec64578e80c70db37a1041e72d52649be20ff80009",
"chain_code": null
}
]
} }
} }
] ]

View File

@ -1,6 +1,5 @@
from common import * from common import *
from apps.common.paths import HARDENED from apps.common.paths import HARDENED
from trezor.messages import CardanoTxInputType
if not utils.BITCOIN_ONLY: if not utils.BITCOIN_ONLY:
from apps.cardano.sign_tx import _should_hide_output from apps.cardano.sign_tx import _should_hide_output
@ -10,99 +9,33 @@ if not utils.BITCOIN_ONLY:
class TestCardanoSignTransaction(unittest.TestCase): class TestCardanoSignTransaction(unittest.TestCase):
def test_should_show_outputs(self): def test_should_show_outputs(self):
outputs_to_hide = [ outputs_to_hide = [
# output is from the same address as input # byron path
( [44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0], # shelley path
[[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0]], [1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0],
), # path account is 2
# output is from the same account but from different addresses [1852 | HARDENED, 1815 | HARDENED, 2 | HARDENED, 0, 0],
( # path index is 2
[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0], [1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 2],
[
[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],
],
),
] ]
outputs_to_show = [ outputs_to_show = [
# output is from different account # path is not complete
( [1852 | HARDENED, 1815 | HARDENED],
[44 | HARDENED, 1815 | HARDENED, 2 | HARDENED, 0, 0], # path is not complete
[[44 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 0, 0]], [1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED],
),
# 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],
],
),
# staking output path # staking output path
( [1852 | HARDENED, 1815 | HARDENED, 0 | HARDENED, 2, 0,],
[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]],
),
# max safe account number exceeded # max safe account number exceeded
( [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],
[1852 | HARDENED, 1815 | HARDENED, 101 | HARDENED, 0, 0]
],
),
] ]
for output_path, input_paths in outputs_to_hide: for output_path in outputs_to_hide:
inputs = [ self.assertTrue(_should_hide_output(output_path))
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, input_paths in outputs_to_show: for output_path in outputs_to_show:
inputs = [ self.assertFalse(_should_hide_output(output_path))
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))
if __name__ == "__main__": if __name__ == "__main__":

View File

@ -34,6 +34,7 @@ pytestmark = [
"cardano/sign_tx.slip39.json", "cardano/sign_tx.slip39.json",
) )
def test_cardano_sign_tx(client, parameters, result): 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"]] inputs = [cardano.parse_input(i) for i in parameters["inputs"]]
outputs = [cardano.parse_output(o) for o in parameters["outputs"]] outputs = [cardano.parse_output(o) for o in parameters["outputs"]]
certificates = [cardano.parse_certificate(c) for c in parameters["certificates"]] certificates = [cardano.parse_certificate(c) for c in parameters["certificates"]]
@ -50,6 +51,7 @@ def test_cardano_sign_tx(client, parameters, result):
with client: with client:
response = cardano.sign_tx( response = cardano.sign_tx(
client=client, client=client,
signing_mode=signing_mode,
inputs=inputs, inputs=inputs,
outputs=outputs, outputs=outputs,
fee=parameters["fee"], fee=parameters["fee"],
@ -61,14 +63,14 @@ def test_cardano_sign_tx(client, parameters, result):
network_id=parameters["network_id"], network_id=parameters["network_id"],
auxiliary_data=auxiliary_data, auxiliary_data=auxiliary_data,
) )
assert response.tx_hash.hex() == result["tx_hash"] assert response == _transform_expected_result(result)
assert response.serialized_tx.hex() == result["serialized_tx"]
@parametrize_using_common_fixtures( @parametrize_using_common_fixtures(
"cardano/sign_tx.failed.json", "cardano/sign_tx_stake_pool_registration.failed.json" "cardano/sign_tx.failed.json", "cardano/sign_tx_stake_pool_registration.failed.json"
) )
def test_cardano_sign_tx_failed(client, parameters, result): 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"]] inputs = [cardano.parse_input(i) for i in parameters["inputs"]]
outputs = [cardano.parse_output(o) for o in parameters["outputs"]] outputs = [cardano.parse_output(o) for o in parameters["outputs"]]
certificates = [cardano.parse_certificate(c) for c in parameters["certificates"]] 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"]): with pytest.raises(TrezorFailure, match=result["error_message"]):
cardano.sign_tx( cardano.sign_tx(
client=client, client=client,
signing_mode=signing_mode,
inputs=inputs, inputs=inputs,
outputs=outputs, outputs=outputs,
fee=parameters["fee"], 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 _transform_expected_result(result):
def test_cardano_sign_tx_with_multiple_chunks(client, parameters, result): """Transform the JSON representation of the expected result into the format which is returned by trezorlib.
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"])
expected_responses = [ This involves converting the hex strings into real binary values."""
messages.PassphraseRequest(), transformed_result = {
messages.ButtonRequest(), "tx_hash": bytes.fromhex(result["tx_hash"]),
messages.ButtonRequest(), "witnesses": [
] {
expected_responses += [ "type": witness["type"],
messages.CardanoSignedTxChunk(signed_tx_chunk=bytes.fromhex(signed_tx_chunk)) "pub_key": bytes.fromhex(witness["pub_key"]),
for signed_tx_chunk in result["signed_tx_chunks"] "signature": bytes.fromhex(witness["signature"]),
] "chain_code": bytes.fromhex(witness["chain_code"])
expected_responses += [ if witness["chain_code"]
messages.CardanoSignedTx(tx_hash=bytes.fromhex(result["tx_hash"])) else None,
] }
for witness in result["witnesses"]
with client: ],
client.set_expected_responses(expected_responses) }
response = cardano.sign_tx( if supplement := result.get("auxiliary_data_supplement"):
client=client, transformed_result["auxiliary_data_supplement"] = {
inputs=inputs, "type": supplement["type"],
outputs=outputs, "auxiliary_data_hash": bytes.fromhex(supplement["auxiliary_data_hash"]),
fee=parameters["fee"], }
ttl=parameters.get("ttl"), if catalyst_signature := supplement.get("catalyst_signature"):
validity_interval_start=parameters.get("validity_interval_start"), transformed_result["auxiliary_data_supplement"][
certificates=certificates, "catalyst_signature"
withdrawals=withdrawals, ] = bytes.fromhex(catalyst_signature)
protocol_magic=parameters["protocol_magic"], return transformed_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"]