matejcik
e972839ac7
style(all): fix pylint complaints
...
[no changelog]
2021-10-27 13:13:15 +02:00
Martin Milata
fa3c6140a6
feat(legacy/ethereum): support access lists in EIP-1559 transactions
2021-10-26 17:20:20 +02:00
Martin Milata
076c5b9cbe
feat(legacy/ethereum): support for EIP-1559 transactions
2021-10-26 17:20:20 +02:00
Martin Milata
3882b89be9
fix(core/ethereum): ask before showing paginated data field
2021-10-19 17:13:28 +02:00
Andrew Kozlik
dfd98c5164
feat(tests): Test send to taproot.
2021-10-18 13:36:05 +02:00
Pavol Rusnak
27dcef056f
feat(tests): add tests for Taproot descriptors support
2021-10-18 13:36:05 +02:00
amadejpapez
85ba7c12ba
style(all): use f-strings for formatting
...
[no changelog]
2021-10-13 11:53:17 +02:00
gabrielkerekes
b957dfbddb
chore(cardano): improve get_native_script_hash tests and update ui fixtures
2021-10-11 15:16:24 +02:00
gabrielkerekes
1f33ab420d
feat(cardano): update transaction signing for multisig
2021-10-11 15:16:24 +02:00
gabrielkerekes
21281d7cf4
feat(cardano): add support for script addresses derivation
2021-10-11 15:16:24 +02:00
gabrielkerekes
dd9652cd07
feat(cardano): add get-native-script-hash call
2021-10-11 15:16:24 +02:00
matejcik
f484c42d41
refactor(tests): use common Stellar fixtures in tests
...
All test cases are generated and verified in Stellar Laboratory.
Source XDR is also tested to match the vectors, and it is easy to verify
in Laboratory directly.
2021-09-24 10:30:19 +02:00
matejcik
98f0496b2c
feat(core/stellar): add type checking to Stellar app
2021-09-24 10:30:19 +02:00
Pavol Rusnak
169c472172
refactor(tests): modernize test_msg_getaddress_segwit_native
2021-09-23 16:17:58 +02:00
matejcik
9dd97c77e3
fix(tests): update prevhash test
...
exclude the None value, because prev_hash is now required on protobuf
level
unify the parametrization across tests
2021-09-21 12:43:31 +02:00
grdddj
1a291660e5
chore(tests): improving consistency of ethereum fixtures
2021-09-20 13:04:56 +02:00
grdddj
23ce8a46f3
feat(tests): PIN and protection_levels tests for TT
2021-09-17 11:13:25 +02:00
grdddj
6b3c9d5a6b
chore(tests): using setup_client for setting the passphrase in device tests where applicable
2021-09-17 11:13:25 +02:00
matejcik
ae4dd42d18
refactor(core/ethereum): reorganize sanity checks, disallow chain_id 0
2021-09-10 15:09:03 +02:00
matejcik
30b08d949b
feat(common): add default values to EthereumSignTx fields
...
so that we can avoid Optional types for fields
2021-09-10 15:09:03 +02:00
matejcik
639406b01f
feat(all): make chain_id mandatory
2021-09-10 15:09:03 +02:00
grdddj
6f1005b155
chore(tests): vectorizing and creating JSON fixtures for ethereum device tests
2021-09-02 10:28:26 +02:00
matejcik
7aed8d535d
feat(all): re-enable Firo ( fixes #1767 )
2021-08-23 11:43:57 +02:00
gabrielkerekes
500d29f43b
chore(cardano): format test fixture files
2021-08-20 11:50:13 +02:00
gabrielkerekes
28f0f60295
feat(cardano): update tests for streamed tx signing
2021-08-20 11:50:13 +02:00
matejcik
d66cca4069
chore(tests): remove Lisk
2021-08-19 10:25:41 +02:00
Frederik Bolding
38fa9197ca
feat(core,python): support for Ethereum EIP1559 transactions
...
Initial EIP1559 implementation
Fix a few small issues
Progress on Python lib implementation and firmware
Fix RLP length
Start fixing tests
Fix legacy transactions
Simplify API and logic
Add EIP1559 tests
Fix access list formatting
Fix UI visiblity issue
Fix commented out code
fix: correct linting issues
Fix access_list protobuf formatting
Remove unneeded code
Remove dead code
Check tx_type bounds for EIP 2718
Reduce code duplication
Prefer eip2718_type over re-using tx_type
Add more tests
Simplify format_access_list
Simplify sign_tx slightly
Change Access List format and add logic to encode it
Fix a bunch of small PR comments
Fix a linting issue
Move tests out of class and regenerate
Remove copy-pasted comments
Add access list to CLI
Simplify _parse_access_list_item
Fix small mistakes following rebase
Fix linting
Refactor to use a separate message for EIP 1559 tx
Simplify changed legacy code
Fix a few small PR comments
Fix linting
fix(legacy): recognize SignTxEIP1559 on legacy build
Fix PR comments
2021-08-10 11:00:29 +02:00
Martin Milata
b5710b820a
docs(core): replace Purpose48 with BIP-48
...
https://github.com/bitcoin/bips/blob/master/bip-0048.mediawiki
2021-08-06 12:50:42 +02:00
matejcik
b3312d1ef7
fix(tests): set_filter must be used in with-block
...
This makes sure filters are properly cleared when the with-block exits
2021-08-04 10:58:59 +02:00
matejcik
45d377f5b8
chore(tests): drop unused debug pieces
2021-08-04 10:58:59 +02:00
matejcik
2b3c75c4de
fix(core): properly respond to USB events while on a paginated screen
2021-07-20 12:59:26 +02:00
Andrew Kozlik
24bb401638
fix(legacy,core): Fix operation source account encoding in Stellar.
2021-07-13 17:24:16 +02:00
matejcik
46e0530764
fix(tests): auto-swipe by using only ButtonRequest.pages
...
(cherry picked from commit f8bb90366a
)
2021-07-12 00:39:58 +02:00
Andrew Kozlik
e3faece811
fix(tests): Fix device tests after having disabled testnet for BIP-45 paths.
2021-06-30 18:25:58 +02:00
Andrew Kozlik
9b0e980c44
fix(legacy): Don't allow unknown paths in GetAddress.
2021-06-30 18:25:58 +02:00
Andrew Kozlik
a6390e4b82
fix(legacy): Allow known non-standard paths in GetAddress and SignTx.
2021-06-30 18:25:58 +02:00
Martin Milata
178b575465
refactor(core): convert apps.nem to layouts
2021-06-23 11:51:18 +02:00
Martin Milata
dd3b689ded
refactor(core): convert apps.eos to layouts
2021-06-23 11:51:18 +02:00
Martin Milata
3ffbae5d17
refactor(core): convert apps.binance to layouts
2021-06-23 11:51:18 +02:00
Martin Milata
ddac852acf
refactor(core): convert apps.cardano to layouts
2021-06-23 11:51:18 +02:00
Martin Milata
d33c61bbe7
test(core): enable ui tests for cardano get_address
2021-06-23 11:51:18 +02:00
Martin Milata
12478b1716
refactor(core): convert apps.stellar to layouts
2021-06-23 11:51:18 +02:00
Martin Milata
16094df0c5
refactor(core): convert most of apps.monero to layouts
...
Progress popups are not ported yet as they're unlike anything else.
Introduces paginate_paragraphs.
2021-06-23 11:51:18 +02:00
matejcik
7cdde940af
chore(tests): adapt device tests to paging information ButtonRequests
2021-06-22 11:25:12 +02:00
Martin Milata
fddac0434b
test: add device tests for non-standard paths
2021-06-17 13:53:35 +02:00
Andrew Kozlik
e15406f712
test: Add device test for signing an empty message in Decred which uses the BLAKE hash function.
2021-06-11 20:22:42 +02:00
matejcik
a58823cc0c
refactor(python): rework trezorlib protobuf codec
...
API-compatibility with the original one is retained.
Now that we don't need to keep code parity with core, we could do some
changes that make life easier.
All generated classes are now in one file. This makes github diffs more
readable, at the cost of somewhat complicating inspecting individual
classes; however, that is something we shouldn't be doing anyway.
Enums are now implemented as enum.IntEnum.
The original class-level FIELDS member was restored.
Each field is now defined via protobuf.Field, which is easier to work
with in the codec, AND we're not stuffing defaults and flags into the
same field.
2021-06-08 09:55:19 +02:00
matejcik
729414e606
fix(core): exclude get/set U2F counter from BITCOIN_ONLY
2021-06-08 09:55:19 +02:00
Jan Pochyla
e5e3ad21b2
fix(tests): Adjust the expected error message
2021-06-08 09:55:19 +02:00
Andrew Kozlik
7f2f32ff8a
test(device): Test safety checks on T1.
2021-05-24 17:47:43 +02:00
matejcik
96fd347ca8
fix(core): keep value of experimental_features cached across workflow restarts
2021-05-06 13:14:21 +02:00
matejcik
e5a481ded5
chore(tests): fix deprecation warnings
2021-05-06 13:14:21 +02:00
gabrielkerekes
a3d0016a2f
refactor(trezorlib/cardano): rename create_* functions
...
To avoid ambiguity between creating messages from parameters and parsing them from JSON.
2021-04-23 11:09:29 +02:00
gabrielkerekes
2313293477
feat(core/cardano): add support for catalyst voting registration
2021-04-23 11:09:29 +02:00
Martin Milata
6668921a4f
refactor(core): convert apps.common.request_pin to layouts
2021-03-30 22:34:01 +02:00
Martin Milata
ffe6d65f72
refactor(core): convert parts of apps.management to layouts
2021-03-30 22:34:01 +02:00
Rafael Korbas
a9b8b0e119
feat(core/cardano): chunked serialization of signed transaction
2021-03-26 11:15:19 +01:00
Andrew Kozlik
602761694f
test: Use long PIN values in device tests.
2021-03-25 14:24:41 +01:00
Andrew Kozlik
7436fd06b9
test: Add device test for replacement transaction with OP_RETURN output.
2021-03-24 22:06:41 +01:00
Andrew Kozlik
28918f46ec
test: Add device test for decreasing output amount in RBF.
2021-03-17 15:15:50 +01:00
JoeGruff
e3ea32a986
multi: Add decred staking.
...
Add two new input and four output script types.
Decred ticket purchases consist of a stake submission, op returns, and
change addresses. Although change addresses are allowed by consensus,
they are no longer used in practice and so have been given the
restrictions of a null pubkey and no value. Stake scripts are almost
identical to p2pkh or p2sh except for an extra opcode in front. Inputs
are currently only used in the form of one input three outputs with the
first output, or stake submission, paying to a public key hash, or with
two inputs and five outputs with the stake submission paying to a
multisig script hash. The op returns are directed to the user in the
case of one and the voting service provider and user in the case of two.
One of the sstx commitment for a ticket must pay back to the trezor
wallet. This is checked and an error is thrown if we don't find the
expected public key hash.
Because this adds the ability to create new types of outputs once the
ticket votes, two new input script types are also needed. A successful
vote will lead to a stake generation script that must be spent, and an
unsuccessful vote will lead to a revocation script that must be spent.
If we allowed stake change scripts to have a valid pubkey, that too
would require another op code, but we disallow those for output.
2021-03-17 12:16:08 +01:00
Roman Zeyde
7ce4e13bcf
feat(core): add public_key to ECDHSessionKey
2021-03-08 15:59:00 +01:00
Martin Milata
854a256b5a
test: wait longer for autolock
...
To reduce test failure probability.
2021-02-23 14:31:04 +01:00
Andrew Kozlik
8828fa76d3
test: Ensure that GetAddress and GetOwnershipId fail for multisig if user's public key is not included.
...
(cherry picked from commit e9c227f623
)
2021-02-11 10:26:44 +01:00
gabrielkerekes
d4dcd7bff9
fix(core/cardano): allow staking accounts beyond 100'
2021-02-11 09:55:23 +01:00
matejcik
d475248ef1
tests: use modified protobuf classes correctly
2021-02-10 10:56:52 +01:00
Pavol Rusnak
48d1a7a880
fix(python): append checksum to descriptors ( #1445 )
2021-02-05 17:46:02 +01:00
matejcik
a1cd0b0949
fix(tests): update shamir_mnemonic usage
2021-02-05 10:44:09 +01:00
matejcik
cdf55d2fac
tests: get rid of skip_ui ( fixes #1409 )
2021-02-05 10:44:09 +01:00
Rafael Korbas
e4c406822c
Add multiasset sending and min validity to Cardano transactions
2021-01-27 18:26:40 +01:00
Andrew Kozlik
79fad70b05
fix: Improve wording when showing multisig XPUBS.
2021-01-26 15:09:37 +01:00
Pavol Rusnak
be2ca4772c
tests: add device tests for SignTx with amount_unit
2021-01-22 14:07:36 +01:00
Pavol Rusnak
2d4b91b52a
tests: adapt test_msg_getaddress_show to test GetAddress.ignore_xpub_magic
2021-01-21 23:46:29 +01:00
matejcik
fc4e15fe77
feat(core): introduce and enforce limit on label length ( fixes #1399 )
2021-01-12 11:22:58 +01:00
matejcik
6fbf93cab8
chore(tests): update UI fixtures as needed
2021-01-11 16:47:59 +01:00
matejcik
fd502f122f
feat(core): implement pagination for sign/verify
2021-01-11 16:47:59 +01:00
Pavol Rusnak
7b9f3c0462
feat(tests): add device tests for btc.get_descriptor
2021-01-08 14:17:09 +01:00
Pavol Rusnak
5e58835d18
feat(tests): test GetPublicKey.ignore_xpub_magic behaviour
2021-01-08 14:17:09 +01:00
Andrew Kozlik
3be0138aae
test: Add device test for replacement transaction with invalid original signature.
2020-12-17 16:33:33 +01:00
Andrew Kozlik
9ab4efdbad
test: Enable and tweak RBF device tests for T1.
2020-12-17 16:33:33 +01:00
Martin Milata
8fd12f4373
fix(tests): run test_softlock_instability on emulator only
2020-12-01 12:35:11 +01:00
Tomas Susanka
bd0b91a229
fix(tests): fix extra ETH unknown token dialog for T1
2020-11-20 18:55:35 +01:00
matejcik
f83752a714
fix(tests): remove dropped EOSClassic test case
2020-11-20 18:55:35 +01:00
matejcik
4628c774aa
feat(core): re-allow unknown Ethereum networks, using Ethereum or Testnet paths ( fixes #1335 )
2020-11-20 18:55:35 +01:00
matejcik
7abe70e484
feat(core): improve ethereum tokens ui ( fixes #800 )
2020-11-20 18:55:35 +01:00
Rafael Korbas
b261f789f3
Add support for stakepool registration to Cardano
2020-11-20 15:58:50 +01:00
Andrew Kozlik
65a9636bb5
test: Add device test for RBF finalization.
2020-11-20 13:52:48 +01:00
matejcik
37d3bf56fa
fix(core): make sure run-time settings are reset after wipe ( fixes #1322 )
2020-11-05 15:33:38 +01:00
matejcik
f10084117b
feat(core/bitcoin): do not show path warning when GetAddress is called silently ( fixes #1206 )
2020-11-05 14:30:11 +01:00
matejcik
f3b6de399a
fix(tests): fix illegal paths in device tests
2020-11-05 14:30:11 +01:00
Andrew Kozlik
70975008cd
chore (core): In apps.bitcoin skip confirmation of fee in PayJoin if the user is not increasing their contribution.
2020-10-23 15:07:15 +02:00
Andrew Kozlik
2a19d70e98
test: Add device tests for replacement transaction flow.
2020-10-23 15:07:15 +02:00
Martin Milata
830592f2d9
feat(core): add experimental_features setting
...
The setting is off by default. When it is enabled protobuf messages
marked UNSTABLE are rejected after decoding.
2020-10-16 13:53:31 +02:00
Martin Milata
542f32d3b1
feat(core): add auto_lock_delay and display_rotation to Features
2020-10-02 11:06:16 +02:00
matejcik
e4785d47e0
style: apply black 20.8b1
2020-09-29 11:30:40 +02:00
matejcik
08d896f2f9
chore(tests): update to kwargs usage and new btc.sign_tx API
2020-09-23 16:00:10 +02:00
Martin Milata
cff4955f93
core: implement SafetyChecks.PromptTemporarily
...
Also reword safety checks confirmation dialogs.
2020-09-18 09:02:40 +02:00
Martin Milata
9d2ad96ad4
core: add SafetyCheckLevel to Features
2020-09-18 09:02:40 +02:00
Andrew Kozlik
b00c4209ed
tests: Use correct commitment data in authorize_coinjoin tests.
2020-09-08 19:36:10 +02:00
Andrew Kozlik
4fc4152741
tests: Fix device tests for streamimg prev_tx after confirmation.
2020-09-04 14:36:39 +02:00
Tomas Susanka
ebc99435ab
Revert "core: remove ownership messages from the public api for now"
...
This reverts commit 0d5f00668f
.
2020-09-03 14:56:27 +02:00
Tomas Susanka
b99b8b3df3
Merge remote-tracking branch 'origin/release/2020-09'
2020-09-03 13:17:23 +02:00
Tomas Susanka
ba36cef369
tests: move fixtures to common directory, start with Cardano
2020-09-01 16:14:41 +02:00
Tomas Susanka
0d5f00668f
core: remove ownership messages from the public api for now
2020-09-01 15:56:57 +02:00
matejcik
e0583dd5cb
all: use a specific error code for "invalid session"
2020-08-28 15:37:06 +02:00
matejcik
e0ec5aa1e7
tests: clear session before each testcase
2020-08-28 15:37:06 +02:00
matejcik
46eb223b2a
tests: use new trezorlib locking/sessioning API where appropriate
2020-08-28 15:37:06 +02:00
matejcik
a08c34a624
tests: add tests for end_session
2020-08-28 15:37:06 +02:00
Andrew Kozlik
fb1f1acad6
tests: Add device test for nLockTime in Bitcoin.
2020-08-21 21:30:15 +02:00
Andrew Kozlik
ae71735e62
legacy/signing: Ask user to confirm custom nLockTime.
2020-08-21 21:30:15 +02:00
matejcik
af5e301a7c
tests: update device tests with added ButtonRequests where appropriate
2020-08-21 21:30:15 +02:00
Martin Milata
1b982659c4
core: fix boot loop after uploading invalid homescreen ( #1205 )
2020-08-21 12:00:42 +02:00
Pavol Rusnak
68e119c2c6
tests: add tests for invalid paths
2020-08-21 11:49:03 +02:00
Martin Milata
927ee0812b
core: add hard limit for transaction fees
...
The hard limit is set to 10*fee_warning_threshold. The limit is not
enforced when `safety_checks` is set to "Prompt".
2020-08-17 16:12:33 +02:00
Martin Milata
75fa9dee77
test_msg_signtx: proto -> messages
2020-08-17 16:12:33 +02:00
matejcik
5385617eda
core: increase address length limit to accomodate CRW ( fixes #1139 )
2020-08-07 12:45:43 +02:00
matejcik
a94c0d074d
tests: use improved API in authorize_coinjoin test
2020-08-05 16:45:56 +02:00
matejcik
e585d35f34
python: clarify session and feature management API
...
init_device() should be used to initialize a session. Reuses existing
session if available.
end_session() explicitly closes any existing session and requests a new
one
lock() enables soft-lock
clear_session() is the equivalent of lock() + end_session()
A new function ensure_unlocked() can be used to open a session and
prompt for PIN and passphrase before further operations.
2020-08-05 16:45:56 +02:00
matejcik
d776cc931b
tests: fix test_msg_webauthn on-device
...
by not asking for a full-capacity list of credentials, which will
usually not fit in an unfragmented chunk of memory
2020-08-05 13:47:35 +02:00
gabrielkerekes
8d39ba8314
Add test case for multiple inputs and regenerate UI fixtures
2020-08-04 20:35:13 +02:00
Andrew Kozlik
ad3f39d829
tests: Add device test for multiple CoinJoin authorizations in different sessions.
2020-08-04 17:32:44 +02:00
Andrew Kozlik
77b931e217
tests: Add device test for CancelAuthorization message.
2020-08-04 17:32:44 +02:00
Andrew Kozlik
3cbfb98f38
tests: Add device test for a CoinJoin transaction which does not give the user's outputs a gain in anonymity.
2020-08-04 17:32:44 +02:00
Andrew Kozlik
07d9b780a6
core/bitcoin: Change CoinJoin round ID length to 32 bytes and remove rate limiting.
2020-08-04 17:32:44 +02:00
Andrew Kozlik
4fd229b500
tests: Add device tests for AuthorizeCoinJoin and CoinJoin SignTx.
2020-08-04 17:32:44 +02:00
gabrielkerekes
12132ea64b
Fix rebase and regenerate ui tests
2020-07-30 17:17:03 +02:00
gabrielkerekes
7a1e773b49
Validate transaction metadata
2020-07-30 17:17:03 +02:00
gabrielkerekes
f2ee450410
Include metadata in transaction signing
2020-07-30 17:17:03 +02:00
gabrielkerekes
a729ef1c26
Update tests
...
Add certificates, withdrawals and metadata hash
2020-07-30 17:17:03 +02:00
Martin Milata
10387e1869
core: drop zcash v3 tx signing support
2020-07-30 15:14:18 +02:00
gabrielkerekes
b5f3511c1c
Add support for script addresses in tx outputs
2020-07-30 14:43:32 +02:00
matejcik
741fca0156
tests: watch_layout must be explicit ( fixes #1142 )
2020-07-29 11:50:47 +02:00
Gabriel Kerekeš
d2c1624602
Cardano shelley update 2/3 ( #1112 )
2020-07-27 13:11:23 +02:00
gabrielkerekes
e1615e60ec
Update Cardano to support Shelley era 1/3
...
Update protobuf
- Previous transactions don't need to be sent anymore, because fee is
included in the transaction now. Thus transactions_count can be
removed from CardanoSignTx message and the CardanoTxAck and
CardanoTxRequest messages can be removed altogether.
- CardanoTxInputType.type is unused so remove it
Add NULL (None type) serialisation to CBOR
- Transaction metada must either have a valid structure or CBOR NULL
must be used (if metadata is empty) - it can't be simply left out.
Add protocol_magics file
- Just to have a nicer way of representing protocol magics
Update transaction signing
- Previous transactions no longer need to be requested
- Output building is simplified, since fee doesn't need to be calculated
- Remove transaction class since it is no longer needed (only functions
remained)
- Reorder functions so it reads top to bottom
Add protocol magic to byron address on testnet
- This has always been a part of the spec, but it hasn't been
implemented before, because it wasn't really needed.
Update trezorlib
Update tests
- Transaction messages are no longer required
- Expected values are different since tx format changed
- Common values in test cases have been extracted
Remove unused file
- Progress was used when receiving previous transactions
Add CRC check to output address validation
2020-07-27 13:04:49 +02:00
matejcik
fdcb64ac24
all: rename protobuf unsafe_prompts
to safety_checks
2020-07-24 16:37:58 +02:00
matejcik
fd8cb0e061
core/keychain: differentiate error message for ed25519 derivation
2020-07-24 16:37:58 +02:00
matejcik
e3bb39128d
tests: add test for unsafe prompts
2020-07-24 16:37:58 +02:00
Martin Milata
fd117a0c9f
core: raise error on auto-lock value out of range
2020-07-22 21:38:42 +02:00
Andrew Kozlik
c7bc945d95
tests: Test transaction with multiple change-outputs.
2020-07-09 15:51:23 +02:00
Pavol Rusnak
d720fa3f83
tests: fix flake errors
2020-07-03 17:33:59 +02:00
Andrew Kozlik
39c0ed2ff0
tests/sign_tx: Add device tests for transactions with external inputs in bgold, bcash and zcash.
2020-07-03 11:17:19 +02:00
Andrew Kozlik
866dc72de2
tests: Add device tests for generation of proofs of ownership.
2020-07-03 11:17:19 +02:00
Andrew Kozlik
534bce3f86
tests/sign_tx: Add device tests for transactions with external inputs.
2020-07-03 11:17:19 +02:00
matejcik
e6e3043096
all: implement support for pre-overwinter prevtx ( fixes #1030 )
2020-06-30 15:19:31 +02:00
matejcik
f09dcc412e
tests/zcash: enable "version_group_id_missing" test
2020-06-30 15:19:31 +02:00
Tomas Susanka
e534ae3ad7
legacy, core: rename Features.pin_cached to unlocked and unify
2020-06-19 21:26:36 +02:00
Tomas Susanka
56fe5adcfc
Merge branch 'release/2020-06'
2020-06-10 06:51:18 +00:00
matejcik
4bc865794f
core: only unlock storage if it is locked (solves determinism issue in tests)
2020-06-04 16:18:46 +02:00
matejcik
0799595b5b
tests: update UI test fixtures
2020-06-04 16:18:46 +02:00
matejcik
70f67883c5
core: fix artifacts in click-based UI tests
2020-06-04 16:18:46 +02:00