From 46ca3638b64e74eb2f64f091c88683a4f3c35229 Mon Sep 17 00:00:00 2001 From: Robert Lukotka Date: Tue, 17 Aug 2021 18:17:56 +0200 Subject: [PATCH 01/10] Add FUSD transactions --- app/src/parser.c | 113 +++++++++ app/src/parser_impl.c | 12 + app/src/parser_txdef.h | 2 + app/src/template_hashes.h | 6 + .../manifest.mainnet.json | 41 +++- .../manifest.testnet.json | 44 +++- tests/testvectors/manifestEnvelopeCases.json | 216 ++++++++++++++++++ tests/testvectors/manifestPayloadCases.json | 188 +++++++++++++++ tests/utils/expected_output.cpp | 12 + ...etup-fusd-vault-p-256-sha-3-256-1-snap.png | Bin 0 -> 563 bytes ...tup-fusd-vault-p-256-sha-3-256-10-snap.png | Bin 0 -> 685 bytes ...tup-fusd-vault-p-256-sha-3-256-11-snap.png | Bin 0 -> 443 bytes ...tup-fusd-vault-p-256-sha-3-256-12-snap.png | Bin 0 -> 480 bytes ...etup-fusd-vault-p-256-sha-3-256-2-snap.png | Bin 0 -> 444 bytes ...etup-fusd-vault-p-256-sha-3-256-3-snap.png | Bin 0 -> 1075 bytes ...etup-fusd-vault-p-256-sha-3-256-4-snap.png | Bin 0 -> 1032 bytes ...etup-fusd-vault-p-256-sha-3-256-5-snap.png | Bin 0 -> 412 bytes ...etup-fusd-vault-p-256-sha-3-256-6-snap.png | Bin 0 -> 729 bytes ...etup-fusd-vault-p-256-sha-3-256-7-snap.png | Bin 0 -> 434 bytes ...etup-fusd-vault-p-256-sha-3-256-8-snap.png | Bin 0 -> 527 bytes ...etup-fusd-vault-p-256-sha-3-256-9-snap.png | Bin 0 -> 612 bytes ...2-transfer-fusd-p-256-sha-3-256-1-snap.png | Bin 0 -> 509 bytes ...-transfer-fusd-p-256-sha-3-256-10-snap.png | Bin 0 -> 527 bytes ...-transfer-fusd-p-256-sha-3-256-11-snap.png | Bin 0 -> 612 bytes ...-transfer-fusd-p-256-sha-3-256-12-snap.png | Bin 0 -> 685 bytes ...-transfer-fusd-p-256-sha-3-256-13-snap.png | Bin 0 -> 443 bytes ...-transfer-fusd-p-256-sha-3-256-14-snap.png | Bin 0 -> 480 bytes ...2-transfer-fusd-p-256-sha-3-256-2-snap.png | Bin 0 -> 444 bytes ...2-transfer-fusd-p-256-sha-3-256-3-snap.png | Bin 0 -> 730 bytes ...2-transfer-fusd-p-256-sha-3-256-4-snap.png | Bin 0 -> 681 bytes ...2-transfer-fusd-p-256-sha-3-256-5-snap.png | Bin 0 -> 1075 bytes ...2-transfer-fusd-p-256-sha-3-256-6-snap.png | Bin 0 -> 1032 bytes ...2-transfer-fusd-p-256-sha-3-256-7-snap.png | Bin 0 -> 412 bytes ...2-transfer-fusd-p-256-sha-3-256-8-snap.png | Bin 0 -> 729 bytes ...2-transfer-fusd-p-256-sha-3-256-9-snap.png | Bin 0 -> 434 bytes 35 files changed, 630 insertions(+), 4 deletions(-) create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-1-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-10-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-11-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-12-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-2-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-3-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-4-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-5-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-6-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-7-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-8-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-9-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-1-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-10-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-11-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-12-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-13-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-14-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-2-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-3-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-4-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-5-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-6-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-7-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-8-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-9-snap.png diff --git a/app/src/parser.c b/app/src/parser.c index ee5d7b35..dd65ac98 100644 --- a/app/src/parser.c +++ b/app/src/parser.c @@ -2693,6 +2693,113 @@ parser_error_t parser_getItemUpdateNetworkingAddressSCO(const parser_context_t * return PARSER_DISPLAY_IDX_OUT_OF_RANGE; } +//FUSD.01 +parser_error_t parser_getItemSetupFUSDVault(const parser_context_t *ctx, + uint16_t displayIdx, + char *outKey, uint16_t outKeyLen, + char *outVal, uint16_t outValLen, + uint8_t pageIdx, uint8_t *pageCount) { + *pageCount = 1; + switch (displayIdx) { + case 0: + snprintf(outKey, outKeyLen, "Type"); + snprintf(outVal, outValLen, "Setup FUSD Vault"); + return PARSER_OK; + case 1: + snprintf(outKey, outKeyLen, "ChainID"); + return parser_printChainID(&parser_tx_obj.payer, + outVal, outValLen, pageIdx, pageCount); + case 2: + snprintf(outKey, outKeyLen, "Ref Block"); + return parser_printBlockId(&parser_tx_obj.referenceBlockId, outVal, outValLen, pageIdx, pageCount); + case 3: + snprintf(outKey, outKeyLen, "Gas Limit"); + return parser_printGasLimit(&parser_tx_obj.gasLimit, outVal, outValLen, pageIdx, pageCount); + case 4: + snprintf(outKey, outKeyLen, "Prop Key Addr"); + return parser_printPropKeyAddr(&parser_tx_obj.proposalKeyAddress, outVal, outValLen, pageIdx, pageCount); + case 5: + snprintf(outKey, outKeyLen, "Prop Key Id"); + return parser_printPropKeyId(&parser_tx_obj.proposalKeyId, outVal, outValLen, pageIdx, pageCount); + case 6: + snprintf(outKey, outKeyLen, "Prop Key Seq Num"); + return parser_printPropSeqNum(&parser_tx_obj.proposalKeySequenceNumber, outVal, outValLen, pageIdx, + pageCount); + case 7: + snprintf(outKey, outKeyLen, "Payer"); + return parser_printPayer(&parser_tx_obj.payer, outVal, outValLen, pageIdx, pageCount); + default: + break; + } + displayIdx -= 8; + + if (displayIdx < parser_tx_obj.authorizers.authorizer_count) { + snprintf(outKey, outKeyLen, "Authorizer %d", displayIdx + 1); + return parser_printAuthorizer(&parser_tx_obj.authorizers.authorizer[displayIdx], outVal, outValLen, pageIdx, + pageCount); + } + + return PARSER_DISPLAY_IDX_OUT_OF_RANGE; +} + +//FUSD.02 +parser_error_t parser_getItemTransferFUSD(const parser_context_t *ctx, + uint16_t displayIdx, + char *outKey, uint16_t outKeyLen, + char *outVal, uint16_t outValLen, + uint8_t pageIdx, uint8_t *pageCount) { + *pageCount = 1; + switch (displayIdx) { + case 0: + snprintf(outKey, outKeyLen, "Type"); + snprintf(outVal, outValLen, "Transfer FUSD"); + return PARSER_OK; + case 1: + snprintf(outKey, outKeyLen, "ChainID"); + return parser_printChainID(&parser_tx_obj.payer, + outVal, outValLen, pageIdx, pageCount); + case 2: + snprintf(outKey, outKeyLen, "Amount"); + return parser_printArgument(&parser_tx_obj.arguments, 0, + "UFix64", JSMN_STRING, + outVal, outValLen, pageIdx, pageCount); + case 3: + snprintf(outKey, outKeyLen, "Recipient"); + return parser_printArgumentString(&parser_tx_obj.arguments.argCtx[1], + outVal, outValLen, pageIdx, pageCount); + case 4: + snprintf(outKey, outKeyLen, "Ref Block"); + return parser_printBlockId(&parser_tx_obj.referenceBlockId, outVal, outValLen, pageIdx, pageCount); + case 5: + snprintf(outKey, outKeyLen, "Gas Limit"); + return parser_printGasLimit(&parser_tx_obj.gasLimit, outVal, outValLen, pageIdx, pageCount); + case 6: + snprintf(outKey, outKeyLen, "Prop Key Addr"); + return parser_printPropKeyAddr(&parser_tx_obj.proposalKeyAddress, outVal, outValLen, pageIdx, pageCount); + case 7: + snprintf(outKey, outKeyLen, "Prop Key Id"); + return parser_printPropKeyId(&parser_tx_obj.proposalKeyId, outVal, outValLen, pageIdx, pageCount); + case 8: + snprintf(outKey, outKeyLen, "Prop Key Seq Num"); + return parser_printPropSeqNum(&parser_tx_obj.proposalKeySequenceNumber, outVal, outValLen, pageIdx, + pageCount); + case 9: + snprintf(outKey, outKeyLen, "Payer"); + return parser_printPayer(&parser_tx_obj.payer, outVal, outValLen, pageIdx, pageCount); + default: + break; + } + displayIdx -= 10; + + if (displayIdx < parser_tx_obj.authorizers.authorizer_count) { + snprintf(outKey, outKeyLen, "Authorizer %d", displayIdx + 1); + return parser_printAuthorizer(&parser_tx_obj.authorizers.authorizer[displayIdx], outVal, outValLen, pageIdx, + pageCount); + } + + return PARSER_DISPLAY_IDX_OUT_OF_RANGE; +} + parser_error_t parser_getItem(const parser_context_t *ctx, uint16_t displayIdx, char *outKey, uint16_t outKeyLen, @@ -2830,6 +2937,12 @@ parser_error_t parser_getItem(const parser_context_t *ctx, case SCRIPT_SCO16_UPDATE_NETWORKING_ADDRESS: return parser_getItemUpdateNetworkingAddressSCO(ctx, displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); + case SCRIPT_FUSD01_SETUP_FUSD_VAULT: + return parser_getItemSetupFUSDVault(ctx, displayIdx, outKey, outKeyLen, outVal, + outValLen, pageIdx, pageCount); + case SCRIPT_FUSD02_TRANSFER_FUSD: + return parser_getItemTransferFUSD(ctx, displayIdx, outKey, outKeyLen, outVal, + outValLen, pageIdx, pageCount); } return PARSER_UNEXPECTED_SCRIPT; diff --git a/app/src/parser_impl.c b/app/src/parser_impl.c index dd71feef..f65d586a 100644 --- a/app/src/parser_impl.c +++ b/app/src/parser_impl.c @@ -463,6 +463,12 @@ parser_error_t _matchScriptType(uint8_t scriptHash[32], script_type_e *scriptTyp {SCRIPT_SCO16_UPDATE_NETWORKING_ADDRESS, TEMPLATE_HASH_SCO16_UPDATE_NETWORKING_ADDRESS_TESTNET}, {SCRIPT_SCO16_UPDATE_NETWORKING_ADDRESS, TEMPLATE_HASH_SCO16_UPDATE_NETWORKING_ADDRESS_MAINNET}, + + {SCRIPT_FUSD01_SETUP_FUSD_VAULT, TEMPLATE_HASH_FUSD01_SETUP_FUSD_VAULT_TESTNET}, + {SCRIPT_FUSD01_SETUP_FUSD_VAULT, TEMPLATE_HASH_FUSD01_SETUP_FUSD_VAULT_MAINNET}, + + {SCRIPT_FUSD02_TRANSFER_FUSD, TEMPLATE_HASH_FUSD02_TRANSFER_FUSD_TESTNET}, + {SCRIPT_FUSD02_TRANSFER_FUSD, TEMPLATE_HASH_FUSD02_TRANSFER_FUSD_MAINNET}, // sentinel, do not remove {0, NULL} }; @@ -873,6 +879,12 @@ parser_error_t _getNumItems(const parser_context_t *c, const parser_tx_t *v, uin case SCRIPT_SCO16_UPDATE_NETWORKING_ADDRESS: *numItems = 10 + v->authorizers.authorizer_count; return PARSER_OK; + case SCRIPT_FUSD01_SETUP_FUSD_VAULT: + *numItems = 8 + v->authorizers.authorizer_count; + return PARSER_OK; + case SCRIPT_FUSD02_TRANSFER_FUSD: + *numItems = 10 + v->authorizers.authorizer_count; + return PARSER_OK; case SCRIPT_UNKNOWN: default: return PARSER_UNEXPECTED_SCRIPT; diff --git a/app/src/parser_txdef.h b/app/src/parser_txdef.h index 9c46ef7d..30e1736f 100644 --- a/app/src/parser_txdef.h +++ b/app/src/parser_txdef.h @@ -71,6 +71,8 @@ typedef enum { SCRIPT_SCO14_TRANSFER_DELEGATOR, SCRIPT_SCO15_WITHDRAW_FROM_MACHINE_ACCOUNT, SCRIPT_SCO16_UPDATE_NETWORKING_ADDRESS, + SCRIPT_FUSD01_SETUP_FUSD_VAULT, + SCRIPT_FUSD02_TRANSFER_FUSD } script_type_e; typedef enum { diff --git a/app/src/template_hashes.h b/app/src/template_hashes.h index da8e94b0..ebe83e25 100644 --- a/app/src/template_hashes.h +++ b/app/src/template_hashes.h @@ -131,6 +131,12 @@ extern "C" { #define TEMPLATE_HASH_SCO16_UPDATE_NETWORKING_ADDRESS_TESTNET "60f2cf219d56b19dc7fd223caed42dda9143c87b1b0d2c21a9652e12a3714133" #define TEMPLATE_HASH_SCO16_UPDATE_NETWORKING_ADDRESS_MAINNET "ff067b40ac67020ef864cd14842f62023254da34dd2ded56affa1364305bf1c5" +#define TEMPLATE_HASH_FUSD01_SETUP_FUSD_VAULT_TESTNET "0ffaf77ab320ce4cc9602d39b89c85f094ebcea571ed324537e703bc07b0fdc4" +#define TEMPLATE_HASH_FUSD01_SETUP_FUSD_VAULT_MAINNET "aa7fecdf159e71bd0b029e40b22643fb443161e67796f42bac68e9bab4630e29" + +#define TEMPLATE_HASH_FUSD02_TRANSFER_FUSD_TESTNET "f22ca4b350a79c724f6471d5a6a7a0efa7ba9aeebb7fed2843a3ddd6e42c2e1c" +#define TEMPLATE_HASH_FUSD02_TRANSFER_FUSD_MAINNET "180cef7053a5f0ae66e19e3a96cc3b9eb7da29767fb5d6938239bf1f8e1dc284" + #ifdef __cplusplus } #endif diff --git a/tests/generate-transaction-tests/manifest.mainnet.json b/tests/generate-transaction-tests/manifest.mainnet.json index dcf29220..14c04395 100644 --- a/tests/generate-transaction-tests/manifest.mainnet.json +++ b/tests/generate-transaction-tests/manifest.mainnet.json @@ -1164,6 +1164,45 @@ ], "network": "mainnet", "hash": "ff067b40ac67020ef864cd14842f62023254da34dd2ded56affa1364305bf1c5" + }, + { + "id": "FUSD.01", + "name": "Setup FUSD Vault", + "source": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow\u003c\u0026FUSD.Vault\u003e(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(\u003c-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link\u003c\u0026FUSD.Vault{FungibleToken.Receiver}\u003e(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link\u003c\u0026FUSD.Vault{FungibleToken.Balance}\u003e(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], + "network": "mainnet", + "hash": "aa7fecdf159e71bd0b029e40b22643fb443161e67796f42bac68e9bab4630e29" + }, + { + "id": "FUSD.02", + "name": "Transfer FUSD", + "source": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow\u003c\u0026FUSD.Vault\u003e(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault \u003c- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow\u003c\u0026{FungibleToken.Receiver}\u003e()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: \u003c-self.sentVault)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "name": "amount", + "label": "Amount", + "sampleValues": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + } + ] + }, + { + "type": "Address", + "name": "recipient", + "label": "Recipient", + "sampleValues": [ + { + "type": "String", + "value": "0xe467b9dd11fa00df" + } + ] + } + ], + "network": "mainnet", + "hash": "180cef7053a5f0ae66e19e3a96cc3b9eb7da29767fb5d6938239bf1f8e1dc284" } ] -} \ No newline at end of file +} diff --git a/tests/generate-transaction-tests/manifest.testnet.json b/tests/generate-transaction-tests/manifest.testnet.json index 12f84d9d..a7edb310 100644 --- a/tests/generate-transaction-tests/manifest.testnet.json +++ b/tests/generate-transaction-tests/manifest.testnet.json @@ -1164,6 +1164,44 @@ ], "network": "testnet", "hash": "60f2cf219d56b19dc7fd223caed42dda9143c87b1b0d2c21a9652e12a3714133" - } - ] -} \ No newline at end of file + }, + { + "id": "FUSD.01", + "name": "Setup FUSD Vault", + "source": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow\u003c\u0026FUSD.Vault\u003e(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(\u003c-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link\u003c\u0026FUSD.Vault{FungibleToken.Receiver}\u003e(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link\u003c\u0026FUSD.Vault{FungibleToken.Balance}\u003e(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], + "network": "testnet", + "hash": "0ffaf77ab320ce4cc9602d39b89c85f094ebcea571ed324537e703bc07b0fdc4" + }, + { + "id": "FUSD.02", + "name": "Transfer FUSD", + "source": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow\u003c\u0026FUSD.Vault\u003e(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault \u003c- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow\u003c\u0026{FungibleToken.Receiver}\u003e()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: \u003c-self.sentVault)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "name": "amount", + "label": "Amount", + "sampleValues": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + } + ] + }, + { + "type": "Address", + "name": "recipient", + "label": "Recipient", + "sampleValues": [ + { + "type": "String", + "value": "0xe467b9dd11fa00df" + } + ] + } + ], + "network": "testnet", + "hash": "f22ca4b350a79c724f6471d5a6a7a0efa7ba9aeebb7fed2843a3ddd6e42c2e1c" + } ] +} diff --git a/tests/testvectors/manifestEnvelopeCases.json b/tests/testvectors/manifestEnvelopeCases.json index 86279024..d4bdf7d7 100644 --- a/tests/testvectors/manifestEnvelopeCases.json +++ b/tests/testvectors/manifestEnvelopeCases.json @@ -3232,6 +3232,114 @@ "encodedTransactionPayloadHex": "f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", "encodedTransactionEnvelopeHex": "f90343f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" }, + { + "title": "FUSD.01 - Setup FUSD Vault", + "valid": true, + "chainID": "Testnet", + "payloadMessage": { + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [ + { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sig": "f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162" + } + ] + }, + "envelopeMessage": { + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9057ef9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" + }, + { + "title": "FUSD.02 - Transfer FUSD", + "valid": true, + "chainID": "Testnet", + "payloadMessage": { + "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + }, + { + "type": "String", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [ + { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sig": "f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162" + } + ] + }, + "envelopeMessage": { + "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + }, + { + "type": "String", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9075cf90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" + }, { "title": "TH.01 - Withdraw Unlocked FLOW", "valid": true, @@ -6464,5 +6572,113 @@ }, "encodedTransactionPayloadHex": "f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", "encodedTransactionEnvelopeHex": "f90343f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" + }, + { + "title": "FUSD.01 - Setup FUSD Vault", + "valid": true, + "chainID": "Mainnet", + "payloadMessage": { + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [ + { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sig": "f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162" + } + ] + }, + "envelopeMessage": { + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9057ef9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" + }, + { + "title": "FUSD.02 - Transfer FUSD", + "valid": true, + "chainID": "Mainnet", + "payloadMessage": { + "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + }, + { + "type": "String", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [ + { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sig": "f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162" + } + ] + }, + "envelopeMessage": { + "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + }, + { + "type": "String", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9075cf90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" } ] \ No newline at end of file diff --git a/tests/testvectors/manifestPayloadCases.json b/tests/testvectors/manifestPayloadCases.json index b5692544..d5f511a3 100644 --- a/tests/testvectors/manifestPayloadCases.json +++ b/tests/testvectors/manifestPayloadCases.json @@ -2903,6 +2903,100 @@ "encodedTransactionPayloadHex": "f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", "encodedTransactionEnvelopeHex": "f90343f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078393565303139613137643065323364370a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" }, + { + "title": "FUSD.01 - Setup FUSD Vault", + "valid": true, + "chainID": "Testnet", + "payloadMessage": { + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ] + }, + "envelopeMessage": { + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9057ef9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" + }, + { + "title": "FUSD.02 - Transfer FUSD", + "valid": true, + "chainID": "Testnet", + "payloadMessage": { + "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + }, + { + "type": "String", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ] + }, + "envelopeMessage": { + "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0x9a0766d93b6608b7\nimport FUSD from 0xe223d8a629e49c68\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + }, + { + "type": "String", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f9075cf90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" + }, { "title": "TH.01 - Withdraw Unlocked FLOW", "valid": true, @@ -5806,5 +5900,99 @@ }, "encodedTransactionPayloadHex": "f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", "encodedTransactionEnvelopeHex": "f90343f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" + }, + { + "title": "FUSD.01 - Setup FUSD Vault", + "valid": true, + "chainID": "Mainnet", + "payloadMessage": { + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ] + }, + "envelopeMessage": { + "script": "// This transaction configures the signer's account with an empty FUSD vault.\n//\n// It also links the following capabilities:\n//\n// - FungibleToken.Receiver: this capability allows this account to accept FUSD deposits.\n// - FungibleToken.Balance: this capability allows anybody to inspect the FUSD balance of this account.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction {\n\n prepare(signer: AuthAccount) {\n\n // It's OK if the account already has a Vault, but we don't want to replace it\n if(signer.borrow<&FUSD.Vault>(from: /storage/fusdVault) != nil) {\n return\n }\n \n // Create a new FUSD Vault and put it in storage\n signer.save(<-FUSD.createEmptyVault(), to: /storage/fusdVault)\n\n // Create a public capability to the Vault that only exposes\n // the deposit function through the Receiver interface\n signer.link<&FUSD.Vault{FungibleToken.Receiver}>(\n /public/fusdReceiver,\n target: /storage/fusdVault\n )\n\n // Create a public capability to the Vault that only exposes\n // the balance field through the Balance interface\n signer.link<&FUSD.Vault{FungibleToken.Balance}>(\n /public/fusdBalance,\n target: /storage/fusdVault\n )\n }\n}\n", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9057ef9057ab905362f2f2054686973207472616e73616374696f6e20636f6e6669677572657320746865207369676e65722773206163636f756e74207769746820616e20656d7074792046555344207661756c742e0a2f2f0a2f2f20497420616c736f206c696e6b732074686520666f6c6c6f77696e67206361706162696c69746965733a0a2f2f0a2f2f202d2046756e6769626c65546f6b656e2e52656365697665723a2074686973206361706162696c69747920616c6c6f77732074686973206163636f756e7420746f206163636570742046555344206465706f736974732e0a2f2f202d2046756e6769626c65546f6b656e2e42616c616e63653a2074686973206361706162696c69747920616c6c6f777320616e79626f647920746f20696e73706563742074686520465553442062616c616e6365206f662074686973206163636f756e742e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e207b0a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a0a20202020202020202f2f2049742773204f4b20696620746865206163636f756e7420616c7265616479206861732061205661756c742c2062757420776520646f6e27742077616e7420746f207265706c6163652069740a20202020202020206966287369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c742920213d206e696c29207b0a20202020202020202020202072657475726e0a20202020202020207d0a20202020202020200a20202020202020202f2f204372656174652061206e65772046555344205661756c7420616e642070757420697420696e2073746f726167650a20202020202020207369676e65722e73617665283c2d465553442e637265617465456d7074795661756c7428292c20746f3a202f73746f726167652f667573645661756c74290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f20746865206465706f7369742066756e6374696f6e207468726f7567682074686520526563656976657220696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e52656365697665727d3e280a2020202020202020202020202f7075626c69632f6675736452656365697665722c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a0a20202020202020202f2f204372656174652061207075626c6963206361706162696c69747920746f20746865205661756c742074686174206f6e6c79206578706f7365730a20202020202020202f2f207468652062616c616e6365206669656c64207468726f756768207468652042616c616e636520696e746572666163650a20202020202020207369676e65722e6c696e6b3c26465553442e5661756c747b46756e6769626c65546f6b656e2e42616c616e63657d3e280a2020202020202020202020202f7075626c69632f6675736442616c616e63652c0a2020202020202020202020207461726765743a202f73746f726167652f667573645661756c740a2020202020202020290a202020207d0a7d0ac0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" + }, + { + "title": "FUSD.02 - Transfer FUSD", + "valid": true, + "chainID": "Mainnet", + "payloadMessage": { + "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + }, + { + "type": "String", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ] + }, + "envelopeMessage": { + "script": "// This transaction withdraws FUSD from the signer's account and deposits it into a recipient account. \n// This transaction will fail if the recipient does not have an FUSD receiver. \n// No funds are transferred or lost if the transaction fails.\n//\n// Parameters:\n// - amount: The amount of FUSD to transfer (e.g. 10.0)\n// - to: The recipient account address.\n//\n// This transaction will fail if either the sender or recipient does not have\n// an FUSD vault stored in their account. To check if an account has a vault\n// or initialize a new vault, use check_fusd_vault_setup.cdc and setup_fusd_vault.cdc\n// respectively.\n\nimport FungibleToken from 0xf233dcee88fe0abe\nimport FUSD from 0x3c5959b568896393\n\ntransaction(amount: UFix64, to: Address) {\n\n // The Vault resource that holds the tokens that are being transferred\n let sentVault: @FungibleToken.Vault\n\n prepare(signer: AuthAccount) {\n // Get a reference to the signer's stored vault\n let vaultRef = signer.borrow<&FUSD.Vault>(from: /storage/fusdVault)\n ?? panic(\"Could not borrow reference to the owner's Vault!\")\n\n // Withdraw tokens from the signer's stored vault\n self.sentVault <- vaultRef.withdraw(amount: amount)\n }\n\n execute {\n // Get the recipient's public account object\n let recipient = getAccount(to)\n\n // Get a reference to the recipient's Receiver\n let receiverRef = recipient.getCapability(/public/fusdReceiver)!.borrow<&{FungibleToken.Receiver}>()\n ?? panic(\"Could not borrow receiver reference to the recipient's Vault\")\n\n // Deposit the withdrawn tokens in the recipient's receiver\n receiverRef.deposit(from: <-self.sentVault)\n }\n}\n", + "arguments": [ + { + "type": "UFix64", + "value": "92233720368.54775808" + }, + { + "type": "String", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f9075cf90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" } ] \ No newline at end of file diff --git a/tests/utils/expected_output.cpp b/tests/utils/expected_output.cpp index 7a860ed1..1b68637a 100644 --- a/tests/utils/expected_output.cpp +++ b/tests/utils/expected_output.cpp @@ -383,6 +383,18 @@ std::vector GenerateExpectedUIOutput(const testcaseData_t &tcd) { addMultiStringArgumentTo(answer, "Address", item++, tcd.arguments[1]["value"]); break; } + case SCRIPT_FUSD01_SETUP_FUSD_VAULT: { + addTo(answer, "{} | Type : Setup FUSD Vault", item++); + addTo(answer, "{} | ChainID : {}", item++, tcd.chainID); + break; + } + case SCRIPT_FUSD02_TRANSFER_FUSD: { + addTo(answer, "{} | Type : Transfer FUSD", item++); + addTo(answer, "{} | ChainID : {}", item++, tcd.chainID); + addTo(answer, "{} | Amount : {}", item++, tcd.arguments[0]["value"].asString()); + addMultiStringArgumentTo(answer, "Recipient", item++, tcd.arguments[1]["value"]); + break; + } default: addTo(answer, "{} | Type : ERROR", item++); break; diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-1-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..929af520d0e38c9df27c7d573a7fcc04b45c308b GIT binary patch literal 563 zcmV-30?hr1P)g=Z-pWX1NYTg)B?U5nTA6-H(aCf&r08UxlFUa|UX{#UGB;%Il6h4N)6fKj zX;>>qOR*#K<5Jv^Aq6r!DUfMW?8r1JZphq7fy|8*$b3r*WFBSZ5oA6s1u}<|`4*WE z$?T*+W=Dn;$aE=?IYbI%jcAk(ElW+z3H zqLDem!Xu=(kpdZHI+;cWnNN{H1{qQuF2%#hAcM@8$uu&^9A)KbGEIs`rc3c-QtZh5 zl}wYOk@+$iQXoSLWV#gpnw3Y9A;pf&kCFK{8B#oiOq1eYurLj6+QKxn{{hiMzSh+C<0=3E002ovPDHLkV1f#% B_(=c& literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-10-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-10-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..33e2e1295aa4461728bca6d52c5ab62959a49418 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFff&Px;TbZFupw)7<4;|!R4T_ z*4cmJHu9g(tS!)XDm0jp@OeqzM{j)P58N? z&68~=|HPfE5+~ivn2~btDljyyfw1|E8?%wg8xtQRYu*zV3f51pJ^}Q6EYN^Rpo8_G zp)%W4;j=sMi5y@c0AncBD3}?9;!~gQHofDUmhmGU=<)s0KmCk?4`0r5NL!qkF#{+v z0q9*|5XSO49|k%reeIlWQWI`Yya^1=!yq5*>;&2UJ>sVy@8mNo!0;&s25j>gUtnx` z0>dZ`=*&DNP_ShJ<@c*Bn8TO-uq12fe%lSYt`0Y+ znckRYhK6=bVw2joKfOSdcX`{}_d7oFO39t@;pIUI^X^2+-^OFnU-frt0RpUe+0rTmOe%#n(lRO$IlbLR3C zkdc#Srr1pbO4}Ik;F>x4Ofav$=^ocKphfqTj7={%96mmw($!(-t~SqSj)zq?+e+nl zOXqkC2W(5_-L@2t?*3roEl;_3so~5iw);+Ok|`M#-Dmz^`k?^21W{l Mr>mdKI;Vst03N8v5&!@I literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-12-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-12-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..d764b119d8ccd0257c70cef19c143e18f8a22d97 GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCnba4!+V0?QpFz>d5fXl(_ zEWiJ;&+F$i?dkJaK)}rN0*I9y@k2p+*+LGE z@(GVz+C+TQcHKL5_k_>?bEnFuB&lBxGMPDT(a9}9@n5MA^MWQk3f7$E<9#tDs%tV( z%qnV!v}B5$*T;aaW|7?@m!F5toBBxA=yI)2jk*#4Nt2m#d5o-QzRY>Jdt#>MtTSIq znGP8T?Qu!l)jzd-f~AMy-OGorrYw{80P61#yQg~ei~Pw6OfzG-QtYC3Hl6A8@izRc zZnVUqP2|L%yoaGimwQ3d?qTaDft=*;S*TFF6X*&Jqxq3Lq-Rb`s@gww^@%;PUCcA5 zJ#u)aaMZI)Z8OlVZW}+W5>eOGo4)9z0?l1bPJMzlm#N6py9?8L?fl zKwt4Mo$)W{VII(j?I{x+*(5<4<|!HPYJKnU%sb_uSC^Wx6yrlaNWi=ak~y(OMBQk& z2s;p4&%DUNp$xKdive$LVhYfX6)Y{85!{zAh%H!t2dvS0_3du=+h=LeL~VtpxQlKKTbRI^5ldjpyBqOACrS*PRyBh#+{`lHL5o? z3xrmCI(C%@O?c$3Ic>kx=7~Q|HP@v*UI$cHqB-FukmAwg1G<;TXvvG95~J`9g|0w% z1Kr4@$p&)|56E@9K>oFo1bR$Wx_s)R@TEJNdsk0VbXEVXI8*Ov|Ky#`$Bef2T6=%g sPVq1V8frCDTR>o1rs=em1kqlG`I1wzKRLVk0b_;1)78&qol`;+03DgS`Tzg` literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-3-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-3-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5b78316789640626077ae772b4e6cc5944c3e7 GIT binary patch literal 1075 zcmXYxe@q)?7{^;ri;kWo8yVvy=8D6*3E6VJDm7%b9IIp#@FJOVNpjo%B+L(^WvXJACt6m}vKbFkSSpK-F3$9wTv<`nfZ{d%-%RTRN z&-;Bo-{-x7Cf6(YHe#Dbqrn}A8jiv<02leV4(_)reN`F__P3+KcKjXf`h0tLNAY%M zo|(S>-(%VS8sqIJ+!y(yjW2{s4gX%-x7&tMB}pIYALb4Ine>p-X;t^)@?4lr455g& zoETL)+o&_Q0?LHzz4_uBzZ5&_E+}5B`WmD;J?6Sk;f3c-xU3gf0(xpXZQ!8D8KYxk zx$NC!SupoJF{;O>SvhryO;pg;V!w_%useHXWJ)W#T^q}pWA03xCQSsd-`sfavKA^K zCC#|JaY|kcC`XKa!B;`)ttj^-5vhz3!t9`q>s}2gqK*qezPm3osK-l;{Ysbcy_yQ;%Ngajy=X>)b_!S-JNFM&0+eQAIf8p)2Go zd{uUa$HbNWAd**Xl3)RHKls*KaJd3CD9pA=2e}rEn%0Vt7KOlPr~!K+l0+@@JkSZP zFVqlrNys-zK?{nRKw2|G*m0Fjq&`u;FjvFpT;%lHP6{**LkS6tyaui?5XfHEfdcT& zsveet|uFh3*QjJ*^g0gb_r~nAhUbLWX2$_Wc0=e2!v_% z+to>}*b}#$zRFjbU^^fw_kPJHIvRN15aS9%m*{{~REk2gCLC2~)fl=|D-ErMb&5L(CtTM=J88#gN&mPpaCTe&m>pr;bGk8j@9w?3 z=Y5~&`}scag(I#ew2R$kFc^?{sIe8E5xBVLX}JGT8Qg0y81IUW^~XZgFUy^+Wu3*1 z%dfO&3Pojma>1)NTCPlwA36Wg^6^4OdIeRUXaDTG*!e_%Kq>O$aQ9Jml{1r@8zuhZvX=RYcu@1JpfzbHu zg7~=)0a0{z=dF zUIO=Yj>dmkvEQ!U$&{KPeGoak$^3qPijofJBI+GB233?n;4!2We*g9WFVv1Q{FC8& zT3YI7&|8pZlE&j-QPQJteyuUF;|+u?jWfvo|Bt$p1yO6(mCmgPhZsnp&o|dCdfEw( zQah@idG7N)f53{PP=UF$?wuLW(6bo1#!VEqZXVps%`2n#BC3d#+bK%QS+Gkle*@rH z@M*SKii6}fc#aXLH|bFZfkJWVLXVx0IJ>zXIe8t?xXErV(hfY%2| zObcA!Y_xL)m@}vd`D~m+ZUJxd`%n#EWix|!{u172VN4_0dbHgexOIr^R29CLS(>J#mwT&0!`FJsL6WlRNv&Ya7&&tyJVFv4sNsEi z)v}F!Log%o0c?PdnO}>j$@s@5QZ6_Uy<3@v*EUeUZI7}6%NA(77?1jfF6U1{E6MCb zpyL{b&H~s3sB2~uFsg9Kl~&;OCJ=wL{$kzYjooL%y$5QK${nCt$j-0XWf#naG9eqx z+U0s961o!S$QaFn($GxQ7pP9J+<|s{TK|0U z`fm$yX!%J>N>C7~H7k!1w?`B-?Rhj2?xbw`qhYFvsOHH_GI_JcN0wAT} ze0W`=da;LZIov^0~KyRDFaewGhrd)Oz%lRVz+d;QI^9qO_Mh%WxV^Z zHk|piigBiSv$>Ip4eLyHqZ4yZ0L|J2bj#v{?nWkm%2P6CL@^u9zx%`ISy4*HkHu~5 zyzDdef%g9CXq$UR^+b)UL*z2kh-GF#G$Zt|Co`|fnJ343q~uNjEuMKW!HoBW&VHV> zOF)bAHq0?qFy>}VW#f&XWND&cEXI|N)elF{r5}E+fbh7^d literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-6-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-6-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..48585806896ed9c77e7ace453460980850824669 GIT binary patch literal 729 zcmY*XeMl2w9KN+UN_I*~qF2$Gnxc|&-qJ*Cb6YuMvRdD*Y<0}}Z5ZNM)YLlB5l$oM zoW!OWLcd2?&B< z+Di2~SnV)~T`0^ehg-7{WQSX;R-W&Wtj}C){-{S(Gb-h$KV921r4_cbn)X|B{VxX0 zvn}NVJ2AdY$Mp#YIZ;FrTZI^ZZ(PC#aHn+=rB_|QT-7UGLS&xkmSF`EyTDO|ihG@{ z;%tG;)$i);@`2ft;X*ziM_G?a6IWq;BPAm#BCuo^bokNwl9wi@wImI9Zr_gUIM?${ z-@FXt#ZIcEWUZVCgzdtJDIE?Dlx~KsP$30OynNYHh?-`t8KWqDV+2r20p)|`=O9X_ zzy(|Da$;*vI3#ZGk_FiSkVn=;H*4w?@s{KVPdu@?K~Ky;QX#vbA^CsttAdUE!pN|0 zp^78g_5q-hVU+P)jQ8>(JMbRPQgI9O!x`@1{h+`QO5dOCs-##RR$S-qWRm2@u};PT0Ta%iZ5V|&aSVZY@vpHDYO3wfd~8O$jA6j&KBKI9KWb6%-~#K(-%JPJS?^0p)( z9y}u@FEymnC$gYy0gEDDkMYCr>_U~4+>i0bOt6ae%qj9kTZ>r@7lA`$ae7b)Z8nMQ z{FYPz(Q+du$TeUN#v@^UL&v?~OBai`NCV?wpNRM4nRN^Wq}R9m+A0q)kCi~wv=^JV4cB-ok1oaJ=oeK zHKB4xo9DCBAig!P|8mBe;_UhHOd*aT7N-f?Kd(0|)+uBr5Uijc{WCB!K z543bU-@Qpc^-o+dIC&>yMv9#)(D(@p6DR%DHZrl9bHm`=Ttnh<$0p_Er!dd(WfnNxYgfZ^~8sDfq6Rg*iao23|2OLu__L g>5XY-gwQu`TjPnH-)DOE0po(f)78&qol`;+00L>gjsO4v literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-8-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-8-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..fe477929c14c334dd9bf42782b92c8c7f91df88b GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfd;8ba4!+V0?S zgMa?>KVv?g>C;k@^XA#J6sDD4f39kKUT8S8+hooOn-FHBU}mHF*9w$At4d9<%yf8m z+eG2>t)<~HFIR<6`XMlLCF9Keiw$R{Pps@n4zBX0( zeCdIzq*R@#q}0FZJiI`^CZ}ZlC1_;OXk; Jvd$@?2>{sG=MMk? literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-9-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-01-setup-fusd-vault-p-256-sha-3-256-9-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe3215441a9d287450d2141629891d4b5051124 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfeI*x;TbZFupx_G3a&xgY!Y< z{;&V#*RY#bJm5RF#G=K>_f71_RpOHtFwShhvO%f1>T1Io_gAdqyI!=a$b~T*IWrqA z59d9x$K3motA5EvZcm%JZK9G=6CyJm(k>dD(2-)B*{%dsl&==|xJQ-#kTfT|ZhOyl)m&N$QDI6o!B;n~8IF{+z0Zn!>M zX`=A?-jQk}6PYd^ULbpm)P$cI&y;5_zq(;I4=>P|$v=ALWPa>3znyy=@u4u?Z|wRv}&-pPIz$9rOpiGuTC zFJ_}|wv=^Q4sC5y*;34;CM}|* zSq=%Q#f&pogG7O-?$nw5>>abuEP6OU)8X08vwzfpL9!nh>RyKzB?1FPjkmjPA>&Ma zQyows?#q6*1!zp$8KAq(CxZfAd?wJ{?+icB28N|$TbtuEElHqTcbo7SHG_g_5ztMp zAmQ6U`Fc+WOWA9{;8OEzH!HN-(s_BI?;O6|M8((AK~Y?<^m=>ZyEuymW`s<-H;&_AHMnSlAuo@kk&@!FbO^ zrkUI8*1q1g=C#)(S8>m2rLjLhP7_{}K1*axdRfqhd5Wy3Ij0Hhs7IWCvn0XtU{TZ8 zGyPkEqOWI$3+F#+T0BY7bu!aTH#W%>kBdtj*k(FUP&~SNruZa@JdZ*N%?XvJ#x=gr zfHr-;=Hs8@v2o%{FRqk(vnBs|Ts&c7v?L>?PGx5Q8JVePe2v0W@+MiX>Rg!3bm+p` zneN_&uFv*+Z=AR@x=Y(=i9?z?tI=!`Yak9!k;{B`F~tmMc!$V|Kf*@k6Ms%POFJutc~8dYTh{26g3oZ&d!QI@7nS_sr%Qm1RKf^{#0^Z~C9CnSJJNipNJEwLY&l zk;Bi^=EZj9dtN+oN5#3z?OC4Dk{dwl?o3H?e>Rb&Wnr|i^L4ehb-p~Yvn6(!8J6TG ly|{Jc!d9RcktM!KFFm(-PnedaKQLMuJYD@<);T3K0RVfy;Clc7 literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-10-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-10-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..fe477929c14c334dd9bf42782b92c8c7f91df88b GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfd;8ba4!+V0?S zgMa?>KVv?g>C;k@^XA#J6sDD4f39kKUT8S8+hooOn-FHBU}mHF*9w$At4d9<%yf8m z+eG2>t)<~HFIR<6`XMlLCF9Keiw$R{Pps@n4zBX0( zeCdIzq*R@#q}0FZJiI`^CZ}ZlC1_;OXk; Jvd$@?2>{sG=MMk? literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-11-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-11-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe3215441a9d287450d2141629891d4b5051124 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfeI*x;TbZFupx_G3a&xgY!Y< z{;&V#*RY#bJm5RF#G=K>_f71_RpOHtFwShhvO%f1>T1Io_gAdqyI!=a$b~T*IWrqA z59d9x$K3motA5EvZcm%JZK9G=6CyJm(k>dD(2-)B*{%dsl&==|xJQ-#kTfT|ZhOyl)m&N$QDI6o!B;n~8IF{+z0Zn!>M zX`=A?-jQk}6PYd^ULbpm)P$cI&y;5_zq(;I4=>P|$v=ALWPa>3znyy=@u4u?Z|wRv}&-pPIz$9rOpiGuTC zFJ_}|wv=^Q4sC5y*;34;CM}|* zSq=%Q#f&pogG7O-?$nw5>>abuEP6OU)8X08vwzfpL9!nh>RyKzB?1FPjkmjPA>&Ma zQyows?#q6*1!zp$8KAq(CxZfAd?wJ{?+icB28N|$TbtuEElHqTcbo7SHG_g_5ztMp zAmQ6U`Fc+WOWA9{;8OEzH!HN-(s_BI?;O6|MP58N? z&68~=|HPfE5+~ivn2~btDljyyfw1|E8?%wg8xtQRYu*zV3f51pJ^}Q6EYN^Rpo8_G zp)%W4;j=sMi5y@c0AncBD3}?9;!~gQHofDUmhmGU=<)s0KmCk?4`0r5NL!qkF#{+v z0q9*|5XSO49|k%reeIlWQWI`Yya^1=!yq5*>;&2UJ>sVy@8mNo!0;&s25j>gUtnx` z0>dZ`=*&DNP_ShJ<@c*Bn8TO-uq12fe%lSYt`0Y+ znckRYhK6=bVw2joKfOSdcX`{}_d7oFO39t@;pIUI^X^2+-^OFnU-frt0RpUe+0rTmOe%#n(lRO$IlbLR3C zkdc#Srr1pbO4}Ik;F>x4Ofav$=^ocKphfqTj7={%96mmw($!(-t~SqSj)zq?+e+nl zOXqkC2W(5_-L@2t?*3roEl;_3so~5iw);+Ok|`M#-Dmz^`k?^21W{l Mr>mdKI;Vst03N8v5&!@I literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-14-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-14-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..d764b119d8ccd0257c70cef19c143e18f8a22d97 GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCnba4!+V0?QpFz>d5fXl(_ zEWiJ;&+F$i?dkJaK)}rN0*I9y@k2p+*+LGE z@(GVz+C+TQcHKL5_k_>?bEnFuB&lBxGMPDT(a9}9@n5MA^MWQk3f7$E<9#tDs%tV( z%qnV!v}B5$*T;aaW|7?@m!F5toBBxA=yI)2jk*#4Nt2m#d5o-QzRY>Jdt#>MtTSIq znGP8T?Qu!l)jzd-f~AMy-OGorrYw{80P61#yQg~ei~Pw6OfzG-QtYC3Hl6A8@izRc zZnVUqP2|L%yoaGimwQ3d?qTaDft=*;S*TFF6X*&Jqxq3Lq-Rb`s@gww^@%;PUCcA5 zJ#u)aaMZI)Z8OlVZW}+W5>eOGo4)9z0?l1bPJMzlm#N6py9?8L?fl zKwt4Mo$)W{VII(j?I{x+*(5<4<|!HPYJKnU%sb_uSC^Wx6yrlaNWi=ak~y(OMBQk& z2s;p4&%DUNp$xKdive$LVhYfX6)Y{85!{zAh%H!t2dvS0_3du=+h=LeL~VtpxQlKKTbRI^5ldjpyBqOACrS*PRyBh#+{`lHL5o? z3xrmCI(C%@O?c$3Ic>kx=7~Q|HP@v*UI$cHqB-FukmAwg1G<;TXvvG95~J`9g|0w% z1Kr4@$p&)|56E@9K>oFo1bR$Wx_s)R@TEJNdsk0VbXEVXI8*Ov|Ky#`$Bef2T6=%g sPVq1V8frCDTR>o1rs=em1kqlG`I1wzKRLVk0b_;1)78&qol`;+03DgS`Tzg` literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-3-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-3-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..f3cf40d33ec1f35df60b5821aa6063b4c0433ddd GIT binary patch literal 730 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfc9jba4!+V0?QpFzv*`Vxvc!DIabDD{QvDAb}sj`%5ZA%j;TB=G)P5Alp*zUIS z+Qaw#fU=uSde~Cjn2pLOO7fmiaAr1It_~#L=k1vs2xMPxIHLsQPPaBy_lu_J#`NM=Z*JmXucFGH4 z;;tQgx->T??pE*mtcVmhsMC06UNiu5`p#T3NGX#N1M$kF+RkJ|q}W~Ep!|6y&|x6S z4a%EM-kh*;a;OYpHu7dRV&^>}W1>)eq2Y`pjI$Z!5wOrDuqZ^;pRmJ9AXE52Au!?R zs@~J}s~Kl*-ccyV+kM9GuoB3K=_Wcx*1&L@xG-_z&!ugOz|i`+7OdrFri4-dj*p?d z`>%k_vD$%D%(B?;#Gqzl?Ea@T8kSrT@zwYXiOQ2MHCRt&0;++*z7s=ENXJ0;DWP2H1CNwe#}Po(JCL8gztJaRi$o9n`c_qj1-{OjEIRdr6$ajQk%Ij(KRhY zLW*tX-3bdBXQp%eOU?VzHGdf+P$J9WncB>ij5B-LQrg-?fhVr+#AGjIH=#Knzl zQp?z+G8QCe?O55^He2f6l?|614!be)O7oiBS=!jv%O;hV^`oP;KMUwFhi8|i%%mpV z1bXfrFl;U~oLO!Hw9Sjz$YhO)Lh*ENeIc*gTMJTnPsq${D01P|HgZ>4AQQ@Lp#@FJOVNpjo%B+L(^WvXJACt6m}vKbFkSSpK-F3$9wTv<`nfZ{d%-%RTRN z&-;Bo-{-x7Cf6(YHe#Dbqrn}A8jiv<02leV4(_)reN`F__P3+KcKjXf`h0tLNAY%M zo|(S>-(%VS8sqIJ+!y(yjW2{s4gX%-x7&tMB}pIYALb4Ine>p-X;t^)@?4lr455g& zoETL)+o&_Q0?LHzz4_uBzZ5&_E+}5B`WmD;J?6Sk;f3c-xU3gf0(xpXZQ!8D8KYxk zx$NC!SupoJF{;O>SvhryO;pg;V!w_%useHXWJ)W#T^q}pWA03xCQSsd-`sfavKA^K zCC#|JaY|kcC`XKa!B;`)ttj^-5vhz3!t9`q>s}2gqK*qezPm3osK-l;{Ysbcy_yQ;%Ngajy=X>)b_!S-JNFM&0+eQAIf8p)2Go zd{uUa$HbNWAd**Xl3)RHKls*KaJd3CD9pA=2e}rEn%0Vt7KOlPr~!K+l0+@@JkSZP zFVqlrNys-zK?{nRKw2|G*m0Fjq&`u;FjvFpT;%lHP6{**LkS6tyaui?5XfHEfdcT& zsveet|uFh3*QjJ*^g0gb_r~nAhUbLWX2$_Wc0=e2!v_% z+to>}*b}#$zRFjbU^^fw_kPJHIvRN15aS9%m*{{~REk2gCLC2~)fl=|D-ErMb&5L(CtTM=J88#gN&mPpaCTe&m>pr;bGk8j@9w?3 z=Y5~&`}scag(I#ew2R$kFc^?{sIe8E5xBVLX}JGT8Qg0y81IUW^~XZgFUy^+Wu3*1 z%dfO&3Pojma>1)NTCPlwA36Wg^6^4OdIeRUXaDTG*!e_%Kq>O$aQ9Jml{1r@8zuhZvX=RYcu@1JpfzbHu zg7~=)0a0{z=dF zUIO=Yj>dmkvEQ!U$&{KPeGoak$^3qPijofJBI+GB233?n;4!2We*g9WFVv1Q{FC8& zT3YI7&|8pZlE&j-QPQJteyuUF;|+u?jWfvo|Bt$p1yO6(mCmgPhZsnp&o|dCdfEw( zQah@idG7N)f53{PP=UF$?wuLW(6bo1#!VEqZXVps%`2n#BC3d#+bK%QS+Gkle*@rH z@M*SKii6}fc#aXLH|bFZfkJWVLXVx0IJ>zXIe8t?xXErV(hfY%2| zObcA!Y_xL)m@}vd`D~m+ZUJxd`%n#EWix|!{u172VN4_0dbHgexOIr^R29CLS(>J#mwT&0!`FJsL6WlRNv&Ya7&&tyJVFv4sNsEi z)v}F!Log%o0c?PdnO}>j$@s@5QZ6_Uy<3@v*EUeUZI7}6%NA(77?1jfF6U1{E6MCb zpyL{b&H~s3sB2~uFsg9Kl~&;OCJ=wL{$kzYjooL%y$5QK${nCt$j-0XWf#naG9eqx z+U0s961o!S$QaFn($GxQ7pP9J+<|s{TK|0U z`fm$yX!%J>N>C7~H7k!1w?`B-?Rhj2?xbw`qhYFvsOHH_GI_JcN0wAT} ze0W`=da;LZIov^0~KyRDFaewGhrd)Oz%lRVz+d;QI^9qO_Mh%WxV^Z zHk|piigBiSv$>Ip4eLyHqZ4yZ0L|J2bj#v{?nWkm%2P6CL@^u9zx%`ISy4*HkHu~5 zyzDdef%g9CXq$UR^+b)UL*z2kh-GF#G$Zt|Co`|fnJ343q~uNjEuMKW!HoBW&VHV> zOF)bAHq0?qFy>}VW#f&XWND&cEXI|N)elF{r5}E+fbh7^d literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-8-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-fusd-02-transfer-fusd-p-256-sha-3-256-8-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..48585806896ed9c77e7ace453460980850824669 GIT binary patch literal 729 zcmY*XeMl2w9KN+UN_I*~qF2$Gnxc|&-qJ*Cb6YuMvRdD*Y<0}}Z5ZNM)YLlB5l$oM zoW!OWLcd2?&B< z+Di2~SnV)~T`0^ehg-7{WQSX;R-W&Wtj}C){-{S(Gb-h$KV921r4_cbn)X|B{VxX0 zvn}NVJ2AdY$Mp#YIZ;FrTZI^ZZ(PC#aHn+=rB_|QT-7UGLS&xkmSF`EyTDO|ihG@{ z;%tG;)$i);@`2ft;X*ziM_G?a6IWq;BPAm#BCuo^bokNwl9wi@wImI9Zr_gUIM?${ z-@FXt#ZIcEWUZVCgzdtJDIE?Dlx~KsP$30OynNYHh?-`t8KWqDV+2r20p)|`=O9X_ zzy(|Da$;*vI3#ZGk_FiSkVn=;H*4w?@s{KVPdu@?K~Ky;QX#vbA^CsttAdUE!pN|0 zp^78g_5q-hVU+P)jQ8>(JMbRPQgI9O!x`@1{h+`QO5dOCs-##RR$S-qWRm2@u};PT0Ta%iZ5V|&aSVZY@vpHDYO3wfd~8O$jA6j&KBKI9KWb6%-~#K(-%JPJS?^0p)( z9y}u@FEymnC$gYy0gEDDkMYCr>_U~4+>i0bOt6ae%qj9kTZ>r@7lA`$ae7b)Z8nMQ z{FYPz(Q+du$TeUN#v@^UL&v?~OBai`NCV?wpNRM4nRN^Wq}R9m+A0q)kCi~wv=^JV4cB-ok1oaJ=oeK zHKB4xo9DCBAig!P|8mBe;_UhHOd*aT7N-f?Kd(0|)+uBr5Uijc{WCB!K z543bU-@Qpc^-o+dIC&>yMv9#)(D(@p6DR%DHZrl9bHm`=Ttnh<$0p_Er!dd(WfnNxYgfZ^~8sDfq6Rg*iao23|2OLu__L g>5XY-gwQu`TjPnH-)DOE0po(f)78&qol`;+00L>gjsO4v literal 0 HcmV?d00001 From 73faf7c1a3974c3e5f39ba6997056680d4f4e1d8 Mon Sep 17 00:00:00 2001 From: Robert Lukotka Date: Mon, 20 Sep 2021 16:08:57 +0200 Subject: [PATCH 02/10] Add Top Shot transactions --- app/src/parser.c | 115 ++++++++++ app/src/parser_impl.c | 12 + app/src/parser_txdef.h | 4 +- app/src/template_hashes.h | 6 + .../manifest.mainnet.json | 39 ++++ .../manifest.testnet.json | 42 +++- tests/testvectors/manifestEnvelopeCases.json | 216 ++++++++++++++++++ tests/testvectors/manifestPayloadCases.json | 188 +++++++++++++++ tests/utils/expected_output.cpp | 12 + ...shot-collection-p-256-sha-3-256-1-snap.png | Bin 0 -> 653 bytes ...hot-collection-p-256-sha-3-256-10-snap.png | Bin 0 -> 685 bytes ...hot-collection-p-256-sha-3-256-11-snap.png | Bin 0 -> 443 bytes ...hot-collection-p-256-sha-3-256-12-snap.png | Bin 0 -> 480 bytes ...shot-collection-p-256-sha-3-256-2-snap.png | Bin 0 -> 444 bytes ...shot-collection-p-256-sha-3-256-3-snap.png | Bin 0 -> 1075 bytes ...shot-collection-p-256-sha-3-256-4-snap.png | Bin 0 -> 1032 bytes ...shot-collection-p-256-sha-3-256-5-snap.png | Bin 0 -> 412 bytes ...shot-collection-p-256-sha-3-256-6-snap.png | Bin 0 -> 729 bytes ...shot-collection-p-256-sha-3-256-7-snap.png | Bin 0 -> 434 bytes ...shot-collection-p-256-sha-3-256-8-snap.png | Bin 0 -> 527 bytes ...shot-collection-p-256-sha-3-256-9-snap.png | Bin 0 -> 612 bytes ...top-shot-moment-p-256-sha-3-256-1-snap.png | Bin 0 -> 656 bytes ...op-shot-moment-p-256-sha-3-256-10-snap.png | Bin 0 -> 527 bytes ...op-shot-moment-p-256-sha-3-256-11-snap.png | Bin 0 -> 612 bytes ...op-shot-moment-p-256-sha-3-256-12-snap.png | Bin 0 -> 685 bytes ...op-shot-moment-p-256-sha-3-256-13-snap.png | Bin 0 -> 443 bytes ...op-shot-moment-p-256-sha-3-256-14-snap.png | Bin 0 -> 480 bytes ...top-shot-moment-p-256-sha-3-256-2-snap.png | Bin 0 -> 444 bytes ...top-shot-moment-p-256-sha-3-256-3-snap.png | Bin 0 -> 417 bytes ...top-shot-moment-p-256-sha-3-256-4-snap.png | Bin 0 -> 676 bytes ...top-shot-moment-p-256-sha-3-256-5-snap.png | Bin 0 -> 1075 bytes ...top-shot-moment-p-256-sha-3-256-6-snap.png | Bin 0 -> 1032 bytes ...top-shot-moment-p-256-sha-3-256-7-snap.png | Bin 0 -> 412 bytes ...top-shot-moment-p-256-sha-3-256-8-snap.png | Bin 0 -> 729 bytes ...top-shot-moment-p-256-sha-3-256-9-snap.png | Bin 0 -> 434 bytes 35 files changed, 632 insertions(+), 2 deletions(-) create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-1-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-10-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-11-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-12-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-2-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-3-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-4-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-5-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-6-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-7-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-8-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-9-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-1-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-10-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-11-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-12-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-13-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-14-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-2-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-3-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-4-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-5-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-6-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-7-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-8-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-9-snap.png diff --git a/app/src/parser.c b/app/src/parser.c index dd65ac98..41f7beed 100644 --- a/app/src/parser.c +++ b/app/src/parser.c @@ -2800,6 +2800,115 @@ parser_error_t parser_getItemTransferFUSD(const parser_context_t *ctx, return PARSER_DISPLAY_IDX_OUT_OF_RANGE; } +//TS.01 +parser_error_t parser_getItemSetUpTopShotCollection(const parser_context_t *ctx, + uint16_t displayIdx, + char *outKey, uint16_t outKeyLen, + char *outVal, uint16_t outValLen, + uint8_t pageIdx, uint8_t *pageCount) { + *pageCount = 1; + switch (displayIdx) { + case 0: + snprintf(outKey, outKeyLen, "Type"); + snprintf(outVal, outValLen, "Set Up Top Shot Collection"); + return PARSER_OK; + case 1: + snprintf(outKey, outKeyLen, "ChainID"); + return parser_printChainID(&parser_tx_obj.payer, + outVal, outValLen, pageIdx, pageCount); + case 2: + snprintf(outKey, outKeyLen, "Ref Block"); + return parser_printBlockId(&parser_tx_obj.referenceBlockId, outVal, outValLen, pageIdx, pageCount); + case 3: + snprintf(outKey, outKeyLen, "Gas Limit"); + return parser_printGasLimit(&parser_tx_obj.gasLimit, outVal, outValLen, pageIdx, pageCount); + case 4: + snprintf(outKey, outKeyLen, "Prop Key Addr"); + return parser_printPropKeyAddr(&parser_tx_obj.proposalKeyAddress, outVal, outValLen, pageIdx, pageCount); + case 5: + snprintf(outKey, outKeyLen, "Prop Key Id"); + return parser_printPropKeyId(&parser_tx_obj.proposalKeyId, outVal, outValLen, pageIdx, pageCount); + case 6: + snprintf(outKey, outKeyLen, "Prop Key Seq Num"); + return parser_printPropSeqNum(&parser_tx_obj.proposalKeySequenceNumber, outVal, outValLen, pageIdx, + pageCount); + case 7: + snprintf(outKey, outKeyLen, "Payer"); + return parser_printPayer(&parser_tx_obj.payer, outVal, outValLen, pageIdx, pageCount); + default: + break; + } + displayIdx -= 8; + + if (displayIdx < parser_tx_obj.authorizers.authorizer_count) { + snprintf(outKey, outKeyLen, "Authorizer %d", displayIdx + 1); + return parser_printAuthorizer(&parser_tx_obj.authorizers.authorizer[displayIdx], outVal, outValLen, pageIdx, + pageCount); + } + + return PARSER_DISPLAY_IDX_OUT_OF_RANGE; +} + +//TS.02 +parser_error_t parser_getItemTransferTopShotMoment(const parser_context_t *ctx, + uint16_t displayIdx, + char *outKey, uint16_t outKeyLen, + char *outVal, uint16_t outValLen, + uint8_t pageIdx, uint8_t *pageCount) { + *pageCount = 1; + switch (displayIdx) { + case 0: + snprintf(outKey, outKeyLen, "Type"); + snprintf(outVal, outValLen, "Transfer Top Shot Moment"); + return PARSER_OK; + case 1: + snprintf(outKey, outKeyLen, "ChainID"); + return parser_printChainID(&parser_tx_obj.payer, + outVal, outValLen, pageIdx, pageCount); + case 2: + snprintf(outKey, outKeyLen, "Moment ID"); + return parser_printArgument(&parser_tx_obj.arguments, 0, + "UInt64", JSMN_STRING, + outVal, outValLen, pageIdx, pageCount); + case 3: + snprintf(outKey, outKeyLen, "Address"); + return parser_printArgument(&parser_tx_obj.arguments, 1, + "Address", JSMN_STRING, + outVal, outValLen, pageIdx, pageCount); + case 4: + snprintf(outKey, outKeyLen, "Ref Block"); + return parser_printBlockId(&parser_tx_obj.referenceBlockId, outVal, outValLen, pageIdx, pageCount); + case 5: + snprintf(outKey, outKeyLen, "Gas Limit"); + return parser_printGasLimit(&parser_tx_obj.gasLimit, outVal, outValLen, pageIdx, pageCount); + case 6: + snprintf(outKey, outKeyLen, "Prop Key Addr"); + return parser_printPropKeyAddr(&parser_tx_obj.proposalKeyAddress, outVal, outValLen, pageIdx, pageCount); + case 7: + snprintf(outKey, outKeyLen, "Prop Key Id"); + return parser_printPropKeyId(&parser_tx_obj.proposalKeyId, outVal, outValLen, pageIdx, pageCount); + case 8: + snprintf(outKey, outKeyLen, "Prop Key Seq Num"); + return parser_printPropSeqNum(&parser_tx_obj.proposalKeySequenceNumber, outVal, outValLen, pageIdx, + pageCount); + case 9: + snprintf(outKey, outKeyLen, "Payer"); + return parser_printPayer(&parser_tx_obj.payer, outVal, outValLen, pageIdx, pageCount); + default: + break; + } + displayIdx -= 10; + + if (displayIdx < parser_tx_obj.authorizers.authorizer_count) { + snprintf(outKey, outKeyLen, "Authorizer %d", displayIdx + 1); + return parser_printAuthorizer(&parser_tx_obj.authorizers.authorizer[displayIdx], outVal, outValLen, pageIdx, + pageCount); + } + + return PARSER_DISPLAY_IDX_OUT_OF_RANGE; +} + + parser_error_t parser_getItem(const parser_context_t *ctx, uint16_t displayIdx, char *outKey, uint16_t outKeyLen, @@ -2943,6 +3052,12 @@ parser_error_t parser_getItem(const parser_context_t *ctx, case SCRIPT_FUSD02_TRANSFER_FUSD: return parser_getItemTransferFUSD(ctx, displayIdx, outKey, outKeyLen, outVal, outValLen, pageIdx, pageCount); + case SCRIPT_TS01_SET_UP_TOPSHOT_COLLECTION: + return parser_getItemSetUpTopShotCollection(ctx, displayIdx, outKey, outKeyLen, outVal, + outValLen, pageIdx, pageCount); + case SCRIPT_TS02_TRANSFER_TOP_SHOT_MOMENT: + return parser_getItemTransferTopShotMoment(ctx, displayIdx, outKey, outKeyLen, outVal, + outValLen, pageIdx, pageCount); } return PARSER_UNEXPECTED_SCRIPT; diff --git a/app/src/parser_impl.c b/app/src/parser_impl.c index f65d586a..9725eade 100644 --- a/app/src/parser_impl.c +++ b/app/src/parser_impl.c @@ -469,6 +469,12 @@ parser_error_t _matchScriptType(uint8_t scriptHash[32], script_type_e *scriptTyp {SCRIPT_FUSD02_TRANSFER_FUSD, TEMPLATE_HASH_FUSD02_TRANSFER_FUSD_TESTNET}, {SCRIPT_FUSD02_TRANSFER_FUSD, TEMPLATE_HASH_FUSD02_TRANSFER_FUSD_MAINNET}, + + {SCRIPT_TS01_SET_UP_TOPSHOT_COLLECTION, TEMPLATE_HASH_TS01_SET_UP_TOPSHOT_COLLECTION_TESTNET}, + {SCRIPT_TS01_SET_UP_TOPSHOT_COLLECTION, TEMPLATE_HASH_TS01_SET_UP_TOPSHOT_COLLECTION_MAINNET}, + + {SCRIPT_TS02_TRANSFER_TOP_SHOT_MOMENT, TEMPLATE_HASH_TS02_TRANSFER_TOP_SHOT_MOMENT_TESTNET}, + {SCRIPT_TS02_TRANSFER_TOP_SHOT_MOMENT, TEMPLATE_HASH_TS02_TRANSFER_TOP_SHOT_MOMENT_MAINNET}, // sentinel, do not remove {0, NULL} }; @@ -885,6 +891,12 @@ parser_error_t _getNumItems(const parser_context_t *c, const parser_tx_t *v, uin case SCRIPT_FUSD02_TRANSFER_FUSD: *numItems = 10 + v->authorizers.authorizer_count; return PARSER_OK; + case SCRIPT_TS01_SET_UP_TOPSHOT_COLLECTION: + *numItems = 8 + v->authorizers.authorizer_count; + return PARSER_OK; + case SCRIPT_TS02_TRANSFER_TOP_SHOT_MOMENT: + *numItems = 10 + v->authorizers.authorizer_count; + return PARSER_OK; case SCRIPT_UNKNOWN: default: return PARSER_UNEXPECTED_SCRIPT; diff --git a/app/src/parser_txdef.h b/app/src/parser_txdef.h index 30e1736f..ae388ffd 100644 --- a/app/src/parser_txdef.h +++ b/app/src/parser_txdef.h @@ -72,7 +72,9 @@ typedef enum { SCRIPT_SCO15_WITHDRAW_FROM_MACHINE_ACCOUNT, SCRIPT_SCO16_UPDATE_NETWORKING_ADDRESS, SCRIPT_FUSD01_SETUP_FUSD_VAULT, - SCRIPT_FUSD02_TRANSFER_FUSD + SCRIPT_FUSD02_TRANSFER_FUSD, + SCRIPT_TS01_SET_UP_TOPSHOT_COLLECTION, + SCRIPT_TS02_TRANSFER_TOP_SHOT_MOMENT } script_type_e; typedef enum { diff --git a/app/src/template_hashes.h b/app/src/template_hashes.h index ebe83e25..25bb2f94 100644 --- a/app/src/template_hashes.h +++ b/app/src/template_hashes.h @@ -137,6 +137,12 @@ extern "C" { #define TEMPLATE_HASH_FUSD02_TRANSFER_FUSD_TESTNET "f22ca4b350a79c724f6471d5a6a7a0efa7ba9aeebb7fed2843a3ddd6e42c2e1c" #define TEMPLATE_HASH_FUSD02_TRANSFER_FUSD_MAINNET "180cef7053a5f0ae66e19e3a96cc3b9eb7da29767fb5d6938239bf1f8e1dc284" +#define TEMPLATE_HASH_TS01_SET_UP_TOPSHOT_COLLECTION_TESTNET "0f0baeef9353ceee607c5be3b7c0f86792dadf20b9e9c89e831adb0199e75882" +#define TEMPLATE_HASH_TS01_SET_UP_TOPSHOT_COLLECTION_MAINNET "7511848f1c27a173d966f4b868fd7efead7eeb1bbf04fc3f3e60dabc6c7f7593" + +#define TEMPLATE_HASH_TS02_TRANSFER_TOP_SHOT_MOMENT_TESTNET "1ec9aea0b51409610f882f5ae4278567da675542bb378eb999f05b7c4f12f7d8" +#define TEMPLATE_HASH_TS02_TRANSFER_TOP_SHOT_MOMENT_MAINNET "09d5ad21bf70dfe4f8d800db9e61a77f2f64837ae0e818c3cd67e9cea837a1cf" + #ifdef __cplusplus } #endif diff --git a/tests/generate-transaction-tests/manifest.mainnet.json b/tests/generate-transaction-tests/manifest.mainnet.json index 14c04395..3020fa9e 100644 --- a/tests/generate-transaction-tests/manifest.mainnet.json +++ b/tests/generate-transaction-tests/manifest.mainnet.json @@ -1203,6 +1203,45 @@ ], "network": "mainnet", "hash": "180cef7053a5f0ae66e19e3a96cc3b9eb7da29767fb5d6938239bf1f8e1dc284" + }, + { + "id": "TS.01", + "name": "Set up Top Shot Collection", + "source": "import TopShot from 0x0b2a3299cc857e29\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow\u003c\u0026TopShot.Collection\u003e(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection \u003c- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(\u003c-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link\u003c\u0026{TopShot.MomentCollectionPublic}\u003e(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], + "network": "mainnet", + "hash": "7511848f1c27a173d966f4b868fd7efead7eeb1bbf04fc3f3e60dabc6c7f7593" + }, + { + "id": "TS.02", + "name": "Transfer Top Shot Moment", + "source": "import NonFungibleToken from 0x1d7e57aa55817448\nimport TopShot from 0x0b2a3299cc857e29\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow\u003c\u0026TopShot.Collection\u003e(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken \u003c- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow\u003c\u0026{TopShot.MomentCollectionPublic}\u003e()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: \u003c-self.transferToken)\n }\n}", + "arguments": [ + { + "type": "UInt64", + "name": "withdrawID", + "label": "Moment ID", + "sampleValues": [ + { + "type": "UInt64", + "value": "42" + } + ] + }, + { + "type": "Address", + "name": "recipient", + "label": "Recipient", + "sampleValues": [ + { + "type": "Address", + "value": "0xe467b9dd11fa00df" + } + ] + } + ], + "network": "mainnet", + "hash": "09d5ad21bf70dfe4f8d800db9e61a77f2f64837ae0e818c3cd67e9cea837a1cf" } ] } diff --git a/tests/generate-transaction-tests/manifest.testnet.json b/tests/generate-transaction-tests/manifest.testnet.json index a7edb310..3e8ae4e3 100644 --- a/tests/generate-transaction-tests/manifest.testnet.json +++ b/tests/generate-transaction-tests/manifest.testnet.json @@ -1203,5 +1203,45 @@ ], "network": "testnet", "hash": "f22ca4b350a79c724f6471d5a6a7a0efa7ba9aeebb7fed2843a3ddd6e42c2e1c" - } ] + }, + { + "id": "TS.01", + "name": "Set up Top Shot Collection", + "source": "import TopShot from 0x877931736ee77cff\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow\u003c\u0026TopShot.Collection\u003e(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection \u003c- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(\u003c-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link\u003c\u0026{TopShot.MomentCollectionPublic}\u003e(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], + "network": "testnet", + "hash": "0f0baeef9353ceee607c5be3b7c0f86792dadf20b9e9c89e831adb0199e75882" + }, + { + "id": "TS.02", + "name": "Transfer Top Shot Moment", + "source": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport TopShot from 0x877931736ee77cff\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow\u003c\u0026TopShot.Collection\u003e(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken \u003c- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow\u003c\u0026{TopShot.MomentCollectionPublic}\u003e()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: \u003c-self.transferToken)\n }\n}", + "arguments": [ + { + "type": "UInt64", + "name": "withdrawID", + "label": "Moment ID", + "sampleValues": [ + { + "type": "UInt64", + "value": "42" + } + ] + }, + { + "type": "Address", + "name": "recipient", + "label": "Recipient", + "sampleValues": [ + { + "type": "Address", + "value": "0x8c5303eaa26202d6" + } + ] + } + ], + "network": "testnet", + "hash": "1ec9aea0b51409610f882f5ae4278567da675542bb378eb999f05b7c4f12f7d8" + } + ] } diff --git a/tests/testvectors/manifestEnvelopeCases.json b/tests/testvectors/manifestEnvelopeCases.json index d4bdf7d7..c0ff98d1 100644 --- a/tests/testvectors/manifestEnvelopeCases.json +++ b/tests/testvectors/manifestEnvelopeCases.json @@ -3340,6 +3340,114 @@ "encodedTransactionPayloadHex": "f90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", "encodedTransactionEnvelopeHex": "f9075cf90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" }, + { + "title": "TS.01 - Set up Top Shot Collection", + "valid": true, + "chainID": "Testnet", + "payloadMessage": { + "script": "import TopShot from 0x877931736ee77cff\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [ + { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sig": "f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162" + } + ] + }, + "envelopeMessage": { + "script": "import TopShot from 0x877931736ee77cff\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90384b90340696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90388f90384b90340696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" + }, + { + "title": "TS.02 - Transfer Top Shot Moment", + "valid": true, + "chainID": "Testnet", + "payloadMessage": { + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport TopShot from 0x877931736ee77cff\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", + "arguments": [ + { + "type": "UInt64", + "value": "42" + }, + { + "type": "Address", + "value": "0x8c5303eaa26202d6" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [ + { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sig": "f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162" + } + ] + }, + "envelopeMessage": { + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport TopShot from 0x877931736ee77cff\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", + "arguments": [ + { + "type": "UInt64", + "value": "42" + }, + { + "type": "Address", + "value": "0x8c5303eaa26202d6" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84f9e7b2274797065223a2255496e743634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90685f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84f9e7b2274797065223a2255496e743634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" + }, { "title": "TH.01 - Withdraw Unlocked FLOW", "valid": true, @@ -6680,5 +6788,113 @@ }, "encodedTransactionPayloadHex": "f90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", "encodedTransactionEnvelopeHex": "f9075cf90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" + }, + { + "title": "TS.01 - Set up Top Shot Collection", + "valid": true, + "chainID": "Mainnet", + "payloadMessage": { + "script": "import TopShot from 0x0b2a3299cc857e29\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [ + { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sig": "f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162" + } + ] + }, + "envelopeMessage": { + "script": "import TopShot from 0x0b2a3299cc857e29\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90384b90340696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90388f90384b90340696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" + }, + { + "title": "TS.02 - Transfer Top Shot Moment", + "valid": true, + "chainID": "Mainnet", + "payloadMessage": { + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport TopShot from 0x0b2a3299cc857e29\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", + "arguments": [ + { + "type": "UInt64", + "value": "42" + }, + { + "type": "Address", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [ + { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sig": "f7225388c1d69d57e6251c9fda50cbbf9e05131e5adb81e5aa0422402f048162" + } + ] + }, + "envelopeMessage": { + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport TopShot from 0x0b2a3299cc857e29\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", + "arguments": [ + { + "type": "UInt64", + "value": "42" + }, + { + "type": "Address", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84f9e7b2274797065223a2255496e743634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90685f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84f9e7b2274797065223a2255496e743634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" } ] \ No newline at end of file diff --git a/tests/testvectors/manifestPayloadCases.json b/tests/testvectors/manifestPayloadCases.json index d5f511a3..1214fc1f 100644 --- a/tests/testvectors/manifestPayloadCases.json +++ b/tests/testvectors/manifestPayloadCases.json @@ -2997,6 +2997,100 @@ "encodedTransactionPayloadHex": "f90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", "encodedTransactionEnvelopeHex": "f9075cf90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078396130373636643933623636303862370a696d706f727420465553442066726f6d203078653232336438613632396534396336380a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" }, + { + "title": "TS.01 - Set up Top Shot Collection", + "valid": true, + "chainID": "Testnet", + "payloadMessage": { + "script": "import TopShot from 0x877931736ee77cff\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ] + }, + "envelopeMessage": { + "script": "import TopShot from 0x877931736ee77cff\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90384b90340696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90388f90384b90340696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" + }, + { + "title": "TS.02 - Transfer Top Shot Moment", + "valid": true, + "chainID": "Testnet", + "payloadMessage": { + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport TopShot from 0x877931736ee77cff\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", + "arguments": [ + { + "type": "UInt64", + "value": "42" + }, + { + "type": "Address", + "value": "0x8c5303eaa26202d6" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ] + }, + "envelopeMessage": { + "script": "import NonFungibleToken from 0x631e88ae7f1d7c20\nimport TopShot from 0x877931736ee77cff\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", + "arguments": [ + { + "type": "UInt64", + "value": "42" + }, + { + "type": "Address", + "value": "0x8c5303eaa26202d6" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "99a8ac2c71d4f6bd", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "99a8ac2c71d4f6bd", + "authorizers": [ + "99a8ac2c71d4f6bd" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84f9e7b2274797065223a2255496e743634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bd", + "encodedTransactionEnvelopeHex": "f90685f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078363331653838616537663164376332300a696d706f727420546f7053686f742066726f6d203078383737393331373336656537376366660a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84f9e7b2274797065223a2255496e743634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307838633533303365616132363230326436227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a8899a8ac2c71d4f6bd040a8899a8ac2c71d4f6bdc98899a8ac2c71d4f6bdc0" + }, { "title": "TH.01 - Withdraw Unlocked FLOW", "valid": true, @@ -5994,5 +6088,99 @@ }, "encodedTransactionPayloadHex": "f90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", "encodedTransactionEnvelopeHex": "f9075cf90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" + }, + { + "title": "TS.01 - Set up Top Shot Collection", + "valid": true, + "chainID": "Mainnet", + "payloadMessage": { + "script": "import TopShot from 0x0b2a3299cc857e29\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ] + }, + "envelopeMessage": { + "script": "import TopShot from 0x0b2a3299cc857e29\n\n// This transaction sets up an account to use Top Shot\n// by storing an empty moment collection and creating\n// a public capability for it\n\ntransaction {\n\n prepare(acct: AuthAccount) {\n\n // First, check to see if a moment collection already exists\n if acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection) == nil {\n\n // create a new TopShot Collection\n let collection <- TopShot.createEmptyCollection() as! @TopShot.Collection\n\n // Put the new Collection in storage\n acct.save(<-collection, to: /storage/MomentCollection)\n\n // create a public capability for the collection\n acct.link<&{TopShot.MomentCollectionPublic}>(/public/MomentCollection, target: /storage/MomentCollection)\n }\n }\n}", + "arguments": [], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90384b90340696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90388f90384b90340696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207365747320757020616e206163636f756e7420746f2075736520546f702053686f740a2f2f2062792073746f72696e6720616e20656d707479206d6f6d656e7420636f6c6c656374696f6e20616e64206372656174696e670a2f2f2061207075626c6963206361706162696c69747920666f722069740a0a7472616e73616374696f6e207b0a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f2046697273742c20636865636b20746f207365652069662061206d6f6d656e7420636f6c6c656374696f6e20616c7265616479206578697374730a2020202020202020696620616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e29203d3d206e696c207b0a0a2020202020202020202020202f2f206372656174652061206e657720546f7053686f7420436f6c6c656374696f6e0a2020202020202020202020206c657420636f6c6c656374696f6e203c2d20546f7053686f742e637265617465456d707479436f6c6c656374696f6e2829206173212040546f7053686f742e436f6c6c656374696f6e0a0a2020202020202020202020202f2f2050757420746865206e657720436f6c6c656374696f6e20696e2073746f726167650a202020202020202020202020616363742e73617665283c2d636f6c6c656374696f6e2c20746f3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a0a2020202020202020202020202f2f206372656174652061207075626c6963206361706162696c69747920666f722074686520636f6c6c656374696f6e0a202020202020202020202020616363742e6c696e6b3c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e2c207461726765743a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a20202020202020207d0a202020207d0a7dc0a0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" + }, + { + "title": "TS.02 - Transfer Top Shot Moment", + "valid": true, + "chainID": "Mainnet", + "payloadMessage": { + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport TopShot from 0x0b2a3299cc857e29\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", + "arguments": [ + { + "type": "UInt64", + "value": "42" + }, + { + "type": "Address", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ] + }, + "envelopeMessage": { + "script": "import NonFungibleToken from 0x1d7e57aa55817448\nimport TopShot from 0x0b2a3299cc857e29\n\n// This transaction transfers a moment to a recipient\n\n// This transaction is how a topshot user would transfer a moment\n// from their account to another account\n// The recipient must have a TopShot Collection object stored\n// and a public MomentCollectionPublic capability stored at\n// `/public/MomentCollection`\n\n// Parameters:\n//\n// recipient: The Flow address of the account to receive the moment.\n// withdrawID: The id of the moment to be transferred\n\ntransaction(recipient: Address, withdrawID: UInt64) {\n\n // local variable for storing the transferred token\n let transferToken: @NonFungibleToken.NFT\n \n prepare(acct: AuthAccount) {\n\n // borrow a reference to the owner's collection\n let collectionRef = acct.borrow<&TopShot.Collection>(from: /storage/MomentCollection)\n ?? panic(\"Could not borrow a reference to the stored Moment collection\")\n \n // withdraw the NFT\n self.transferToken <- collectionRef.withdraw(withdrawID: withdrawID)\n }\n\n execute {\n \n // get the recipient's public account object\n let recipient = getAccount(recipient)\n\n // get the Collection reference for the receiver\n let receiverRef = recipient.getCapability(/public/MomentCollection).borrow<&{TopShot.MomentCollectionPublic}>()!\n\n // deposit the NFT in the receivers collection\n receiverRef.deposit(token: <-self.transferToken)\n }\n}", + "arguments": [ + { + "type": "UInt64", + "value": "42" + }, + { + "type": "Address", + "value": "0xe467b9dd11fa00df" + } + ], + "refBlock": "f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b", + "gasLimit": 42, + "proposalKey": { + "address": "f19c161bc24cf4b4", + "keyId": 4, + "sequenceNum": 10 + }, + "payer": "f19c161bc24cf4b4", + "authorizers": [ + "f19c161bc24cf4b4" + ], + "payloadSigs": [] + }, + "encodedTransactionPayloadHex": "f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84f9e7b2274797065223a2255496e743634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4", + "encodedTransactionEnvelopeHex": "f90685f90681b905ed696d706f7274204e6f6e46756e6769626c65546f6b656e2066726f6d203078316437653537616135353831373434380a696d706f727420546f7053686f742066726f6d203078306232613332393963633835376532390a0a2f2f2054686973207472616e73616374696f6e207472616e73666572732061206d6f6d656e7420746f206120726563697069656e740a0a2f2f2054686973207472616e73616374696f6e20697320686f77206120746f7073686f74207573657220776f756c64207472616e736665722061206d6f6d656e740a2f2f2066726f6d207468656972206163636f756e7420746f20616e6f74686572206163636f756e740a2f2f2054686520726563697069656e74206d7573742068617665206120546f7053686f7420436f6c6c656374696f6e206f626a6563742073746f7265640a2f2f20616e642061207075626c6963204d6f6d656e74436f6c6c656374696f6e5075626c6963206361706162696c6974792073746f7265642061740a2f2f20602f7075626c69632f4d6f6d656e74436f6c6c656374696f6e600a0a2f2f20506172616d65746572733a0a2f2f0a2f2f20726563697069656e743a2054686520466c6f772061646472657373206f6620746865206163636f756e7420746f207265636569766520746865206d6f6d656e742e0a2f2f20776974686472617749443a20546865206964206f6620746865206d6f6d656e7420746f206265207472616e736665727265640a0a7472616e73616374696f6e28726563697069656e743a20416464726573732c20776974686472617749443a2055496e74363429207b0a0a202020202f2f206c6f63616c207661726961626c6520666f722073746f72696e6720746865207472616e7366657272656420746f6b656e0a202020206c6574207472616e73666572546f6b656e3a20404e6f6e46756e6769626c65546f6b656e2e4e46540a202020200a202020207072657061726528616363743a20417574684163636f756e7429207b0a0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206f776e6572277320636f6c6c656374696f6e0a20202020202020206c657420636f6c6c656374696f6e526566203d20616363742e626f72726f773c26546f7053686f742e436f6c6c656374696f6e3e2866726f6d3a202f73746f726167652f4d6f6d656e74436f6c6c656374696f6e290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772061207265666572656e636520746f207468652073746f726564204d6f6d656e7420636f6c6c656374696f6e22290a20202020202020200a20202020202020202f2f20776974686472617720746865204e46540a202020202020202073656c662e7472616e73666572546f6b656e203c2d20636f6c6c656374696f6e5265662e776974686472617728776974686472617749443a2077697468647261774944290a202020207d0a0a2020202065786563757465207b0a20202020202020200a20202020202020202f2f206765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428726563697069656e74290a0a20202020202020202f2f206765742074686520436f6c6c656374696f6e207265666572656e636520666f72207468652072656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f4d6f6d656e74436f6c6c656374696f6e292e626f72726f773c267b546f7053686f742e4d6f6d656e74436f6c6c656374696f6e5075626c69637d3e2829210a0a20202020202020202f2f206465706f73697420746865204e465420696e207468652072656365697665727320636f6c6c656374696f6e0a202020202020202072656365697665725265662e6465706f73697428746f6b656e3a203c2d73656c662e7472616e73666572546f6b656e290a202020207d0a7df84f9e7b2274797065223a2255496e743634222c2276616c7565223a223432227daf7b2274797065223a2241646472657373222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" } ] \ No newline at end of file diff --git a/tests/utils/expected_output.cpp b/tests/utils/expected_output.cpp index 1b68637a..2749745e 100644 --- a/tests/utils/expected_output.cpp +++ b/tests/utils/expected_output.cpp @@ -395,6 +395,18 @@ std::vector GenerateExpectedUIOutput(const testcaseData_t &tcd) { addMultiStringArgumentTo(answer, "Recipient", item++, tcd.arguments[1]["value"]); break; } + case SCRIPT_TS01_SET_UP_TOPSHOT_COLLECTION: { + addTo(answer, "{} | Type : Set Up Top Shot Collection", item++); + addTo(answer, "{} | ChainID : {}", item++, tcd.chainID); + break; + } + case SCRIPT_TS02_TRANSFER_TOP_SHOT_MOMENT: { + addTo(answer, "{} | Type : Transfer Top Shot Moment", item++); + addTo(answer, "{} | ChainID : {}", item++, tcd.chainID); + addTo(answer, "{} | Moment ID : {}", item++, tcd.arguments[0]["value"].asString()); + addMultiStringArgumentTo(answer, "Address", item++, tcd.arguments[1]["value"]); + break; + } default: addTo(answer, "{} | Type : ERROR", item++); break; diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-1-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..e9e07bea7758b1f91aef34526257c06b1794c0f8 GIT binary patch literal 653 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFffI9x;TbZFupx_vF~yOgUi9o zk>B(Clb&w=z0lmKpxo!sp$7JoeXEaz@11<)ovF=)%1Yi7HU4`a`;`L)6ipP0tClm) z{Qhs|^Pg7djdR!U%C4UKeCFNV`wrG5XC&;~cbH?#Vx!*i!7Kf`t4PH_v2C znU@uDA}8}veuhL!Mudq@iro^B0VX^~&OnXrraVU4Kr0s|UfeLDQepGfPF;x6ixL%` znT_`QrU9MkEHyzAh*H`>hB-WIJOlI@(D;Rnk|{vh{8=}E4oFlqHj$YGqBon1Z&Um1 zz$Tf(=b5%%Z_c;HiP^%@nH64bZH{Rf5hvE1xUfNK^Cg25H8XgCHhUdb_#AS${p1CM z6KjC33ropZkT~IIFw?1fzyQgVno!9q?x*kTV7YeP58N? z&68~=|HPfE5+~ivn2~btDljyyfw1|E8?%wg8xtQRYu*zV3f51pJ^}Q6EYN^Rpo8_G zp)%W4;j=sMi5y@c0AncBD3}?9;!~gQHofDUmhmGU=<)s0KmCk?4`0r5NL!qkF#{+v z0q9*|5XSO49|k%reeIlWQWI`Yya^1=!yq5*>;&2UJ>sVy@8mNo!0;&s25j>gUtnx` z0>dZ`=*&DNP_ShJ<@c*Bn8TO-uq12fe%lSYt`0Y+ znckRYhK6=bVw2joKfOSdcX`{}_d7oFO39t@;pIUI^X^2+-^OFnU-frt0RpUe+0rTmOe%#n(lRO$IlbLR3C zkdc#Srr1pbO4}Ik;F>x4Ofav$=^ocKphfqTj7={%96mmw($!(-t~SqSj)zq?+e+nl zOXqkC2W(5_-L@2t?*3roEl;_3so~5iw);+Ok|`M#-Dmz^`k?^21W{l Mr>mdKI;Vst03N8v5&!@I literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-12-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-12-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..d764b119d8ccd0257c70cef19c143e18f8a22d97 GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCnba4!+V0?QpFz>d5fXl(_ zEWiJ;&+F$i?dkJaK)}rN0*I9y@k2p+*+LGE z@(GVz+C+TQcHKL5_k_>?bEnFuB&lBxGMPDT(a9}9@n5MA^MWQk3f7$E<9#tDs%tV( z%qnV!v}B5$*T;aaW|7?@m!F5toBBxA=yI)2jk*#4Nt2m#d5o-QzRY>Jdt#>MtTSIq znGP8T?Qu!l)jzd-f~AMy-OGorrYw{80P61#yQg~ei~Pw6OfzG-QtYC3Hl6A8@izRc zZnVUqP2|L%yoaGimwQ3d?qTaDft=*;S*TFF6X*&Jqxq3Lq-Rb`s@gww^@%;PUCcA5 zJ#u)aaMZI)Z8OlVZW}+W5>eOGo4)9z0?l1bPJMzlm#N6py9?8L?fl zKwt4Mo$)W{VII(j?I{x+*(5<4<|!HPYJKnU%sb_uSC^Wx6yrlaNWi=ak~y(OMBQk& z2s;p4&%DUNp$xKdive$LVhYfX6)Y{85!{zAh%H!t2dvS0_3du=+h=LeL~VtpxQlKKTbRI^5ldjpyBqOACrS*PRyBh#+{`lHL5o? z3xrmCI(C%@O?c$3Ic>kx=7~Q|HP@v*UI$cHqB-FukmAwg1G<;TXvvG95~J`9g|0w% z1Kr4@$p&)|56E@9K>oFo1bR$Wx_s)R@TEJNdsk0VbXEVXI8*Ov|Ky#`$Bef2T6=%g sPVq1V8frCDTR>o1rs=em1kqlG`I1wzKRLVk0b_;1)78&qol`;+03DgS`Tzg` literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-3-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-3-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..6e5b78316789640626077ae772b4e6cc5944c3e7 GIT binary patch literal 1075 zcmXYxe@q)?7{^;ri;kWo8yVvy=8D6*3E6VJDm7%b9IIp#@FJOVNpjo%B+L(^WvXJACt6m}vKbFkSSpK-F3$9wTv<`nfZ{d%-%RTRN z&-;Bo-{-x7Cf6(YHe#Dbqrn}A8jiv<02leV4(_)reN`F__P3+KcKjXf`h0tLNAY%M zo|(S>-(%VS8sqIJ+!y(yjW2{s4gX%-x7&tMB}pIYALb4Ine>p-X;t^)@?4lr455g& zoETL)+o&_Q0?LHzz4_uBzZ5&_E+}5B`WmD;J?6Sk;f3c-xU3gf0(xpXZQ!8D8KYxk zx$NC!SupoJF{;O>SvhryO;pg;V!w_%useHXWJ)W#T^q}pWA03xCQSsd-`sfavKA^K zCC#|JaY|kcC`XKa!B;`)ttj^-5vhz3!t9`q>s}2gqK*qezPm3osK-l;{Ysbcy_yQ;%Ngajy=X>)b_!S-JNFM&0+eQAIf8p)2Go zd{uUa$HbNWAd**Xl3)RHKls*KaJd3CD9pA=2e}rEn%0Vt7KOlPr~!K+l0+@@JkSZP zFVqlrNys-zK?{nRKw2|G*m0Fjq&`u;FjvFpT;%lHP6{**LkS6tyaui?5XfHEfdcT& zsveet|uFh3*QjJ*^g0gb_r~nAhUbLWX2$_Wc0=e2!v_% z+to>}*b}#$zRFjbU^^fw_kPJHIvRN15aS9%m*{{~REk2gCLC2~)fl=|D-ErMb&5L(CtTM=J88#gN&mPpaCTe&m>pr;bGk8j@9w?3 z=Y5~&`}scag(I#ew2R$kFc^?{sIe8E5xBVLX}JGT8Qg0y81IUW^~XZgFUy^+Wu3*1 z%dfO&3Pojma>1)NTCPlwA36Wg^6^4OdIeRUXaDTG*!e_%Kq>O$aQ9Jml{1r@8zuhZvX=RYcu@1JpfzbHu zg7~=)0a0{z=dF zUIO=Yj>dmkvEQ!U$&{KPeGoak$^3qPijofJBI+GB233?n;4!2We*g9WFVv1Q{FC8& zT3YI7&|8pZlE&j-QPQJteyuUF;|+u?jWfvo|Bt$p1yO6(mCmgPhZsnp&o|dCdfEw( zQah@idG7N)f53{PP=UF$?wuLW(6bo1#!VEqZXVps%`2n#BC3d#+bK%QS+Gkle*@rH z@M*SKii6}fc#aXLH|bFZfkJWVLXVx0IJ>zXIe8t?xXErV(hfY%2| zObcA!Y_xL)m@}vd`D~m+ZUJxd`%n#EWix|!{u172VN4_0dbHgexOIr^R29CLS(>J#mwT&0!`FJsL6WlRNv&Ya7&&tyJVFv4sNsEi z)v}F!Log%o0c?PdnO}>j$@s@5QZ6_Uy<3@v*EUeUZI7}6%NA(77?1jfF6U1{E6MCb zpyL{b&H~s3sB2~uFsg9Kl~&;OCJ=wL{$kzYjooL%y$5QK${nCt$j-0XWf#naG9eqx z+U0s961o!S$QaFn($GxQ7pP9J+<|s{TK|0U z`fm$yX!%J>N>C7~H7k!1w?`B-?Rhj2?xbw`qhYFvsOHH_GI_JcN0wAT} ze0W`=da;LZIov^0~KyRDFaewGhrd)Oz%lRVz+d;QI^9qO_Mh%WxV^Z zHk|piigBiSv$>Ip4eLyHqZ4yZ0L|J2bj#v{?nWkm%2P6CL@^u9zx%`ISy4*HkHu~5 zyzDdef%g9CXq$UR^+b)UL*z2kh-GF#G$Zt|Co`|fnJ343q~uNjEuMKW!HoBW&VHV> zOF)bAHq0?qFy>}VW#f&XWND&cEXI|N)elF{r5}E+fbh7^d literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-6-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-6-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..48585806896ed9c77e7ace453460980850824669 GIT binary patch literal 729 zcmY*XeMl2w9KN+UN_I*~qF2$Gnxc|&-qJ*Cb6YuMvRdD*Y<0}}Z5ZNM)YLlB5l$oM zoW!OWLcd2?&B< z+Di2~SnV)~T`0^ehg-7{WQSX;R-W&Wtj}C){-{S(Gb-h$KV921r4_cbn)X|B{VxX0 zvn}NVJ2AdY$Mp#YIZ;FrTZI^ZZ(PC#aHn+=rB_|QT-7UGLS&xkmSF`EyTDO|ihG@{ z;%tG;)$i);@`2ft;X*ziM_G?a6IWq;BPAm#BCuo^bokNwl9wi@wImI9Zr_gUIM?${ z-@FXt#ZIcEWUZVCgzdtJDIE?Dlx~KsP$30OynNYHh?-`t8KWqDV+2r20p)|`=O9X_ zzy(|Da$;*vI3#ZGk_FiSkVn=;H*4w?@s{KVPdu@?K~Ky;QX#vbA^CsttAdUE!pN|0 zp^78g_5q-hVU+P)jQ8>(JMbRPQgI9O!x`@1{h+`QO5dOCs-##RR$S-qWRm2@u};PT0Ta%iZ5V|&aSVZY@vpHDYO3wfd~8O$jA6j&KBKI9KWb6%-~#K(-%JPJS?^0p)( z9y}u@FEymnC$gYy0gEDDkMYCr>_U~4+>i0bOt6ae%qj9kTZ>r@7lA`$ae7b)Z8nMQ z{FYPz(Q+du$TeUN#v@^UL&v?~OBai`NCV?wpNRM4nRN^Wq}R9m+A0q)kCi~wv=^JV4cB-ok1oaJ=oeK zHKB4xo9DCBAig!P|8mBe;_UhHOd*aT7N-f?Kd(0|)+uBr5Uijc{WCB!K z543bU-@Qpc^-o+dIC&>yMv9#)(D(@p6DR%DHZrl9bHm`=Ttnh<$0p_Er!dd(WfnNxYgfZ^~8sDfq6Rg*iao23|2OLu__L g>5XY-gwQu`TjPnH-)DOE0po(f)78&qol`;+00L>gjsO4v literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-8-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-8-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..fe477929c14c334dd9bf42782b92c8c7f91df88b GIT binary patch literal 527 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfd;8ba4!+V0?S zgMa?>KVv?g>C;k@^XA#J6sDD4f39kKUT8S8+hooOn-FHBU}mHF*9w$At4d9<%yf8m z+eG2>t)<~HFIR<6`XMlLCF9Keiw$R{Pps@n4zBX0( zeCdIzq*R@#q}0FZJiI`^CZ}ZlC1_;OXk; Jvd$@?2>{sG=MMk? literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-9-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-01-set-up-top-shot-collection-p-256-sha-3-256-9-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe3215441a9d287450d2141629891d4b5051124 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfeI*x;TbZFupx_G3a&xgY!Y< z{;&V#*RY#bJm5RF#G=K>_f71_RpOHtFwShhvO%f1>T1Io_gAdqyI!=a$b~T*IWrqA z59d9x$K3motA5EvZcm%JZK9G=6CyJm(k>dD(2-)B*{%dsl&==|xJQ-#kTfT|ZhOyl)m&N$QDI6o!B;n~8IF{+z0Zn!>M zX`=A?-jQk}6PYd^ULbpm)P$cI&y;5_zq(;I4=>P|$v=ALWPa>3znyy=@u4u?Z|wRv}&-pPIz$9rOpiGuTC zFJ_}|wv=^Q4sC5y*;34;CM}|* zSq=%Q#f&pogG7O-?$nw5>>abuEP6OU)8X08vwzfpL9!nh>RyKzB?1FPjkmjPA>&Ma zQyows?#q6*1!zp$8KAq(CxZfAd?wJ{?+icB28N|$TbtuEElHqTcbo7SHG_g_5ztMp zAmQ6U`Fc+WOWA9{;8OEzH!HN-(s_BI?;O6|M_d){efODQ{V zqVV~S{p($F*Grea4NTANf4!^dbD#f)c{8LU{Buk;%v;d-SXgHMgC8ufJA2vs{0nND zz8*On<$vKo)uZLi=fCt+t2!UP(r`wlna9Y)hxdd+v3N?xkIaYco^RqV7MM#-_?emb zJ>95$A>+*FVsf24yv=8vGaa6VbMO9d;$t+Khj;QB-$_5`wpOct)|x4v5~o_cp6`v^ ztcFe15!}-+eP}u}JzFBhZVk}s-I+HgNCM6CimNg@#tP#?(qUSBse8w zMv58G75B3$%q79DaeQXXGUe`Z6NTc_Ft4-c1v2yMn_SpXy_Fgb%+~3zFPMRrY z2GYF@xa3J40WIGucVwGTLm}g3)teXi6cJ?y zgMa?>KVv?g>C;k@^XA#J6sDD4f39kKUT8S8+hooOn-FHBU}mHF*9w$At4d9<%yf8m z+eG2>t)<~HFIR<6`XMlLCF9Keiw$R{Pps@n4zBX0( zeCdIzq*R@#q}0FZJiI`^CZ}ZlC1_;OXk; Jvd$@?2>{sG=MMk? literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-11-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-11-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..dfe3215441a9d287450d2141629891d4b5051124 GIT binary patch literal 612 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfeI*x;TbZFupx_G3a&xgY!Y< z{;&V#*RY#bJm5RF#G=K>_f71_RpOHtFwShhvO%f1>T1Io_gAdqyI!=a$b~T*IWrqA z59d9x$K3motA5EvZcm%JZK9G=6CyJm(k>dD(2-)B*{%dsl&==|xJQ-#kTfT|ZhOyl)m&N$QDI6o!B;n~8IF{+z0Zn!>M zX`=A?-jQk}6PYd^ULbpm)P$cI&y;5_zq(;I4=>P|$v=ALWPa>3znyy=@u4u?Z|wRv}&-pPIz$9rOpiGuTC zFJ_}|wv=^Q4sC5y*;34;CM}|* zSq=%Q#f&pogG7O-?$nw5>>abuEP6OU)8X08vwzfpL9!nh>RyKzB?1FPjkmjPA>&Ma zQyows?#q6*1!zp$8KAq(CxZfAd?wJ{?+icB28N|$TbtuEElHqTcbo7SHG_g_5ztMp zAmQ6U`Fc+WOWA9{;8OEzH!HN-(s_BI?;O6|MP58N? z&68~=|HPfE5+~ivn2~btDljyyfw1|E8?%wg8xtQRYu*zV3f51pJ^}Q6EYN^Rpo8_G zp)%W4;j=sMi5y@c0AncBD3}?9;!~gQHofDUmhmGU=<)s0KmCk?4`0r5NL!qkF#{+v z0q9*|5XSO49|k%reeIlWQWI`Yya^1=!yq5*>;&2UJ>sVy@8mNo!0;&s25j>gUtnx` z0>dZ`=*&DNP_ShJ<@c*Bn8TO-uq12fe%lSYt`0Y+ znckRYhK6=bVw2joKfOSdcX`{}_d7oFO39t@;pIUI^X^2+-^OFnU-frt0RpUe+0rTmOe%#n(lRO$IlbLR3C zkdc#Srr1pbO4}Ik;F>x4Ofav$=^ocKphfqTj7={%96mmw($!(-t~SqSj)zq?+e+nl zOXqkC2W(5_-L@2t?*3roEl;_3so~5iw);+Ok|`M#-Dmz^`k?^21W{l Mr>mdKI;Vst03N8v5&!@I literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-14-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-14-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..d764b119d8ccd0257c70cef19c143e18f8a22d97 GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCnba4!+V0?QpFz>d5fXl(_ zEWiJ;&+F$i?dkJaK)}rN0*I9y@k2p+*+LGE z@(GVz+C+TQcHKL5_k_>?bEnFuB&lBxGMPDT(a9}9@n5MA^MWQk3f7$E<9#tDs%tV( z%qnV!v}B5$*T;aaW|7?@m!F5toBBxA=yI)2jk*#4Nt2m#d5o-QzRY>Jdt#>MtTSIq znGP8T?Qu!l)jzd-f~AMy-OGorrYw{80P61#yQg~ei~Pw6OfzG-QtYC3Hl6A8@izRc zZnVUqP2|L%yoaGimwQ3d?qTaDft=*;S*TFF6X*&Jqxq3Lq-Rb`s@gww^@%;PUCcA5 zJ#u)aaMZI)Z8OlVZW}+W5>eOGo4)9z0?l1bPJMzlm#N6py9?8L?fl zKwt4Mo$)W{VII(j?I{x+*(5<4<|!HPYJKnU%sb_uSC^Wx6yrlaNWi=ak~y(OMBQk& z2s;p4&%DUNp$xKdive$LVhYfX6)Y{85!{zAh%H!t2dvS0_3du=+h=LeL~VtpxQlKKTbRI^5ldjpyBqOACrS*PRyBh#+{`lHL5o? z3xrmCI(C%@O?c$3Ic>kx=7~Q|HP@v*UI$cHqB-FukmAwg1G<;TXvvG95~J`9g|0w% z1Kr4@$p&)|56E@9K>oFo1bR$Wx_s)R@TEJNdsk0VbXEVXI8*Ov|Ky#`$Bef2T6=%g sPVq1V8frCDTR>o1rs=em1kqlG`I1wzKRLVk0b_;1)78&qol`;+03DgS`Tzg` literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-3-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-3-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..2f726e1fd3932e96596df269867b014aa7a50013 GIT binary patch literal 417 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfe9#x;TbZFupx_Fi+Z0z~$ie zBj5hle~_`#R$H`pTcSm~Lr`1jqy9N6j$A2nYDZOyCnim*jMAJiGpI)Cvw`M>pD#{y zPWH3(O#1D{l~U*OOo`QqU(uN><({=l;bf4+Bh@7lDbqy6jlfj*nJJH)(!30p&Pa*t z;?bP2(|U(z;bh_S4s9YQd^9I09-YKAQ)K;9Q^?m0U(kW~BU+oM{%M@cG^YTgjlD{|iM<)RcUfc*YxOq|)c> zDIOb7{PF1Wd={;#mm=r(Oq=P@wQC94xf`~cz0f-9$`v$W(d6bnpqDl;aah*uXs$Wo zW}S2i(E7J$6Ltfw6K8T_*W9N9k`-oLxLD+bj^>1y&l0L9Cry0m;Be!XRL)x7ZP(bM ovzym$J$UUF#N-=M(n!Mb63#uD-S;p52L?TZr>mdKI;Vst04GGO`2YX_ literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-4-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-4-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..862d720b7f216699104e3aee9cff3217e005164f GIT binary patch literal 676 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfe6%x;TbZFupz5=yyAU!R4a$ zwCDfrE5c^+`afNHY(g7DuF`LrkKXz!j?6~>3mIpwmYPr*&TQ0vq2Wxlcl|}z=n0iv zyeBRc>}urU&0jmI;v#qK7bhYAwGW+n-)GH8X>0RL%K%f)5>Ep4tez^)t6z0+bGAcT z)(oi$Go{Q@mazd<@y?W;xm>}S*+^e3?nKA`2`wseam+@|JiPXc8r$Xq;c~F%a3d3i z&mvNFbI$ag0SYJ>1GyWdCj7j6=zU5?1((qYh0p#cE^JVAKJ1+3@JyHS=}Z%a&6gX_ z0ELWAb58K^p2#urF>*evVhp6tyEs_NUOV*if|y_Xwt{{(sePe`{g`=8e0WVRI2^uG z5X#IOZd$V85XhHYgjL-dVyp6Bs=D znGS7jy=*BNH!>WasqunrgrJ)CsqZg=wOlbcnPZ~he0aL4kCA!ikATCwQ|_s5zHDH^ z19Vv1nY&W&wtl)SH9=C!4Ct|d!z!CEHk@fYbEV--DDMd$-e6{<;KQ*g84hXAX<0j> zLA>-eHR6&|Y%_b?b^|SozxE+OO77sP`#_Hy0R3{}Paw0A`Q({Wa&2cWd|1DxW;!su z*;3X`x(RgQm-4kW(|CBB&&Z#=U~uw|OIw>G(AAUA0Nvp#@FJOVNpjo%B+L(^WvXJACt6m}vKbFkSSpK-F3$9wTv<`nfZ{d%-%RTRN z&-;Bo-{-x7Cf6(YHe#Dbqrn}A8jiv<02leV4(_)reN`F__P3+KcKjXf`h0tLNAY%M zo|(S>-(%VS8sqIJ+!y(yjW2{s4gX%-x7&tMB}pIYALb4Ine>p-X;t^)@?4lr455g& zoETL)+o&_Q0?LHzz4_uBzZ5&_E+}5B`WmD;J?6Sk;f3c-xU3gf0(xpXZQ!8D8KYxk zx$NC!SupoJF{;O>SvhryO;pg;V!w_%useHXWJ)W#T^q}pWA03xCQSsd-`sfavKA^K zCC#|JaY|kcC`XKa!B;`)ttj^-5vhz3!t9`q>s}2gqK*qezPm3osK-l;{Ysbcy_yQ;%Ngajy=X>)b_!S-JNFM&0+eQAIf8p)2Go zd{uUa$HbNWAd**Xl3)RHKls*KaJd3CD9pA=2e}rEn%0Vt7KOlPr~!K+l0+@@JkSZP zFVqlrNys-zK?{nRKw2|G*m0Fjq&`u;FjvFpT;%lHP6{**LkS6tyaui?5XfHEfdcT& zsveet|uFh3*QjJ*^g0gb_r~nAhUbLWX2$_Wc0=e2!v_% z+to>}*b}#$zRFjbU^^fw_kPJHIvRN15aS9%m*{{~REk2gCLC2~)fl=|D-ErMb&5L(CtTM=J88#gN&mPpaCTe&m>pr;bGk8j@9w?3 z=Y5~&`}scag(I#ew2R$kFc^?{sIe8E5xBVLX}JGT8Qg0y81IUW^~XZgFUy^+Wu3*1 z%dfO&3Pojma>1)NTCPlwA36Wg^6^4OdIeRUXaDTG*!e_%Kq>O$aQ9Jml{1r@8zuhZvX=RYcu@1JpfzbHu zg7~=)0a0{z=dF zUIO=Yj>dmkvEQ!U$&{KPeGoak$^3qPijofJBI+GB233?n;4!2We*g9WFVv1Q{FC8& zT3YI7&|8pZlE&j-QPQJteyuUF;|+u?jWfvo|Bt$p1yO6(mCmgPhZsnp&o|dCdfEw( zQah@idG7N)f53{PP=UF$?wuLW(6bo1#!VEqZXVps%`2n#BC3d#+bK%QS+Gkle*@rH z@M*SKii6}fc#aXLH|bFZfkJWVLXVx0IJ>zXIe8t?xXErV(hfY%2| zObcA!Y_xL)m@}vd`D~m+ZUJxd`%n#EWix|!{u172VN4_0dbHgexOIr^R29CLS(>J#mwT&0!`FJsL6WlRNv&Ya7&&tyJVFv4sNsEi z)v}F!Log%o0c?PdnO}>j$@s@5QZ6_Uy<3@v*EUeUZI7}6%NA(77?1jfF6U1{E6MCb zpyL{b&H~s3sB2~uFsg9Kl~&;OCJ=wL{$kzYjooL%y$5QK${nCt$j-0XWf#naG9eqx z+U0s961o!S$QaFn($GxQ7pP9J+<|s{TK|0U z`fm$yX!%J>N>C7~H7k!1w?`B-?Rhj2?xbw`qhYFvsOHH_GI_JcN0wAT} ze0W`=da;LZIov^0~KyRDFaewGhrd)Oz%lRVz+d;QI^9qO_Mh%WxV^Z zHk|piigBiSv$>Ip4eLyHqZ4yZ0L|J2bj#v{?nWkm%2P6CL@^u9zx%`ISy4*HkHu~5 zyzDdef%g9CXq$UR^+b)UL*z2kh-GF#G$Zt|Co`|fnJ343q~uNjEuMKW!HoBW&VHV> zOF)bAHq0?qFy>}VW#f&XWND&cEXI|N)elF{r5}E+fbh7^d literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-8-snap.png b/tests_zemu/tests/__image_snapshots__/transactions-spec-js-staking-transactions-sign-transaction-ts-02-transfer-top-shot-moment-p-256-sha-3-256-8-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..48585806896ed9c77e7ace453460980850824669 GIT binary patch literal 729 zcmY*XeMl2w9KN+UN_I*~qF2$Gnxc|&-qJ*Cb6YuMvRdD*Y<0}}Z5ZNM)YLlB5l$oM zoW!OWLcd2?&B< z+Di2~SnV)~T`0^ehg-7{WQSX;R-W&Wtj}C){-{S(Gb-h$KV921r4_cbn)X|B{VxX0 zvn}NVJ2AdY$Mp#YIZ;FrTZI^ZZ(PC#aHn+=rB_|QT-7UGLS&xkmSF`EyTDO|ihG@{ z;%tG;)$i);@`2ft;X*ziM_G?a6IWq;BPAm#BCuo^bokNwl9wi@wImI9Zr_gUIM?${ z-@FXt#ZIcEWUZVCgzdtJDIE?Dlx~KsP$30OynNYHh?-`t8KWqDV+2r20p)|`=O9X_ zzy(|Da$;*vI3#ZGk_FiSkVn=;H*4w?@s{KVPdu@?K~Ky;QX#vbA^CsttAdUE!pN|0 zp^78g_5q-hVU+P)jQ8>(JMbRPQgI9O!x`@1{h+`QO5dOCs-##RR$S-qWRm2@u};PT0Ta%iZ5V|&aSVZY@vpHDYO3wfd~8O$jA6j&KBKI9KWb6%-~#K(-%JPJS?^0p)( z9y}u@FEymnC$gYy0gEDDkMYCr>_U~4+>i0bOt6ae%qj9kTZ>r@7lA`$ae7b)Z8nMQ z{FYPz(Q+du$TeUN#v@^UL&v?~OBai`NCV?wpNRM4nRN^Wq}R9m+A0q)kCi~wv=^JV4cB-ok1oaJ=oeK zHKB4xo9DCBAig!P|8mBe;_UhHOd*aT7N-f?Kd(0|)+uBr5Uijc{WCB!K z543bU-@Qpc^-o+dIC&>yMv9#)(D(@p6DR%DHZrl9bHm`=Ttnh<$0p_Er!dd(WfnNxYgfZ^~8sDfq6Rg*iao23|2OLu__L g>5XY-gwQu`TjPnH-)DOE0po(f)78&qol`;+00L>gjsO4v literal 0 HcmV?d00001 From 1a433d45be297d20092fe5fb893fffbaec34cdc4 Mon Sep 17 00:00:00 2001 From: Robert Lukotka Date: Tue, 10 Aug 2021 13:16:36 +0200 Subject: [PATCH 03/10] JS integration tests --- README.md | 8 +- js/README.md | 11 +- js/package.json | 10 +- js/test/transactions.spec.js | 165 + js/yarn.lock | 6103 +++++++++++-------------- tests_zemu/tests/transactions.spec.js | 7 +- 6 files changed, 2787 insertions(+), 3517 deletions(-) create mode 100644 js/test/transactions.spec.js diff --git a/README.md b/README.md index 458ecc20..3f9bc732 100644 --- a/README.md +++ b/README.md @@ -143,7 +143,7 @@ To run a single specific test: > At the moment, the recommendation is to run from the IDE. Remember to run `make` if you change the app. -## Using a real device +## Using a real device for integration tests ### How to prepare your DEVELOPMENT! device: @@ -190,6 +190,12 @@ Many of our integration tests expect the device to be configured with a known te - Run `make dev_ca`. The device will receive a development certificate to avoid constant manual confirmations. +## Using a real device for a single test + +- Use `make clean`, `make`, and `make load` to load the app to the ledger device. +- Make adjustments in `js/test/transactions.spec.js` if needed +- Run `yarn test` in the `js` folder. + ### Loading the app The Makefile will build the firmware in a docker container and leave the binary in the correct directory. diff --git a/js/README.md b/js/README.md index 37b00134..ef744211 100644 --- a/js/README.md +++ b/js/README.md @@ -35,6 +35,15 @@ if (response.returnCode !== FlowApp.ERROR_CODE.NoError) { } ``` +## Tests running on ledger device + +This folder's test folder contains tests to run on ledger device. The aim of the testing code is: +- To verify that the app works on the ledger device. +- Testing in the early stages of feature development (this is, in some cases, easier done with ledger than with Zemu). +To attain this, we provide only some very basic tests (it does not make sense to have two parallel full scale integration tests). In development you should be able to easily modify the tests to suit your needs. + +To use the tests you first need to deploy the app to the ledger (with up to date firmware). As of now, you have to use non-containerized build (container's SDK is not up to date ATM). Then run `yarn test`. + ## Acknowledgements -Developed by [Zondax GmbH](https://zondax.ch/). +Developed by [Zondax GmbH](https://zondax.ch/) and [Vacuumlabs](https://vacuumlabs.com/). diff --git a/js/package.json b/js/package.json index 8b0d065c..d0645e7d 100644 --- a/js/package.json +++ b/js/package.json @@ -34,24 +34,28 @@ "@babel/node": "^7.10.5", "@babel/plugin-transform-runtime": "^7.10.5", "@babel/preset-env": "^7.10.4", - "@ledgerhq/hw-transport-node-hid": "^5.19.1", + "@ledgerhq/hw-transport-node-hid": "^6.3.0", "babel-eslint": "^10.1.0", "babel-jest": "^26.1.0", "bip32": "^2.0.5", "bip39": "^3.0.2", + "chai": "^4.3.4", "core-js": "^3.6.5", "crypto-js": "4.0.0", + "elliptic": "^6.5.4", "eslint": "^7.4.0", "eslint-config-airbnb-base": "^14.2.0", "eslint-plugin-import": "^2.22.0", "index.js": "^0.0.3", - "jest": "^26.1.0", + "jest": "^27.0.6", "jest-serial-runner": "^1.1.0", + "jssha": "^3.2.0", "prettier": "^2.0.5", "secp256k1": "^4.0.1" }, "scripts": { - "build": "babel src --copy-files --out-dir dist" + "build": "babel src --copy-files --out-dir dist", + "test": "jest" }, "moduleDirectories": [ "node_modules", diff --git a/js/test/transactions.spec.js b/js/test/transactions.spec.js new file mode 100644 index 00000000..236e8eed --- /dev/null +++ b/js/test/transactions.spec.js @@ -0,0 +1,165 @@ +/** ****************************************************************************** + * (c) 2020 Zondax GmbH + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + ******************************************************************************* */ + +import FlowApp from "../src"; +import TransportNodeHid from "@ledgerhq/hw-transport-node-hid"; +import chai, { expect } from "chai" +import jsSHA from "jssha"; +import {ec as EC} from "elliptic"; +import fs from "fs"; + +jest.setTimeout(1000000); + +const CHAIN_ID_PAGE_COUNT = 1; +const REF_BLOCK_PAGE_COUNT = 2; +const GAS_LIMIT_PAGE_COUNT = 1; +const PROP_KEY_ADDRESS_PAGE_COUNT = 1; +const PROP_KEY_ID_PAGE_COUNT = 1; +const PROP_KEY_SEQNUM_PAGE_COUNT = 1; +const PAYER_PAGE_COUNT = 1; +const AUTHORIZER_PAGE_COUNT = 1; +const ACCEPT_PAGE_COUNT = 1; + +const PAGE_SIZE = 34; + +function getArgumentPageCount(arg) { + if (arg.type == "Array") { + return getArgumentsPageCount(arg.value); + } + + if (arg.type == "String") { + const count = Math.ceil(arg.value.length / PAGE_SIZE); + return count; + } + + if (arg.type == "Optional" && arg.value != null) { + return getArgumentPageCount(arg.value); + } + + return 1; +} + +function getArgumentsPageCount(args) { + return args.reduce((count, arg) => count + getArgumentPageCount(arg), 0); +} + +function getTransactionPageCount(tx) { + return ( + CHAIN_ID_PAGE_COUNT + + REF_BLOCK_PAGE_COUNT + + getArgumentsPageCount(tx.arguments) + + GAS_LIMIT_PAGE_COUNT + + PROP_KEY_ADDRESS_PAGE_COUNT + + PROP_KEY_ID_PAGE_COUNT + + PROP_KEY_SEQNUM_PAGE_COUNT + + PAYER_PAGE_COUNT + + (AUTHORIZER_PAGE_COUNT * tx.authorizers.length) + + ACCEPT_PAGE_COUNT + ); +} + +function getKeyPath(sigAlgo, hashAlgo) { + const scheme = sigAlgo | hashAlgo; + const path = `m/44'/539'/${scheme}'/0/0`; + return path; +} + +async function transactionTest(txHexBlob, txExpectedPageCount, sigAlgo, hashAlgo) { + + const transport = await TransportNodeHid.create(); + + const app = new FlowApp(transport); + + + const txBlob = Buffer.from(txHexBlob, "hex"); + + const path = getKeyPath(sigAlgo.code, hashAlgo.code); + + const pkResponse = await app.getAddressAndPubKey(path); + expect(pkResponse.returnCode).equal(0x9000); + expect(pkResponse.errorMessage).equal("No errors"); + + let resp = await app.sign(path, txBlob); + + expect(resp.returnCode).equal(0x9000); + expect(resp.errorMessage).equal("No errors"); + + // Prepare digest by hashing transaction + let tag = Buffer.alloc(32); + tag.write("FLOW-V0.0-transaction"); + + const hasher = new jsSHA(hashAlgo.name, "UINT8ARRAY"); + + hasher.update(tag); + hasher.update(txBlob); + + const digest = hasher.getHash("HEX"); + + // Verify transaction signature against the digest + const ec = new EC(sigAlgo.name); + const sig = resp.signatureDER.toString("hex"); + const pk = pkResponse.publicKey.toString("hex"); + + const signatureOk = ec.verify(digest, sig, pk, 'hex'); + expect(signatureOk).equal(true); + + await transport.close(); +} + +const ECDSA_SECP256K1 = { name: "secp256k1", code: FlowApp.Signature.SECP256K1 }; +const ECDSA_P256 = { name: "p256", code: FlowApp.Signature.P256 }; + +const SHA2_256 = { name: "SHA-256", code: FlowApp.Hash.SHA2_256}; +const SHA3_256 = { name: "SHA3-256", code: FlowApp.Hash.SHA3_256}; + +const sigAlgos = [ECDSA_SECP256K1, ECDSA_P256]; +const hashAlgos = [SHA2_256, SHA3_256]; + +describe("Staking transactions", () => { + const transactions = JSON.parse(fs.readFileSync("../tests/testvectors/manifestEnvelopeCases.json")); + + //set of encodedTransactionEnvelope to test + const to_test = new Set([ + "f9029ef9029ab90226696d706f727420466c6f7749445461626c655374616b696e672066726f6d203078383632346235326639646463643034610a0a7472616e73616374696f6e286e6577416464726573733a20537472696e6729207b0a0a202020202f2f204c6f63616c207661726961626c6520666f722061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020206c6574207374616b65725265663a2026466c6f7749445461626c655374616b696e672e4e6f64655374616b65720a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020202020202073656c662e7374616b6572526566203d20616363742e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f207374616b696e672061646d696e22290a202020207d0a0a2020202065786563757465207b0a0a202020202020202073656c662e7374616b65725265662e7570646174654e6574776f726b696e6741646472657373286e657741646472657373290a0a202020207d0a7df0af7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", + "f90343f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" + ]); + + transactions + .filter((tx) => to_test.has(tx.encodedTransactionEnvelopeHex)) + .forEach((tx) => { + test(`sign transaction (${tx.title}) - ${ECDSA_P256.name} / ${SHA3_256.name}`, async () => { + const txExpectedPageCount = getTransactionPageCount(tx.envelopeMessage); + + await transactionTest( + tx.encodedTransactionEnvelopeHex, + txExpectedPageCount, + ECDSA_P256, + SHA3_256, + ); + }); + }, 100000); +}); + +describe("Show address", () => { + test("Test", async () => { + const transport = await TransportNodeHid.create(); + const app = new FlowApp(transport); + const res = await app.showAddressAndPubKey("m/44\'/539\'/512\'/0/0") + console.log(res) + }) +}) + + diff --git a/js/yarn.lock b/js/yarn.lock index 61febaa4..f16749a3 100644 --- a/js/yarn.lock +++ b/js/yarn.lock @@ -3,586 +3,432 @@ "@babel/cli@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.10.5.tgz#57df2987c8cf89d0fc7d4b157ec59d7619f1b77a" - integrity sha512-j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA== + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.15.4.tgz#00e21e192b738dec7900c8bb36270e377217c0a4" + integrity sha512-9RhhQ7tgKRcSO/jI3rNLxalLSk30cHqeM8bb+nGOJTyYBDpkoXw/A9QHZ2SYjlslAt4tr90pZQGIEobwWHSIDw== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" fs-readdir-recursive "^1.1.0" glob "^7.0.0" - lodash "^4.17.19" make-dir "^2.1.0" slash "^2.0.0" source-map "^0.5.0" optionalDependencies: - chokidar "^2.1.8" + "@nicolo-ribaudo/chokidar-2" "2.1.8-no-fsevents.2" + chokidar "^3.4.0" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" - integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== - dependencies: - "@babel/highlight" "^7.8.3" - -"@babel/code-frame@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" - integrity sha512-vG6SvB6oYEhvgisZNFRmRCUkLz11c7rp+tbNTynGqc6mS1d5ATd/sGyV6W0KZZnXRKMTzZDRgQT3Ou9jhpAfUg== +"@babel/code-frame@7.12.11": + version "7.12.11" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" + integrity sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw== dependencies: "@babel/highlight" "^7.10.4" -"@babel/compat-data@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.10.4.tgz#706a6484ee6f910b719b696a9194f8da7d7ac241" - integrity sha512-t+rjExOrSVvjQQXNp5zAIYDp00KjdvGl/TpDX5REPr0S9IAIPQMTilcfG6q8c0QFmj9lSTVySV2VTsyggvtNIw== - dependencies: - browserslist "^4.12.0" - invariant "^2.2.4" - semver "^5.5.0" - -"@babel/core@^7.1.0", "@babel/core@^7.7.5": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" - integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.0" - "@babel/helper-module-transforms" "^7.9.0" - "@babel/helpers" "^7.9.0" - "@babel/parser" "^7.9.0" - "@babel/template" "^7.8.6" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.1" - json5 "^2.1.2" - lodash "^4.17.13" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/core@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.10.5.tgz#1f15e2cca8ad9a1d78a38ddba612f5e7cdbbd330" - integrity sha512-O34LQooYVDXPl7QWCdW9p4NR+QlzOr7xShPPJz8GsuCU3/8ua/wqTr7gmnxXv+WBESiGU/G5s16i6tUvHkNb+w== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.5" - "@babel/helper-module-transforms" "^7.10.5" - "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.10.5" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.5" - "@babel/types" "^7.10.5" +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.14.5.tgz#23b08d740e83f49c5e59945fbf1b43e80bbf4edb" + integrity sha512-9pzDqyc6OLDaqe+zbACgFkb6fKMNG6CObKpnYXChRsvYGyEdc7CA2BaqeOM+vOtCS5ndmJicPJhKAwYRI6UfFw== + dependencies: + "@babel/highlight" "^7.14.5" + +"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.14.7", "@babel/compat-data@^7.15.0": + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.15.0.tgz#2dbaf8b85334796cafbb0f5793a90a2fc010b176" + integrity sha512-0NqAC1IJE0S0+lL1SWFMxMkz1pKCNCjI4tr2Zx4LJSXxCLAdr6KyArnY+sno5m3yH9g737ygOyPABDsnXkpxiA== + +"@babel/core@^7.1.0", "@babel/core@^7.10.5", "@babel/core@^7.7.2", "@babel/core@^7.7.5": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.15.4.tgz#a70d06c58ae1fce39c23f8efd79f9d5eb8b2f397" + integrity sha512-Lkcv9I4a8bgUI8LJOLM6IKv6hnz1KOju6KM1lceqVMKlKKqNRopYd2Pc9MgIurqvMJ6BooemrnJz8jlIiQIpsA== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.4" + "@babel/helper-compilation-targets" "^7.15.4" + "@babel/helper-module-transforms" "^7.15.4" + "@babel/helpers" "^7.15.4" + "@babel/parser" "^7.15.4" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" convert-source-map "^1.7.0" debug "^4.1.0" - gensync "^1.0.0-beta.1" + gensync "^1.0.0-beta.2" json5 "^2.1.2" - lodash "^4.17.19" - resolve "^1.3.2" - semver "^5.4.1" - source-map "^0.5.0" - -"@babel/generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.4.tgz#e49eeed9fe114b62fa5b181856a43a5e32f5f243" - integrity sha512-toLIHUIAgcQygFZRAQcsLQV3CBuX6yOIru1kJk/qqqvcRmZrYe6WavZTSG+bB8MxhnL9YPf+pKQfuiP161q7ng== - dependencies: - "@babel/types" "^7.10.4" - jsesc "^2.5.1" - lodash "^4.17.13" - source-map "^0.5.0" - -"@babel/generator@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz#1b903554bc8c583ee8d25f1e8969732e6b829a69" - integrity sha512-3vXxr3FEW7E7lJZiWQ3bM4+v/Vyr9C+hpolQ8BGFr9Y8Ri2tFLWTixmwKBafDujO1WVah4fhZBeU1bieKdghig== - dependencies: - "@babel/types" "^7.10.5" - jsesc "^2.5.1" + semver "^6.3.0" source-map "^0.5.0" -"@babel/generator@^7.4.0", "@babel/generator@^7.9.0", "@babel/generator@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9" - integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== +"@babel/generator@^7.15.4", "@babel/generator@^7.7.2": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.15.4.tgz#85acb159a267ca6324f9793986991ee2022a05b0" + integrity sha512-d3itta0tu+UayjEORPNz6e1T3FtvWlP5N4V5M+lhp/CxT4oAA7/NcScnpRyspUMLK6tu9MNHmQHxRykuN2R7hw== dependencies: - "@babel/types" "^7.9.5" + "@babel/types" "^7.15.4" jsesc "^2.5.1" - lodash "^4.17.13" source-map "^0.5.0" -"@babel/helper-annotate-as-pure@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz#5bf0d495a3f757ac3bda48b5bf3b3ba309c72ba3" - integrity sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-annotate-as-pure@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" - integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz#bb0b75f31bf98cbf9ff143c1ae578b87274ae1a3" - integrity sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-compilation-targets@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.4.tgz#804ae8e3f04376607cc791b9d47d540276332bd2" - integrity sha512-a3rYhlsGV0UHNDvrtOXBg8/OpfV0OKTkxKPzIplS1zpx7CygDcWWxckxZeDd3gzPzC4kUT0A4nVFDK0wGMh4MQ== - dependencies: - "@babel/compat-data" "^7.10.4" - browserslist "^4.12.0" - invariant "^2.2.4" - levenary "^1.1.1" - semver "^5.5.0" - -"@babel/helper-create-class-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.4.tgz#2d4015d0136bd314103a70d84a7183e4b344a355" - integrity sha512-9raUiOsXPxzzLjCXeosApJItoMnX3uyT4QdM2UldffuGApNrF8e938MwNpDCK9CPoyxrEoCgT+hObJc3mZa6lQ== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-member-expression-to-functions" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - -"@babel/helper-create-regexp-features-plugin@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.10.4.tgz#fdd60d88524659a0b6959c0579925e425714f3b8" - integrity sha512-2/hu58IEPKeoLF45DBwx3XFqsbCXmkdAay4spVr2x0jYgRxrSNp+ePwvSsy9g6YSaNDcKIQVPXk1Ov8S2edk2g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-regex" "^7.10.4" - regexpu-core "^4.7.0" - -"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" - integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.8.3" - "@babel/helper-regex" "^7.8.3" - regexpu-core "^4.7.0" - -"@babel/helper-define-map@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.10.4.tgz#f037ad794264f729eda1889f4ee210b870999092" - integrity sha512-nIij0oKErfCnLUCWaCaHW0Bmtl2RO9cN7+u2QT8yqTywgALKlyUVOvHDElh+b5DwVC6YB1FOYFOTWcN/+41EDA== - dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/types" "^7.10.4" - lodash "^4.17.13" - -"@babel/helper-explode-assignable-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.10.4.tgz#40a1cd917bff1288f699a94a75b37a1a2dbd8c7c" - integrity sha512-4K71RyRQNPRrR85sr5QY4X3VwG4wtVoXZB9+L3r1Gp38DhELyHCtovqydRi7c1Ovb17eRGiQ/FD5s8JdU0Uy5A== - dependencies: - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz#d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a" - integrity sha512-YdaSyz1n8gY44EmN7x44zBn9zQ1Ry2Y+3GTA+3vH6Mizke1Vw0aWDM66FOYEPw8//qKkmqOckrGgTYa+6sceqQ== - dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-function-name@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" - integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== - dependencies: - "@babel/helper-get-function-arity" "^7.8.3" - "@babel/template" "^7.8.3" - "@babel/types" "^7.9.5" - -"@babel/helper-get-function-arity@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz#98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2" - integrity sha512-EkN3YDB+SRDgiIUnNgcmiD361ti+AVbL3f3Henf6dqqUyr5dMsorno0lJWJuLhDhkI5sYEpgj6y9kB8AOU1I2A== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-get-function-arity@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" - integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== +"@babel/helper-annotate-as-pure@^7.14.5", "@babel/helper-annotate-as-pure@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.15.4.tgz#3d0e43b00c5e49fdb6c57e421601a7a658d5f835" + integrity sha512-QwrtdNvUNsPCj2lfNQacsGSQvGX8ee1ttrBrcozUP2Sv/jylewBP/8QFe6ZkBsC8T/GYWonNAWJV4aRR9AL2DA== dependencies: - "@babel/types" "^7.8.3" + "@babel/types" "^7.15.4" -"@babel/helper-hoist-variables@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz#d49b001d1d5a68ca5e6604dda01a6297f7c9381e" - integrity sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA== +"@babel/helper-builder-binary-assignment-operator-visitor@^7.14.5": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.15.4.tgz#21ad815f609b84ee0e3058676c33cf6d1670525f" + integrity sha512-P8o7JP2Mzi0SdC6eWr1zF+AEYvrsZa7GSY1lTayjF5XJhVH0kjLYUZPvTMflP7tBgZoe9gIhTa60QwFpqh/E0Q== dependencies: - "@babel/types" "^7.10.4" + "@babel/helper-explode-assignable-expression" "^7.15.4" + "@babel/types" "^7.15.4" -"@babel/helper-member-expression-to-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.10.4.tgz#7cd04b57dfcf82fce9aeae7d4e4452fa31b8c7c4" - integrity sha512-m5j85pK/KZhuSdM/8cHUABQTAslV47OjfIB9Cc7P+PvlAoBzdb79BGNfw8RhT5Mq3p+xGd0ZfAKixbrUZx0C7A== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-member-expression-to-functions@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" - integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-imports@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.10.4.tgz#4c5c54be04bd31670a7382797d75b9fa2e5b5620" - integrity sha512-nEQJHqYavI217oD9+s5MUBzk6x1IlvoS9WTPfgG43CbMEeStE0v+r+TucWdx8KFGowPGvyOkDT9+7DHedIDnVw== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-module-imports@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" - integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-module-transforms@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.4.tgz#ca1f01fdb84e48c24d7506bb818c961f1da8805d" - integrity sha512-Er2FQX0oa3nV7eM1o0tNCTx7izmQtwAQsIiaLRWtavAAEcskb0XJ5OjJbVrYXWOTr8om921Scabn4/tzlx7j1Q== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - lodash "^4.17.13" - -"@babel/helper-module-transforms@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.10.5.tgz#120c271c0b3353673fcdfd8c053db3c544a260d6" - integrity sha512-4P+CWMJ6/j1W915ITJaUkadLObmCRRSC234uctJfn/vHrsLNxsR8dwlcXv9ZhJWzl77awf+mWXSZEKt5t0OnlA== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.5" - lodash "^4.17.19" - -"@babel/helper-module-transforms@^7.9.0": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" - integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== - dependencies: - "@babel/helper-module-imports" "^7.8.3" - "@babel/helper-replace-supers" "^7.8.6" - "@babel/helper-simple-access" "^7.8.3" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/template" "^7.8.6" - "@babel/types" "^7.9.0" - lodash "^4.17.13" - -"@babel/helper-optimise-call-expression@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.10.4.tgz#50dc96413d594f995a77905905b05893cd779673" - integrity sha512-n3UGKY4VXwXThEiKrgRAoVPBMqeoPgHVqiHZOanAJCG9nQUL2pLRQirUzl0ioKclHGpGqRgIOkgcIJaIWLpygg== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-optimise-call-expression@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" - integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== +"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.14.5", "@babel/helper-compilation-targets@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.15.4.tgz#cf6d94f30fbefc139123e27dd6b02f65aeedb7b9" + integrity sha512-rMWPCirulnPSe4d+gwdWXLfAXTTBj8M3guAf5xFQJ0nvFY7tfNAFnWdqaHegHlgDZOCT4qvhF3BYlSJag8yhqQ== dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" - integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== - -"@babel/helper-plugin-utils@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz#2f75a831269d4f677de49986dff59927533cf375" - integrity sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg== - -"@babel/helper-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.10.4.tgz#59b373daaf3458e5747dece71bbaf45f9676af6d" - integrity sha512-inWpnHGgtg5NOF0eyHlC0/74/VkdRITY9dtTpB2PrxKKn+AkVMRiZz/Adrx+Ssg+MLDesi2zohBW6MVq6b4pOQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-regex@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" - integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== - dependencies: - lodash "^4.17.13" - -"@babel/helper-remap-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.10.4.tgz#fce8bea4e9690bbe923056ded21e54b4e8b68ed5" - integrity sha512-86Lsr6NNw3qTNl+TBcF1oRZMaVzJtbWTyTko+CQL/tvNvcGYEFKbLXDPxtW0HKk3McNOk4KzY55itGWCAGK5tg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-wrap-function" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-replace-supers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.10.4.tgz#d585cd9388ea06e6031e4cd44b6713cbead9e6cf" - integrity sha512-sPxZfFXocEymYTdVK1UNmFPBN+Hv5mJkLPsYWwGBxZAxaWfFu+xqp7b6qWD0yjNuNL2VKc6L5M18tOXUP7NU0A== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-replace-supers@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" - integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.8.3" - "@babel/helper-optimise-call-expression" "^7.8.3" - "@babel/traverse" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/helper-simple-access@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.10.4.tgz#0f5ccda2945277a2a7a2d3a821e15395edcf3461" - integrity sha512-0fMy72ej/VEvF8ULmX6yb5MtHG4uH4Dbd6I/aHDb/JVg0bbivwt9Wg+h3uMvX+QSFtwr5MeItvazbrc4jtRAXw== - dependencies: - "@babel/template" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/helper-simple-access@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" - integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== - dependencies: - "@babel/template" "^7.8.3" - "@babel/types" "^7.8.3" - -"@babel/helper-split-export-declaration@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz#2c70576eaa3b5609b24cb99db2888cc3fc4251d1" - integrity sha512-pySBTeoUff56fL5CBU2hWm9TesA4r/rOkI9DyJLvvgz09MB9YtfIYe3iBriVaYNaPe+Alua0vBIOVOLs2buWhg== - dependencies: - "@babel/types" "^7.10.4" - -"@babel/helper-split-export-declaration@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" - integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== - dependencies: - "@babel/types" "^7.8.3" - -"@babel/helper-validator-identifier@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz#a78c7a7251e01f616512d31b10adcf52ada5e0d2" - integrity sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw== - -"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" - integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== + "@babel/compat-data" "^7.15.0" + "@babel/helper-validator-option" "^7.14.5" + browserslist "^4.16.6" + semver "^6.3.0" -"@babel/helper-wrap-function@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.10.4.tgz#8a6f701eab0ff39f765b5a1cfef409990e624b87" - integrity sha512-6py45WvEF0MhiLrdxtRjKjufwLL1/ob2qDJgg5JgNdojBAZSAKnAjkyOCNug6n+OBl4VW76XjvgSFTdaMcW0Ug== +"@babel/helper-create-class-features-plugin@^7.14.5", "@babel/helper-create-class-features-plugin@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.15.4.tgz#7f977c17bd12a5fba363cb19bea090394bf37d2e" + integrity sha512-7ZmzFi+DwJx6A7mHRwbuucEYpyBwmh2Ca0RvI6z2+WLZYCqV0JOaLb+u0zbtmDicebgKBZgqbYfLaKNqSgv5Pw== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.15.4" + "@babel/helper-function-name" "^7.15.4" + "@babel/helper-member-expression-to-functions" "^7.15.4" + "@babel/helper-optimise-call-expression" "^7.15.4" + "@babel/helper-replace-supers" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" -"@babel/helpers@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.10.4.tgz#2abeb0d721aff7c0a97376b9e1f6f65d7a475044" - integrity sha512-L2gX/XeUONeEbI78dXSrJzGdz4GQ+ZTA/aazfUsFaWjSe95kiCuOZ5HsXvkiw3iwF+mFHSRUfJU8t6YavocdXA== +"@babel/helper-create-regexp-features-plugin@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.14.5.tgz#c7d5ac5e9cf621c26057722fb7a8a4c5889358c4" + integrity sha512-TLawwqpOErY2HhWbGJ2nZT5wSkR192QpN+nBg1THfBfftrlvOh+WbhrxXCH4q4xJ9Gl16BGPR/48JA+Ryiho/A== dependencies: - "@babel/template" "^7.10.4" - "@babel/traverse" "^7.10.4" - "@babel/types" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.14.5" + regexpu-core "^4.7.1" -"@babel/helpers@^7.9.0": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" - integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== - dependencies: - "@babel/template" "^7.8.3" - "@babel/traverse" "^7.9.0" - "@babel/types" "^7.9.0" - -"@babel/highlight@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz#7d1bdfd65753538fabe6c38596cdb76d9ac60143" - integrity sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/highlight@^7.8.3": - version "7.9.0" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" - integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== +"@babel/helper-define-polyfill-provider@^0.2.2": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.2.3.tgz#0525edec5094653a282688d34d846e4c75e9c0b6" + integrity sha512-RH3QDAfRMzj7+0Nqu5oqgO5q9mFtQEVvCRsi8qCEfzLR9p2BHfn5FzhSB2oj1fF7I2+DcTORkYaQ6aTR9Cofew== dependencies: - "@babel/helper-validator-identifier" "^7.9.0" + "@babel/helper-compilation-targets" "^7.13.0" + "@babel/helper-module-imports" "^7.12.13" + "@babel/helper-plugin-utils" "^7.13.0" + "@babel/traverse" "^7.13.0" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + semver "^6.1.2" + +"@babel/helper-explode-assignable-expression@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.15.4.tgz#f9aec9d219f271eaf92b9f561598ca6b2682600c" + integrity sha512-J14f/vq8+hdC2KoWLIQSsGrC9EFBKE4NFts8pfMpymfApds+fPqR30AOUWc4tyr56h9l/GA1Sxv2q3dLZWbQ/g== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-function-name@^7.14.5", "@babel/helper-function-name@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.15.4.tgz#845744dafc4381a4a5fb6afa6c3d36f98a787ebc" + integrity sha512-Z91cOMM4DseLIGOnog+Z8OI6YseR9bua+HpvLAQ2XayUGU+neTtX+97caALaLdyu53I/fjhbeCnWnRH1O3jFOw== + dependencies: + "@babel/helper-get-function-arity" "^7.15.4" + "@babel/template" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/helper-get-function-arity@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.15.4.tgz#098818934a137fce78b536a3e015864be1e2879b" + integrity sha512-1/AlxSF92CmGZzHnC515hm4SirTxtpDnLEJ0UyEMgTMZN+6bxXKg04dKhiRx5Enel+SUA1G1t5Ed/yQia0efrA== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-hoist-variables@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.15.4.tgz#09993a3259c0e918f99d104261dfdfc033f178df" + integrity sha512-VTy085egb3jUGVK9ycIxQiPbquesq0HUQ+tPO0uv5mPEBZipk+5FkRKiWq5apuyTE9FUrjENB0rCf8y+n+UuhA== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-member-expression-to-functions@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.15.4.tgz#bfd34dc9bba9824a4658b0317ec2fd571a51e6ef" + integrity sha512-cokOMkxC/BTyNP1AlY25HuBWM32iCEsLPI4BHDpJCHHm1FU2E7dKWWIXJgQgSFiu4lp8q3bL1BIKwqkSUviqtA== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.14.5", "@babel/helper-module-imports@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.15.4.tgz#e18007d230632dea19b47853b984476e7b4e103f" + integrity sha512-jeAHZbzUwdW/xHgHQ3QmWR4Jg6j15q4w/gCfwZvtqOxoo5DKtLHk8Bsf4c5RZRC7NmLEs+ohkdq8jFefuvIxAA== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-module-transforms@^7.14.5", "@babel/helper-module-transforms@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.15.4.tgz#962cc629a7f7f9a082dd62d0307fa75fe8788d7c" + integrity sha512-9fHHSGE9zTC++KuXLZcB5FKgvlV83Ox+NLUmQTawovwlJ85+QMhk1CnVk406CQVj97LaWod6KVjl2Sfgw9Aktw== + dependencies: + "@babel/helper-module-imports" "^7.15.4" + "@babel/helper-replace-supers" "^7.15.4" + "@babel/helper-simple-access" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/helper-validator-identifier" "^7.14.9" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/helper-optimise-call-expression@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.15.4.tgz#f310a5121a3b9cc52d9ab19122bd729822dee171" + integrity sha512-E/z9rfbAOt1vDW1DR7k4SzhzotVV5+qMciWV6LaG1g4jeFrkDlJedjtV4h0i4Q/ITnUu+Pk08M7fczsB9GXBDw== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.14.5.tgz#5ac822ce97eec46741ab70a517971e443a70c5a9" + integrity sha512-/37qQCE3K0vvZKwoK4XU/irIJQdIfCJuhU5eKnNxpFDsOkgFaUAwbv+RYw6eYgsC0E4hS7r5KqGULUogqui0fQ== + +"@babel/helper-remap-async-to-generator@^7.14.5", "@babel/helper-remap-async-to-generator@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.15.4.tgz#2637c0731e4c90fbf58ac58b50b2b5a192fc970f" + integrity sha512-v53MxgvMK/HCwckJ1bZrq6dNKlmwlyRNYM6ypaRTdXWGOE2c1/SCa6dL/HimhPulGhZKw9W0QhREM583F/t0vQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.15.4" + "@babel/helper-wrap-function" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/helper-replace-supers@^7.14.5", "@babel/helper-replace-supers@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.15.4.tgz#52a8ab26ba918c7f6dee28628b07071ac7b7347a" + integrity sha512-/ztT6khaXF37MS47fufrKvIsiQkx1LBRvSJNzRqmbyeZnTwU9qBxXYLaaT/6KaxfKhjs2Wy8kG8ZdsFUuWBjzw== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.15.4" + "@babel/helper-optimise-call-expression" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/helper-simple-access@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.15.4.tgz#ac368905abf1de8e9781434b635d8f8674bcc13b" + integrity sha512-UzazrDoIVOZZcTeHHEPYrr1MvTR/K+wgLg6MY6e1CJyaRhbibftF6fR2KU2sFRtI/nERUZR9fBd6aKgBlIBaPg== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-skip-transparent-expression-wrappers@^7.14.5", "@babel/helper-skip-transparent-expression-wrappers@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.15.4.tgz#707dbdba1f4ad0fa34f9114fc8197aec7d5da2eb" + integrity sha512-BMRLsdh+D1/aap19TycS4eD1qELGrCBJwzaY9IE8LrpJtJb+H7rQkPIdsfgnMtLBA6DJls7X9z93Z4U8h7xw0A== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-split-export-declaration@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.15.4.tgz#aecab92dcdbef6a10aa3b62ab204b085f776e257" + integrity sha512-HsFqhLDZ08DxCpBdEVtKmywj6PQbwnF6HHybur0MAnkAKnlS6uHkwnmRIkElB2Owpfb4xL4NwDmDLFubueDXsw== + dependencies: + "@babel/types" "^7.15.4" + +"@babel/helper-validator-identifier@^7.14.5", "@babel/helper-validator-identifier@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" + integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== + +"@babel/helper-validator-option@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.14.5.tgz#6e72a1fff18d5dfcb878e1e62f1a021c4b72d5a3" + integrity sha512-OX8D5eeX4XwcroVW45NMvoYaIuFI+GQpA2a8Gi+X/U/cDUIRsV37qQfF905F0htTRCREQIB4KqPeaveRJUl3Ow== + +"@babel/helper-wrap-function@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.15.4.tgz#6f754b2446cfaf3d612523e6ab8d79c27c3a3de7" + integrity sha512-Y2o+H/hRV5W8QhIfTpRIBwl57y8PrZt6JM3V8FOo5qarjshHItyH5lXlpMfBfmBefOqSCpKZs/6Dxqp0E/U+uw== + dependencies: + "@babel/helper-function-name" "^7.15.4" + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/helpers@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.15.4.tgz#5f40f02050a3027121a3cf48d497c05c555eaf43" + integrity sha512-V45u6dqEJ3w2rlryYYXf6i9rQ5YMNu4FLS6ngs8ikblhu2VdR1AqAd6aJjBzmf2Qzh6KOLqKHxEN9+TFbAkAVQ== + dependencies: + "@babel/template" "^7.15.4" + "@babel/traverse" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/highlight@^7.10.4", "@babel/highlight@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.14.5.tgz#6861a52f03966405001f6aa534a01a24d99e8cd9" + integrity sha512-qf9u2WFWVV0MppaL877j2dBtQIDgmidgjGk5VIMw3OadXvYaXn66U1BFlH2t4+t3i+8PhedppRv+i40ABzd+gg== + dependencies: + "@babel/helper-validator-identifier" "^7.14.5" chalk "^2.0.0" js-tokens "^4.0.0" "@babel/node@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.10.5.tgz#30866322aa2c0251a9bdd73d07a9167bd1f4ed64" - integrity sha512-suosS7zZ2roj+fYVCnDuVezUbRc0sdoyF0Gj/1FzWxD4ebbGiBGtL5qyqHH4NO34B5m4vWWYWgyNhSsrqS8vwA== + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/node/-/node-7.15.4.tgz#aa22f08e5d95354467a09e2bcd51d3565204dd02" + integrity sha512-UZue+j8p5aKTaVjvy5psYmqLHqmz+9cIboAFoa97S1xeZyUr0gT6KzXB8ZkfBIsP/u79biOdjGHVXBXnW3rVfw== dependencies: - "@babel/register" "^7.10.5" + "@babel/register" "^7.15.3" commander "^4.0.1" - core-js "^3.2.1" - lodash "^4.17.19" + core-js "^3.16.0" node-environment-flags "^1.0.5" regenerator-runtime "^0.13.4" - resolve "^1.13.1" v8flags "^3.1.1" -"@babel/parser@^7.1.0", "@babel/parser@^7.4.3", "@babel/parser@^7.7.0", "@babel/parser@^7.7.5", "@babel/parser@^7.8.6", "@babel/parser@^7.9.0": - version "7.9.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" - integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== +"@babel/parser@^7.1.0", "@babel/parser@^7.15.4", "@babel/parser@^7.7.0", "@babel/parser@^7.7.2": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.4.tgz#02f2931b822512d3aad17d475ae83da74a255a84" + integrity sha512-xmzz+7fRpjrvDUj+GV7zfz/R3gSK2cOxGlazaXooxspCr539cbTXJKvBJzSVI2pPhcRGquoOtaIkKCsHQUiO3w== -"@babel/parser@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.4.tgz#9eedf27e1998d87739fb5028a5120557c06a1a64" - integrity sha512-8jHII4hf+YVDsskTF6WuMB3X4Eh+PsUkC2ljq22so5rHvH+T8BzyL94VOdyFLNR8tBSVXOTbNHOKpR4TfRxVtA== +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz#dbdeabb1e80f622d9f0b583efb2999605e0a567e" + integrity sha512-eBnpsl9tlhPhpI10kU06JHnrYXwg3+V6CaP2idsCXNef0aeslpqyITXQ74Vfk5uHgY7IG7XP0yIH8b42KSzHog== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.15.4" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" -"@babel/parser@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz#e7c6bf5a7deff957cec9f04b551e2762909d826b" - integrity sha512-wfryxy4bE1UivvQKSQDU4/X6dr+i8bctjUjj8Zyt3DQy7NtPizJXT8M52nqpNKL+nq2PW8lxk4ZqLj0fD4B4hQ== +"@babel/plugin-proposal-async-generator-functions@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.15.4.tgz#f82aabe96c135d2ceaa917feb9f5fca31635277e" + integrity sha512-2zt2g5vTXpMC3OmK6uyjvdXptbhBXfA77XGrd3gh93zwG8lZYBLOBImiGBEG0RANu3JqKEACCz5CGk73OJROBw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.15.4" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-proposal-async-generator-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.4.tgz#4b65abb3d9bacc6c657aaa413e56696f9f170fc6" - integrity sha512-MJbxGSmejEFVOANAezdO39SObkURO5o/8b6fSH6D1pi9RZQt+ldppKPXfqgUWpSQ9asM6xaSaSJIaeWMDRP0Zg== +"@babel/plugin-proposal-class-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.14.5.tgz#40d1ee140c5b1e31a350f4f5eed945096559b42e" + integrity sha512-q/PLpv5Ko4dVc1LYMpCY7RVAAO4uk55qPwrIuJ5QJ8c6cVuAmhu7I/49JOppXL6gXf7ZHzpRVEUZdYoPLM04Gg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-class-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.10.4.tgz#a33bf632da390a59c7a8c570045d1115cd778807" - integrity sha512-vhwkEROxzcHGNu2mzUC0OFFNXdZ4M23ib8aRRcJSsW8BZK9pQMD7QB7csl97NBbgGZO7ZyHUyKDnxzOaP4IrCg== +"@babel/plugin-proposal-class-static-block@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.15.4.tgz#3e7ca6128453c089e8b477a99f970c63fc1cb8d7" + integrity sha512-M682XWrrLNk3chXCjoPUQWOyYsB93B9z3mRyjtqqYJWDf2mfCdIYgDrA11cgNVhAQieaq6F2fn2f3wI0U4aTjA== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.15.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-class-static-block" "^7.14.5" -"@babel/plugin-proposal-dynamic-import@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.10.4.tgz#ba57a26cb98b37741e9d5bca1b8b0ddf8291f17e" - integrity sha512-up6oID1LeidOOASNXgv/CFbgBqTuKJ0cJjz6An5tWD+NVBNlp3VNSBxv2ZdU7SYl3NxJC7agAQDApZusV6uFwQ== +"@babel/plugin-proposal-dynamic-import@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.14.5.tgz#0c6617df461c0c1f8fff3b47cd59772360101d2c" + integrity sha512-ExjiNYc3HDN5PXJx+bwC50GIx/KKanX2HiggnIUAYedbARdImiCU4RhhHfdf0Kd7JNXGpsBBBCOm+bBVy3Gb0g== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" -"@babel/plugin-proposal-json-strings@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.10.4.tgz#593e59c63528160233bd321b1aebe0820c2341db" - integrity sha512-fCL7QF0Jo83uy1K0P2YXrfX11tj3lkpN7l4dMv9Y9VkowkhkQDwFHFd8IiwyK5MZjE8UpbgokkgtcReH88Abaw== +"@babel/plugin-proposal-export-namespace-from@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.14.5.tgz#dbad244310ce6ccd083072167d8cea83a52faf76" + integrity sha512-g5POA32bXPMmSBu5Dx/iZGLGnKmKPc5AiY7qfZgurzrCYgIztDlHFbznSNCoQuv57YQLnQfaDi7dxCtLDIdXdA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" -"@babel/plugin-proposal-nullish-coalescing-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.10.4.tgz#02a7e961fc32e6d5b2db0649e01bf80ddee7e04a" - integrity sha512-wq5n1M3ZUlHl9sqT2ok1T2/MTt6AXE0e1Lz4WzWBr95LsAZ5qDXe4KnFuauYyEyLiohvXFMdbsOTMyLZs91Zlw== +"@babel/plugin-proposal-json-strings@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.14.5.tgz#38de60db362e83a3d8c944ac858ddf9f0c2239eb" + integrity sha512-NSq2fczJYKVRIsUJyNxrVUMhB27zb7N7pOFGQOhBKJrChbGcgEAqyZrmZswkPk18VMurEeJAaICbfm57vUeTbQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-json-strings" "^7.8.3" -"@babel/plugin-proposal-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.10.4.tgz#ce1590ff0a65ad12970a609d78855e9a4c1aef06" - integrity sha512-73/G7QoRoeNkLZFxsoCCvlg4ezE4eM+57PnOqgaPOozd5myfj7p0muD1mRVJvbUWbOzD+q3No2bWbaKy+DJ8DA== +"@babel/plugin-proposal-logical-assignment-operators@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.14.5.tgz#6e6229c2a99b02ab2915f82571e0cc646a40c738" + integrity sha512-YGn2AvZAo9TwyhlLvCCWxD90Xq8xJ4aSgaX3G5D/8DW94L8aaT+dS5cSP+Z06+rCJERGSr9GxMBZ601xoc2taw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.14.5.tgz#ee38589ce00e2cc59b299ec3ea406fcd3a0fdaf6" + integrity sha512-gun/SOnMqjSb98Nkaq2rTKMwervfdAoz6NphdY0vTfuzMfryj+tDGb2n6UkDKwez+Y8PZDhE3D143v6Gepp4Hg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + +"@babel/plugin-proposal-numeric-separator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.14.5.tgz#83631bf33d9a51df184c2102a069ac0c58c05f18" + integrity sha512-yiclALKe0vyZRZE0pS6RXgjUOt87GWv6FYa5zqj15PvhOGFO69R5DusPlgK/1K5dVnCtegTiWu9UaBSrLLJJBg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-syntax-numeric-separator" "^7.10.4" -"@babel/plugin-proposal-object-rest-spread@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.10.4.tgz#50129ac216b9a6a55b3853fdd923e74bf553a4c0" - integrity sha512-6vh4SqRuLLarjgeOf4EaROJAHjvu9Gl+/346PbDH9yWbJyfnJ/ah3jmYKYtswEyCoWZiidvVHjHshd4WgjB9BA== +"@babel/plugin-proposal-object-rest-spread@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.14.7.tgz#5920a2b3df7f7901df0205974c0641b13fd9d363" + integrity sha512-082hsZz+sVabfmDWo1Oct1u1AgbKbUAyVgmX4otIc7bdsRgHBXwTwb3DpDmD4Eyyx6DNiuz5UAATT655k+kL5g== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-transform-parameters" "^7.10.4" + "@babel/compat-data" "^7.14.7" + "@babel/helper-compilation-targets" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.14.5" -"@babel/plugin-proposal-optional-catch-binding@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.10.4.tgz#31c938309d24a78a49d68fdabffaa863758554dd" - integrity sha512-LflT6nPh+GK2MnFiKDyLiqSqVHkQnVf7hdoAvyTnnKj9xB3docGRsdPuxp6qqqW19ifK3xgc9U5/FwrSaCNX5g== +"@babel/plugin-proposal-optional-catch-binding@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.14.5.tgz#939dd6eddeff3a67fdf7b3f044b5347262598c3c" + integrity sha512-3Oyiixm0ur7bzO5ybNcZFlmVsygSIQgdOa7cTfOYCMY+wEPAYhZAJxi3mixKFCTCKUhQXuCTtQ1MzrpL3WT8ZQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" -"@babel/plugin-proposal-optional-chaining@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.10.4.tgz#750f1255e930a1f82d8cdde45031f81a0d0adff7" - integrity sha512-ZIhQIEeavTgouyMSdZRap4VPPHqJJ3NEs2cuHs5p0erH+iz6khB0qfgU8g7UuJkG88+fBMy23ZiU+nuHvekJeQ== +"@babel/plugin-proposal-optional-chaining@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.14.5.tgz#fa83651e60a360e3f13797eef00b8d519695b603" + integrity sha512-ycz+VOzo2UbWNI1rQXxIuMOzrDdHGrI23fRiz/Si2R4kv2XZQ1BK8ccdHwehMKBlcH/joGW/tzrUmo67gbJHlQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" -"@babel/plugin-proposal-private-methods@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.10.4.tgz#b160d972b8fdba5c7d111a145fc8c421fc2a6909" - integrity sha512-wh5GJleuI8k3emgTg5KkJK6kHNsGEr0uBTDBuQUBJwckk9xs1ez79ioheEVVxMLyPscB0LfkbVHslQqIzWV6Bw== +"@babel/plugin-proposal-private-methods@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.14.5.tgz#37446495996b2945f30f5be5b60d5e2aa4f5792d" + integrity sha512-838DkdUA1u+QTCplatfq4B7+1lnDa/+QMI89x5WZHBcnNv+47N8QEj2k9I2MUU9xIv8XJ4XvPCviM/Dj7Uwt9g== dependencies: - "@babel/helper-create-class-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-class-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.10.4.tgz#4483cda53041ce3413b7fe2f00022665ddfaa75d" - integrity sha512-H+3fOgPnEXFL9zGYtKQe4IDOPKYlZdF1kqFDQRRb8PK4B8af1vAGK04tF5iQAAsui+mHNBQSAtd2/ndEDe9wuA== +"@babel/plugin-proposal-private-property-in-object@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.15.4.tgz#55c5e3b4d0261fd44fe637e3f624cfb0f484e3e5" + integrity sha512-X0UTixkLf0PCCffxgu5/1RQyGGbgZuKoI+vXP4iSbJSYwPb7hu06omsFGBvQ9lJEvwgrxHdS8B5nbfcd8GyUNA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.15.4" + "@babel/helper-create-class-features-plugin" "^7.15.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" -"@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.8.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" - integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== +"@babel/plugin-proposal-unicode-property-regex@^7.14.5", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.14.5.tgz#0f95ee0e757a5d647f378daa0eca7e93faa8bbe8" + integrity sha512-6axIeOU5LnY471KenAB9vI8I5j7NQ2d652hIYwVyRfgaZT5UpiqFKCuVXCDMSrU+3VFafnu2c5m3lrWIlr6A5Q== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.8" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-async-generators@^7.8.0", "@babel/plugin-syntax-async-generators@^7.8.4": +"@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== @@ -596,433 +442,454 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.10.4.tgz#6644e6a0baa55a61f9e3231f6c9eeb6ee46c124c" - integrity sha512-GCSBF7iUle6rNugfURwNmCGG3Z/2+opxAMLs1nND4bhEG5PuxTIggDBoeYYSujAlLtsupzOHYJQgPS3pivwXIA== +"@babel/plugin-syntax-class-properties@^7.12.13", "@babel/plugin-syntax-class-properties@^7.8.3": + version "7.12.13" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" + integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-class-properties@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.8.3.tgz#6cb933a8872c8d359bfde69bbeaae5162fd1e8f7" - integrity sha512-UcAyQWg2bAN647Q+O811tG9MrJ38Z10jjhQdKNAL8fsyPzE3cCN/uT+f55cFVY4aGO4jqJAvmqsuY3GQDwAoXg== +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz#195df89b146b4b78b3bf897fd7a257c84659d406" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-dynamic-import@^7.8.0": +"@babel/plugin-syntax-dynamic-import@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-json-strings@^7.8.0", "@babel/plugin-syntax-json-strings@^7.8.3": +"@babel/plugin-syntax-export-namespace-from@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" + integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-import-meta@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz#ee601348c370fa334d2207be158777496521fd51" + integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== + dependencies: + "@babel/helper-plugin-utils" "^7.10.4" + +"@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.8.3.tgz#3995d7d7ffff432f6ddc742b47e730c054599897" - integrity sha512-Zpg2Sgc++37kuFl6ppq2Q7Awc6E6AIW671x5PY8E/f7MCIyPPGK/EoeZXvvY3P42exZ3Q4/t3YOzP/HiN79jDg== +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3": + version "7.10.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" + integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0", "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.10.4": +"@babel/plugin-syntax-numeric-separator@^7.10.4", "@babel/plugin-syntax-numeric-separator@^7.8.3": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-numeric-separator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" - integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-catch-binding@^7.8.0", "@babel/plugin-syntax-optional-catch-binding@^7.8.3": +"@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-optional-chaining@^7.8.0", "@babel/plugin-syntax-optional-chaining@^7.8.3": +"@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.10.4.tgz#4bbeb8917b54fcf768364e0a81f560e33a3ef57d" - integrity sha512-ni1brg4lXEmWyafKr0ccFWkJG0CeMt4WV1oyeBW6EFObF4oOHclbkj5cARxAPQyAQ2UTuplJyK4nfkXIMMFvsQ== +"@babel/plugin-syntax-private-property-in-object@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz#0dc6671ec0ea22b6e94a1114f857970cd39de1ad" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-arrow-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.10.4.tgz#e22960d77e697c74f41c501d44d73dbf8a6a64cd" - integrity sha512-9J/oD1jV0ZCBcgnoFWFq1vJd4msoKb/TCpGNFyyLt0zABdcvgK3aYikZ8HjzB14c26bc7E3Q1yugpwGy2aTPNA== +"@babel/plugin-syntax-top-level-await@^7.14.5", "@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz#c1cfdadc35a646240001f06138247b741c34d94c" + integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-async-to-generator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.10.4.tgz#41a5017e49eb6f3cda9392a51eef29405b245a37" - integrity sha512-F6nREOan7J5UXTLsDsZG3DXmZSVofr2tGNwfdrVwkDWHfQckbQXnXSPfD7iO+c/2HGqycwyLST3DnZ16n+cBJQ== +"@babel/plugin-syntax-typescript@^7.7.2": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.14.5.tgz#b82c6ce471b165b5ce420cf92914d6fb46225716" + integrity sha512-u6OXzDaIXjEstBRRoBCQ/uKQKlbuaeE5in0RvWdA4pN6AhqxTIwUsnHPU1CFZA/amYObMsuWhYfRl3Ch90HD0Q== dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-remap-async-to-generator" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-block-scoped-functions@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.10.4.tgz#1afa595744f75e43a91af73b0d998ecfe4ebc2e8" - integrity sha512-WzXDarQXYYfjaV1szJvN3AD7rZgZzC1JtjJZ8dMHUyiK8mxPRahynp14zzNjU3VkPqPsO38CzxiWO1c9ARZ8JA== +"@babel/plugin-transform-arrow-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.14.5.tgz#f7187d9588a768dd080bf4c9ffe117ea62f7862a" + integrity sha512-KOnO0l4+tD5IfOdi4x8C1XmEIRWUjNRV8wc6K2vz/3e8yAOoZZvsRXRRIF/yo/MAOFb4QjtAw9xSxMXbSMRy8A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-block-scoping@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.10.4.tgz#a670d1364bb5019a621b9ea2001482876d734787" - integrity sha512-J3b5CluMg3hPUii2onJDRiaVbPtKFPLEaV5dOPY5OeAbDi1iU/UbbFFTgwb7WnanaDy7bjU35kc26W3eM5Qa0A== +"@babel/plugin-transform-async-to-generator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.14.5.tgz#72c789084d8f2094acb945633943ef8443d39e67" + integrity sha512-szkbzQ0mNk0rpu76fzDdqSyPu0MuvpXgC+6rz5rpMb5OIRxdmHfQxrktL8CYolL2d8luMCZTR0DpIMIdL27IjA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - lodash "^4.17.13" + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-remap-async-to-generator" "^7.14.5" -"@babel/plugin-transform-classes@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.10.4.tgz#405136af2b3e218bc4a1926228bc917ab1a0adc7" - integrity sha512-2oZ9qLjt161dn1ZE0Ms66xBncQH4In8Sqw1YWgBUZuGVJJS5c0OFZXL6dP2MRHrkU/eKhWg8CzFJhRQl50rQxA== +"@babel/plugin-transform-block-scoped-functions@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.14.5.tgz#e48641d999d4bc157a67ef336aeb54bc44fd3ad4" + integrity sha512-dtqWqdWZ5NqBX3KzsVCWfQI3A53Ft5pWFCT2eCVUftWZgjc5DpDponbIF1+c+7cSGk2wN0YK7HGL/ezfRbpKBQ== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-define-map" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-optimise-call-expression" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - globals "^11.1.0" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-computed-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz#9ded83a816e82ded28d52d4b4ecbdd810cdfc0eb" - integrity sha512-JFwVDXcP/hM/TbyzGq3l/XWGut7p46Z3QvqFMXTfk6/09m7xZHJUN9xHfsv7vqqD4YnfI5ueYdSJtXqqBLyjBw== +"@babel/plugin-transform-block-scoping@^7.15.3": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.15.3.tgz#94c81a6e2fc230bcce6ef537ac96a1e4d2b3afaf" + integrity sha512-nBAzfZwZb4DkaGtOes1Up1nOAp9TDRRFw4XBzBBSG9QK7KVFmYzgj9o9sbPv7TX5ofL4Auq4wZnxCoPnI/lz2Q== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-destructuring@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.10.4.tgz#70ddd2b3d1bea83d01509e9bb25ddb3a74fc85e5" - integrity sha512-+WmfvyfsyF603iPa6825mq6Qrb7uLjTOsa3XOFzlYcYDHSS4QmpOWOL0NNBY5qMbvrcf3tq0Cw+v4lxswOBpgA== +"@babel/plugin-transform-classes@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.15.4.tgz#50aee17aaf7f332ae44e3bce4c2e10534d5d3bf1" + integrity sha512-Yjvhex8GzBmmPQUvpXRPWQ9WnxXgAFuZSrqOK/eJlOGIXwvv8H3UEdUigl1gb/bnjTrln+e8bkZUYCBt/xYlBg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-annotate-as-pure" "^7.15.4" + "@babel/helper-function-name" "^7.15.4" + "@babel/helper-optimise-call-expression" "^7.15.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + globals "^11.1.0" -"@babel/plugin-transform-dotall-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.10.4.tgz#469c2062105c1eb6a040eaf4fac4b488078395ee" - integrity sha512-ZEAVvUTCMlMFAbASYSVQoxIbHm2OkG2MseW6bV2JjIygOjdVv8tuxrCTzj1+Rynh7ODb8GivUy7dzEXzEhuPaA== +"@babel/plugin-transform-computed-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.14.5.tgz#1b9d78987420d11223d41195461cc43b974b204f" + integrity sha512-pWM+E4283UxaVzLb8UBXv4EIxMovU4zxT1OPnpHJcmnvyY9QbPPTKZfEj31EUvG3/EQRbYAGaYEUZ4yWOBC2xg== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" - integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== +"@babel/plugin-transform-destructuring@^7.14.7": + version "7.14.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.14.7.tgz#0ad58ed37e23e22084d109f185260835e5557576" + integrity sha512-0mDE99nK+kVh3xlc5vKwB6wnP9ecuSj+zQCa/n0voENtP/zymdT4HH6QEb65wjjcbqr1Jb/7z9Qp7TF5FtwYGw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.8.3" - "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-duplicate-keys@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.10.4.tgz#697e50c9fee14380fe843d1f306b295617431e47" - integrity sha512-GL0/fJnmgMclHiBTTWXNlYjYsA7rDrtsazHG6mglaGSTh0KsrW04qml+Bbz9FL0LcJIRwBWL5ZqlNHKTkU3xAA== +"@babel/plugin-transform-dotall-regex@^7.14.5", "@babel/plugin-transform-dotall-regex@^7.4.4": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.14.5.tgz#2f6bf76e46bdf8043b4e7e16cf24532629ba0c7a" + integrity sha512-loGlnBdj02MDsFaHhAIJzh7euK89lBrGIdM9EAtHFo6xKygCUGuuWe07o1oZVk287amtW1n0808sQM99aZt3gw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-exponentiation-operator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.10.4.tgz#5ae338c57f8cf4001bdb35607ae66b92d665af2e" - integrity sha512-S5HgLVgkBcRdyQAHbKj+7KyuWx8C6t5oETmUuwz1pt3WTWJhsUV0WIIXuVvfXMxl/QQyHKlSCNNtaIamG8fysw== +"@babel/plugin-transform-duplicate-keys@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.14.5.tgz#365a4844881bdf1501e3a9f0270e7f0f91177954" + integrity sha512-iJjbI53huKbPDAsJ8EmVmvCKeeq21bAze4fu9GBQtSLqfvzj2oRuHVx4ZkDwEhg1htQ+5OBZh/Ab0XDf5iBZ7A== dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-for-of@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.10.4.tgz#c08892e8819d3a5db29031b115af511dbbfebae9" - integrity sha512-ItdQfAzu9AlEqmusA/65TqJ79eRcgGmpPPFvBnGILXZH975G0LNjP1yjHvGgfuCxqrPPueXOPe+FsvxmxKiHHQ== +"@babel/plugin-transform-exponentiation-operator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.14.5.tgz#5154b8dd6a3dfe6d90923d61724bd3deeb90b493" + integrity sha512-jFazJhMBc9D27o9jDnIE5ZErI0R0m7PbKXVq77FFvqFbzvTMuv8jaAwLZ5PviOLSFttqKIW0/wxNSDbjLk0tYA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-function-name@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.10.4.tgz#6a467880e0fc9638514ba369111811ddbe2644b7" - integrity sha512-OcDCq2y5+E0dVD5MagT5X+yTRbcvFjDI2ZVAottGH6tzqjx/LKpgkUepu3hp/u4tZBzxxpNGwLsAvGBvQ2mJzg== +"@babel/plugin-transform-for-of@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.15.4.tgz#25c62cce2718cfb29715f416e75d5263fb36a8c2" + integrity sha512-DRTY9fA751AFBDh2oxydvVm4SYevs5ILTWLs6xKXps4Re/KG5nfUkr+TdHCrRWB8C69TlzVgA9b3RmGWmgN9LA== dependencies: - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.10.4.tgz#9f42ba0841100a135f22712d0e391c462f571f3c" - integrity sha512-Xd/dFSTEVuUWnyZiMu76/InZxLTYilOSr1UlHV+p115Z/Le2Fi1KXkJUYz0b42DfndostYlPub3m8ZTQlMaiqQ== +"@babel/plugin-transform-function-name@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.14.5.tgz#e81c65ecb900746d7f31802f6bed1f52d915d6f2" + integrity sha512-vbO6kv0fIzZ1GpmGQuvbwwm+O4Cbm2NrPzwlup9+/3fdkuzo1YqOZcXw26+YUJB84Ja7j9yURWposEHLYwxUfQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-function-name" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-member-expression-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.10.4.tgz#b1ec44fcf195afcb8db2c62cd8e551c881baf8b7" - integrity sha512-0bFOvPyAoTBhtcJLr9VcwZqKmSjFml1iVxvPL0ReomGU53CX53HsM4h2SzckNdkQcHox1bpAqzxBI1Y09LlBSw== +"@babel/plugin-transform-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.14.5.tgz#41d06c7ff5d4d09e3cf4587bd3ecf3930c730f78" + integrity sha512-ql33+epql2F49bi8aHXxvLURHkxJbSmMKl9J5yHqg4PLtdE6Uc48CH1GS6TQvZ86eoB/ApZXwm7jlA+B3kra7A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-modules-amd@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.10.4.tgz#cb407c68b862e4c1d13a2fc738c7ec5ed75fc520" - integrity sha512-3Fw+H3WLUrTlzi3zMiZWp3AR4xadAEMv6XRCYnd5jAlLM61Rn+CRJaZMaNvIpcJpQ3vs1kyifYvEVPFfoSkKOA== +"@babel/plugin-transform-member-expression-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.14.5.tgz#b39cd5212a2bf235a617d320ec2b48bcc091b8a7" + integrity sha512-WkNXxH1VXVTKarWFqmso83xl+2V3Eo28YY5utIkbsmXoItO8Q3aZxN4BTS2k0hz9dGUloHK26mJMyQEYfkn/+Q== dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-transform-modules-amd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.14.5.tgz#4fd9ce7e3411cb8b83848480b7041d83004858f7" + integrity sha512-3lpOU8Vxmp3roC4vzFpSdEpGUWSMsHFreTWOMMLzel2gNGfHE5UWIh/LN6ghHs2xurUp4jRFYMUIZhuFbody1g== + dependencies: + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-commonjs@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.10.4.tgz#66667c3eeda1ebf7896d41f1f16b17105a2fbca0" - integrity sha512-Xj7Uq5o80HDLlW64rVfDBhao6OX89HKUmb+9vWYaLXBZOma4gA6tw4Ni1O5qVDoZWUV0fxMYA0aYzOawz0l+1w== +"@babel/plugin-transform-modules-commonjs@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.15.4.tgz#8201101240eabb5a76c08ef61b2954f767b6b4c1" + integrity sha512-qg4DPhwG8hKp4BbVDvX1s8cohM8a6Bvptu4l6Iingq5rW+yRUAhe/YRup/YcW2zCOlrysEWVhftIcKzrEZv3sA== dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-simple-access" "^7.10.4" + "@babel/helper-module-transforms" "^7.15.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-simple-access" "^7.15.4" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-systemjs@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.10.4.tgz#8f576afd943ac2f789b35ded0a6312f929c633f9" - integrity sha512-Tb28LlfxrTiOTGtZFsvkjpyjCl9IoaRI52AEU/VIwOwvDQWtbNJsAqTXzh+5R7i74e/OZHH2c2w2fsOqAfnQYQ== +"@babel/plugin-transform-modules-systemjs@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.15.4.tgz#b42890c7349a78c827719f1d2d0cd38c7d268132" + integrity sha512-fJUnlQrl/mezMneR72CKCgtOoahqGJNVKpompKwzv3BrEXdlPspTcyxrZ1XmDTIr9PpULrgEQo3qNKp6dW7ssw== dependencies: - "@babel/helper-hoist-variables" "^7.10.4" - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-hoist-variables" "^7.15.4" + "@babel/helper-module-transforms" "^7.15.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-identifier" "^7.14.9" babel-plugin-dynamic-import-node "^2.3.3" -"@babel/plugin-transform-modules-umd@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.10.4.tgz#9a8481fe81b824654b3a0b65da3df89f3d21839e" - integrity sha512-mohW5q3uAEt8T45YT7Qc5ws6mWgJAaL/8BfWD9Dodo1A3RKWli8wTS+WiQ/knF+tXlPirW/1/MqzzGfCExKECA== +"@babel/plugin-transform-modules-umd@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.14.5.tgz#fb662dfee697cce274a7cda525190a79096aa6e0" + integrity sha512-RfPGoagSngC06LsGUYyM9QWSXZ8MysEjDJTAea1lqRjNECE3y0qIJF/qbvJxc4oA4s99HumIMdXOrd+TdKaAAA== dependencies: - "@babel/helper-module-transforms" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-module-transforms" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-named-capturing-groups-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.10.4.tgz#78b4d978810b6f3bcf03f9e318f2fc0ed41aecb6" - integrity sha512-V6LuOnD31kTkxQPhKiVYzYC/Jgdq53irJC/xBSmqcNcqFGV+PER4l6rU5SH2Vl7bH9mLDHcc0+l9HUOe4RNGKA== +"@babel/plugin-transform-named-capturing-groups-regex@^7.14.9": + version "7.14.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.14.9.tgz#c68f5c5d12d2ebaba3762e57c2c4f6347a46e7b2" + integrity sha512-l666wCVYO75mlAtGFfyFwnWmIXQm3kSH0C3IRnJqWcZbWkoihyAdDhFm2ZWaxWTqvBvhVFfJjMRQ0ez4oN1yYA== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" -"@babel/plugin-transform-new-target@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.10.4.tgz#9097d753cb7b024cb7381a3b2e52e9513a9c6888" - integrity sha512-YXwWUDAH/J6dlfwqlWsztI2Puz1NtUAubXhOPLQ5gjR/qmQ5U96DY4FQO8At33JN4XPBhrjB8I4eMmLROjjLjw== +"@babel/plugin-transform-new-target@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.14.5.tgz#31bdae8b925dc84076ebfcd2a9940143aed7dbf8" + integrity sha512-Nx054zovz6IIRWEB49RDRuXGI4Gy0GMgqG0cII9L3MxqgXz/+rgII+RU58qpo4g7tNEx1jG7rRVH4ihZoP4esQ== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-object-super@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.10.4.tgz#d7146c4d139433e7a6526f888c667e314a093894" - integrity sha512-5iTw0JkdRdJvr7sY0vHqTpnruUpTea32JHmq/atIWqsnNussbRzjEDyWep8UNztt1B5IusBYg8Irb0bLbiEBCQ== +"@babel/plugin-transform-object-super@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.14.5.tgz#d0b5faeac9e98597a161a9cf78c527ed934cdc45" + integrity sha512-MKfOBWzK0pZIrav9z/hkRqIk/2bTv9qvxHzPQc12RcVkMOzpIKnFCNYJip00ssKWYkd8Sf5g0Wr7pqJ+cmtuFg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-replace-supers" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-replace-supers" "^7.14.5" -"@babel/plugin-transform-parameters@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.10.4.tgz#7b4d137c87ea7adc2a0f3ebf53266871daa6fced" - integrity sha512-RurVtZ/D5nYfEg0iVERXYKEgDFeesHrHfx8RT05Sq57ucj2eOYAP6eu5fynL4Adju4I/mP/I6SO0DqNWAXjfLQ== +"@babel/plugin-transform-parameters@^7.14.5", "@babel/plugin-transform-parameters@^7.15.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.15.4.tgz#5f2285cc3160bf48c8502432716b48504d29ed62" + integrity sha512-9WB/GUTO6lvJU3XQsSr6J/WKvBC2hcs4Pew8YxZagi6GkTdniyqp8On5kqdK8MN0LMeu0mGbhPN+O049NV/9FQ== dependencies: - "@babel/helper-get-function-arity" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-property-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.10.4.tgz#f6fe54b6590352298785b83edd815d214c42e3c0" - integrity sha512-ofsAcKiUxQ8TY4sScgsGeR2vJIsfrzqvFb9GvJ5UdXDzl+MyYCaBj/FGzXuv7qE0aJcjWMILny1epqelnFlz8g== +"@babel/plugin-transform-property-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.14.5.tgz#0ddbaa1f83db3606f1cdf4846fa1dfb473458b34" + integrity sha512-r1uilDthkgXW8Z1vJz2dKYLV1tuw2xsbrp3MrZmD99Wh9vsfKoob+JTgri5VUb/JqyKRXotlOtwgu4stIYCmnw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-regenerator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.10.4.tgz#2015e59d839074e76838de2159db421966fd8b63" - integrity sha512-3thAHwtor39A7C04XucbMg17RcZ3Qppfxr22wYzZNcVIkPHfpM9J0SO8zuCV6SZa265kxBJSrfKTvDCYqBFXGw== +"@babel/plugin-transform-regenerator@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.14.5.tgz#9676fd5707ed28f522727c5b3c0aa8544440b04f" + integrity sha512-NVIY1W3ITDP5xQl50NgTKlZ0GrotKtLna08/uGY6ErQt6VEQZXla86x/CTddm5gZdcr+5GSsvMeTmWA5Ii6pkg== dependencies: regenerator-transform "^0.14.2" -"@babel/plugin-transform-reserved-words@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.10.4.tgz#8f2682bcdcef9ed327e1b0861585d7013f8a54dd" - integrity sha512-hGsw1O6Rew1fkFbDImZIEqA8GoidwTAilwCyWqLBM9f+e/u/sQMQu7uX6dyokfOayRuuVfKOW4O7HvaBWM+JlQ== +"@babel/plugin-transform-reserved-words@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.14.5.tgz#c44589b661cfdbef8d4300dcc7469dffa92f8304" + integrity sha512-cv4F2rv1nD4qdexOGsRQXJrOcyb5CrgjUH9PKrrtyhSDBNWGxd0UIitjyJiWagS+EbUGjG++22mGH1Pub8D6Vg== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/plugin-transform-runtime@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.10.5.tgz#3b39b7b24830e0c2d8ff7a4489fe5cf99fbace86" - integrity sha512-tV4V/FjElJ9lQtyjr5xD2IFFbgY46r7EeVu5a8CpEKT5laheHKSlFeHjpkPppW3PqzGLAuv5k2qZX5LgVZIX5w== - dependencies: - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - resolve "^1.8.1" - semver "^5.5.1" + version "7.15.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.15.0.tgz#d3aa650d11678ca76ce294071fda53d7804183b3" + integrity sha512-sfHYkLGjhzWTq6xsuQ01oEsUYjkHRux9fW1iUA68dC7Qd8BS1Unq4aZ8itmQp95zUzIcyR2EbNMTzAicFj+guw== + dependencies: + "@babel/helper-module-imports" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + semver "^6.3.0" -"@babel/plugin-transform-shorthand-properties@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.10.4.tgz#9fd25ec5cdd555bb7f473e5e6ee1c971eede4dd6" - integrity sha512-AC2K/t7o07KeTIxMoHneyX90v3zkm5cjHJEokrPEAGEy3UCp8sLKfnfOIGdZ194fyN4wfX/zZUWT9trJZ0qc+Q== +"@babel/plugin-transform-shorthand-properties@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.14.5.tgz#97f13855f1409338d8cadcbaca670ad79e091a58" + integrity sha512-xLucks6T1VmGsTB+GWK5Pl9Jl5+nRXD1uoFdA5TSO6xtiNjtXTjKkmPdFXVLGlK5A2/or/wQMKfmQ2Y0XJfn5g== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-spread@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.10.4.tgz#4e2c85ea0d6abaee1b24dcfbbae426fe8d674cff" - integrity sha512-1e/51G/Ni+7uH5gktbWv+eCED9pP8ZpRhZB3jOaI3mmzfvJTWHkuyYTv0Z5PYtyM+Tr2Ccr9kUdQxn60fI5WuQ== +"@babel/plugin-transform-spread@^7.14.6": + version "7.14.6" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.14.6.tgz#6bd40e57fe7de94aa904851963b5616652f73144" + integrity sha512-Zr0x0YroFJku7n7+/HH3A2eIrGMjbmAIbJSVv0IZ+t3U2WUQUA64S/oeied2e+MaGSjmt4alzBCsK9E8gh+fag== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-skip-transparent-expression-wrappers" "^7.14.5" -"@babel/plugin-transform-sticky-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.10.4.tgz#8f3889ee8657581130a29d9cc91d7c73b7c4a28d" - integrity sha512-Ddy3QZfIbEV0VYcVtFDCjeE4xwVTJWTmUtorAJkn6u/92Z/nWJNV+mILyqHKrUxXYKA2EoCilgoPePymKL4DvQ== +"@babel/plugin-transform-sticky-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.14.5.tgz#5b617542675e8b7761294381f3c28c633f40aeb9" + integrity sha512-Z7F7GyvEMzIIbwnziAZmnSNpdijdr4dWt+FJNBnBLz5mwDFkqIXU9wmBcWWad3QeJF5hMTkRe4dAq2sUZiG+8A== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/helper-regex" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-template-literals@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.10.4.tgz#e6375407b30fcb7fcfdbba3bb98ef3e9d36df7bc" - integrity sha512-4NErciJkAYe+xI5cqfS8pV/0ntlY5N5Ske/4ImxAVX7mk9Rxt2bwDTGv1Msc2BRJvWQcmYEC+yoMLdX22aE4VQ== +"@babel/plugin-transform-template-literals@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.14.5.tgz#a5f2bc233937d8453885dc736bdd8d9ffabf3d93" + integrity sha512-22btZeURqiepOfuy/VkFr+zStqlujWaarpMErvay7goJS6BWwdd6BY9zQyDLDa4x2S3VugxFb162IZ4m/S/+Gg== dependencies: - "@babel/helper-annotate-as-pure" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-typeof-symbol@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.10.4.tgz#9509f1a7eec31c4edbffe137c16cc33ff0bc5bfc" - integrity sha512-QqNgYwuuW0y0H+kUE/GWSR45t/ccRhe14Fs/4ZRouNNQsyd4o3PG4OtHiIrepbM2WKUBDAXKCAK/Lk4VhzTaGA== +"@babel/plugin-transform-typeof-symbol@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.14.5.tgz#39af2739e989a2bd291bf6b53f16981423d457d4" + integrity sha512-lXzLD30ffCWseTbMQzrvDWqljvZlHkXU+CnseMhkMNqU1sASnCsz3tSzAaH3vCUXb9PHeUb90ZT1BdFTm1xxJw== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-unicode-escapes@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.10.4.tgz#feae523391c7651ddac115dae0a9d06857892007" - integrity sha512-y5XJ9waMti2J+e7ij20e+aH+fho7Wb7W8rNuu72aKRwCHFqQdhkdU2lo3uZ9tQuboEJcUFayXdARhcxLQ3+6Fg== +"@babel/plugin-transform-unicode-escapes@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.14.5.tgz#9d4bd2a681e3c5d7acf4f57fa9e51175d91d0c6b" + integrity sha512-crTo4jATEOjxj7bt9lbYXcBAM3LZaUrbP2uUdxb6WIorLmjNKSpHfIybgY4B8SRpbf8tEVIWH3Vtm7ayCrKocA== dependencies: - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-transform-unicode-regex@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.10.4.tgz#e56d71f9282fac6db09c82742055576d5e6d80a8" - integrity sha512-wNfsc4s8N2qnIwpO/WP2ZiSyjfpTamT2C9V9FDH/Ljub9zw6P3SjkXcFmc0RQUt96k2fmIvtla2MMjgTwIAC+A== +"@babel/plugin-transform-unicode-regex@^7.14.5": + version "7.14.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.14.5.tgz#4cd09b6c8425dd81255c7ceb3fb1836e7414382e" + integrity sha512-UygduJpC5kHeCiRw/xDVzC+wj8VaYSoKl5JNVmbP7MadpNinAm3SvZCxZ42H37KZBKztz46YC73i9yV34d0Tzw== dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" + "@babel/helper-create-regexp-features-plugin" "^7.14.5" + "@babel/helper-plugin-utils" "^7.14.5" "@babel/preset-env@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.10.4.tgz#fbf57f9a803afd97f4f32e4f798bb62e4b2bef5f" - integrity sha512-tcmuQ6vupfMZPrLrc38d0sF2OjLT3/bZ0dry5HchNCQbrokoQi4reXqclvkkAT5b+gWc23meVWpve5P/7+w/zw== - dependencies: - "@babel/compat-data" "^7.10.4" - "@babel/helper-compilation-targets" "^7.10.4" - "@babel/helper-module-imports" "^7.10.4" - "@babel/helper-plugin-utils" "^7.10.4" - "@babel/plugin-proposal-async-generator-functions" "^7.10.4" - "@babel/plugin-proposal-class-properties" "^7.10.4" - "@babel/plugin-proposal-dynamic-import" "^7.10.4" - "@babel/plugin-proposal-json-strings" "^7.10.4" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.10.4" - "@babel/plugin-proposal-numeric-separator" "^7.10.4" - "@babel/plugin-proposal-object-rest-spread" "^7.10.4" - "@babel/plugin-proposal-optional-catch-binding" "^7.10.4" - "@babel/plugin-proposal-optional-chaining" "^7.10.4" - "@babel/plugin-proposal-private-methods" "^7.10.4" - "@babel/plugin-proposal-unicode-property-regex" "^7.10.4" - "@babel/plugin-syntax-async-generators" "^7.8.0" - "@babel/plugin-syntax-class-properties" "^7.10.4" - "@babel/plugin-syntax-dynamic-import" "^7.8.0" - "@babel/plugin-syntax-json-strings" "^7.8.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.15.4.tgz#197e7f99a755c488f0af411af179cbd10de6e815" + integrity sha512-4f2nLw+q6ht8gl3sHCmNhmA5W6b1ItLzbH3UrKuJxACHr2eCpk96jwjrAfCAaXaaVwTQGnyUYHY2EWXJGt7TUQ== + dependencies: + "@babel/compat-data" "^7.15.0" + "@babel/helper-compilation-targets" "^7.15.4" + "@babel/helper-plugin-utils" "^7.14.5" + "@babel/helper-validator-option" "^7.14.5" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.15.4" + "@babel/plugin-proposal-async-generator-functions" "^7.15.4" + "@babel/plugin-proposal-class-properties" "^7.14.5" + "@babel/plugin-proposal-class-static-block" "^7.15.4" + "@babel/plugin-proposal-dynamic-import" "^7.14.5" + "@babel/plugin-proposal-export-namespace-from" "^7.14.5" + "@babel/plugin-proposal-json-strings" "^7.14.5" + "@babel/plugin-proposal-logical-assignment-operators" "^7.14.5" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.14.5" + "@babel/plugin-proposal-numeric-separator" "^7.14.5" + "@babel/plugin-proposal-object-rest-spread" "^7.14.7" + "@babel/plugin-proposal-optional-catch-binding" "^7.14.5" + "@babel/plugin-proposal-optional-chaining" "^7.14.5" + "@babel/plugin-proposal-private-methods" "^7.14.5" + "@babel/plugin-proposal-private-property-in-object" "^7.15.4" + "@babel/plugin-proposal-unicode-property-regex" "^7.14.5" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" - "@babel/plugin-syntax-optional-chaining" "^7.8.0" - "@babel/plugin-syntax-top-level-await" "^7.10.4" - "@babel/plugin-transform-arrow-functions" "^7.10.4" - "@babel/plugin-transform-async-to-generator" "^7.10.4" - "@babel/plugin-transform-block-scoped-functions" "^7.10.4" - "@babel/plugin-transform-block-scoping" "^7.10.4" - "@babel/plugin-transform-classes" "^7.10.4" - "@babel/plugin-transform-computed-properties" "^7.10.4" - "@babel/plugin-transform-destructuring" "^7.10.4" - "@babel/plugin-transform-dotall-regex" "^7.10.4" - "@babel/plugin-transform-duplicate-keys" "^7.10.4" - "@babel/plugin-transform-exponentiation-operator" "^7.10.4" - "@babel/plugin-transform-for-of" "^7.10.4" - "@babel/plugin-transform-function-name" "^7.10.4" - "@babel/plugin-transform-literals" "^7.10.4" - "@babel/plugin-transform-member-expression-literals" "^7.10.4" - "@babel/plugin-transform-modules-amd" "^7.10.4" - "@babel/plugin-transform-modules-commonjs" "^7.10.4" - "@babel/plugin-transform-modules-systemjs" "^7.10.4" - "@babel/plugin-transform-modules-umd" "^7.10.4" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.10.4" - "@babel/plugin-transform-new-target" "^7.10.4" - "@babel/plugin-transform-object-super" "^7.10.4" - "@babel/plugin-transform-parameters" "^7.10.4" - "@babel/plugin-transform-property-literals" "^7.10.4" - "@babel/plugin-transform-regenerator" "^7.10.4" - "@babel/plugin-transform-reserved-words" "^7.10.4" - "@babel/plugin-transform-shorthand-properties" "^7.10.4" - "@babel/plugin-transform-spread" "^7.10.4" - "@babel/plugin-transform-sticky-regex" "^7.10.4" - "@babel/plugin-transform-template-literals" "^7.10.4" - "@babel/plugin-transform-typeof-symbol" "^7.10.4" - "@babel/plugin-transform-unicode-escapes" "^7.10.4" - "@babel/plugin-transform-unicode-regex" "^7.10.4" - "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.10.4" - browserslist "^4.12.0" - core-js-compat "^3.6.2" - invariant "^2.2.2" - levenary "^1.1.1" - semver "^5.5.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-transform-arrow-functions" "^7.14.5" + "@babel/plugin-transform-async-to-generator" "^7.14.5" + "@babel/plugin-transform-block-scoped-functions" "^7.14.5" + "@babel/plugin-transform-block-scoping" "^7.15.3" + "@babel/plugin-transform-classes" "^7.15.4" + "@babel/plugin-transform-computed-properties" "^7.14.5" + "@babel/plugin-transform-destructuring" "^7.14.7" + "@babel/plugin-transform-dotall-regex" "^7.14.5" + "@babel/plugin-transform-duplicate-keys" "^7.14.5" + "@babel/plugin-transform-exponentiation-operator" "^7.14.5" + "@babel/plugin-transform-for-of" "^7.15.4" + "@babel/plugin-transform-function-name" "^7.14.5" + "@babel/plugin-transform-literals" "^7.14.5" + "@babel/plugin-transform-member-expression-literals" "^7.14.5" + "@babel/plugin-transform-modules-amd" "^7.14.5" + "@babel/plugin-transform-modules-commonjs" "^7.15.4" + "@babel/plugin-transform-modules-systemjs" "^7.15.4" + "@babel/plugin-transform-modules-umd" "^7.14.5" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.14.9" + "@babel/plugin-transform-new-target" "^7.14.5" + "@babel/plugin-transform-object-super" "^7.14.5" + "@babel/plugin-transform-parameters" "^7.15.4" + "@babel/plugin-transform-property-literals" "^7.14.5" + "@babel/plugin-transform-regenerator" "^7.14.5" + "@babel/plugin-transform-reserved-words" "^7.14.5" + "@babel/plugin-transform-shorthand-properties" "^7.14.5" + "@babel/plugin-transform-spread" "^7.14.6" + "@babel/plugin-transform-sticky-regex" "^7.14.5" + "@babel/plugin-transform-template-literals" "^7.14.5" + "@babel/plugin-transform-typeof-symbol" "^7.14.5" + "@babel/plugin-transform-unicode-escapes" "^7.14.5" + "@babel/plugin-transform-unicode-regex" "^7.14.5" + "@babel/preset-modules" "^0.1.4" + "@babel/types" "^7.15.4" + babel-plugin-polyfill-corejs2 "^0.2.2" + babel-plugin-polyfill-corejs3 "^0.2.2" + babel-plugin-polyfill-regenerator "^0.2.2" + core-js-compat "^3.16.0" + semver "^6.3.0" -"@babel/preset-modules@^0.1.3": - version "0.1.3" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" - integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== +"@babel/preset-modules@^0.1.4": + version "0.1.4" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" + integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" @@ -1030,119 +897,54 @@ "@babel/types" "^7.4.4" esutils "^2.0.2" -"@babel/register@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.10.5.tgz#354f3574895f1307f79efe37a51525e52fd38d89" - integrity sha512-eYHdLv43nyvmPn9bfNfrcC4+iYNwdQ8Pxk1MFJuU/U5LpSYl/PH4dFMazCYZDFVi8ueG3shvO+AQfLrxpYulQw== +"@babel/register@^7.15.3": + version "7.15.3" + resolved "https://registry.yarnpkg.com/@babel/register/-/register-7.15.3.tgz#6b40a549e06ec06c885b2ec42c3dd711f55fe752" + integrity sha512-mj4IY1ZJkorClxKTImccn4T81+UKTo4Ux0+OFSV9hME1ooqS9UV+pJ6BjD0qXPK4T3XW/KNa79XByjeEMZz+fw== dependencies: + clone-deep "^4.0.1" find-cache-dir "^2.0.0" - lodash "^4.17.19" make-dir "^2.1.0" pirates "^4.0.0" source-map-support "^0.5.16" -"@babel/runtime@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.10.5.tgz#303d8bd440ecd5a491eae6117fd3367698674c5c" - integrity sha512-otddXKhdNn7d0ptoFRHtMLa8LqDxLYwTjB4nYgM1yy5N6gU/MUf8zqyyLltCH3yAVitBzmwK4us+DD0l/MauAg== +"@babel/runtime@^7.10.5", "@babel/runtime@^7.8.4": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.15.4.tgz#fd17d16bfdf878e6dd02d19753a39fa8a8d9c84a" + integrity sha512-99catp6bHCaxr4sJ/DbTGgHS4+Rs2RVd2g7iOap6SLGPDknRK9ztKNsE/Fg6QhSeh1FGE5f6gHGQmvvn3I3xhw== dependencies: regenerator-runtime "^0.13.4" -"@babel/runtime@^7.8.4": - version "7.9.2" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" - integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.10.4", "@babel/template@^7.3.3": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz#3251996c4200ebc71d1a8fc405fba940f36ba278" - integrity sha512-ZCjD27cGJFUB6nmCB1Enki3r+L5kJveX9pq1SvAUKoICy6CZ9yD8xO086YXdYhvNjBdnekm4ZnaP5yC8Cs/1tA== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - -"@babel/template@^7.4.0", "@babel/template@^7.7.4", "@babel/template@^7.8.3", "@babel/template@^7.8.6": - version "7.8.6" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" - integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/parser" "^7.8.6" - "@babel/types" "^7.8.6" - -"@babel/traverse@^7.1.0", "@babel/traverse@^7.4.3", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.4", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2" - integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== - dependencies: - "@babel/code-frame" "^7.8.3" - "@babel/generator" "^7.9.5" - "@babel/helper-function-name" "^7.9.5" - "@babel/helper-split-export-declaration" "^7.8.3" - "@babel/parser" "^7.9.0" - "@babel/types" "^7.9.5" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.4.tgz#e642e5395a3b09cc95c8e74a27432b484b697818" - integrity sha512-aSy7p5THgSYm4YyxNGz6jZpXf+Ok40QF3aA2LyIONkDHpAcJzDUqlCKXv6peqYUs2gmic849C/t2HKw2a2K20Q== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.4" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/parser" "^7.10.4" - "@babel/types" "^7.10.4" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.13" - -"@babel/traverse@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz#77ce464f5b258be265af618d8fddf0536f20b564" - integrity sha512-yc/fyv2gUjPqzTz0WHeRJH2pv7jA9kA7mBX2tXl/x5iOE81uaVPuGPtaYk7wmkx4b67mQ7NqI8rmT2pF47KYKQ== - dependencies: - "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.10.5" - "@babel/helper-function-name" "^7.10.4" - "@babel/helper-split-export-declaration" "^7.10.4" - "@babel/parser" "^7.10.5" - "@babel/types" "^7.10.5" +"@babel/template@^7.15.4", "@babel/template@^7.3.3": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.15.4.tgz#51898d35dcf3faa670c4ee6afcfd517ee139f194" + integrity sha512-UgBAfEa1oGuYgDIPM2G+aHa4Nlo9Lh6mGD2bDBGMTbYnc38vulXPuC1MGjYILIEmlwl6Rd+BPR9ee3gm20CBtg== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" + +"@babel/traverse@^7.1.0", "@babel/traverse@^7.13.0", "@babel/traverse@^7.15.4", "@babel/traverse@^7.7.0", "@babel/traverse@^7.7.2": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.15.4.tgz#ff8510367a144bfbff552d9e18e28f3e2889c22d" + integrity sha512-W6lQD8l4rUbQR/vYgSuCAE75ADyyQvOpFVsvPPdkhf6lATXAsQIG9YdtOcu8BB1dZ0LKu+Zo3c1wEcbKeuhdlA== + dependencies: + "@babel/code-frame" "^7.14.5" + "@babel/generator" "^7.15.4" + "@babel/helper-function-name" "^7.15.4" + "@babel/helper-hoist-variables" "^7.15.4" + "@babel/helper-split-export-declaration" "^7.15.4" + "@babel/parser" "^7.15.4" + "@babel/types" "^7.15.4" debug "^4.1.0" globals "^11.1.0" - lodash "^4.17.19" -"@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.4.0", "@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": - version "7.9.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" - integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== +"@babel/types@^7.0.0", "@babel/types@^7.15.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4", "@babel/types@^7.7.0": + version "7.15.4" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.4.tgz#74eeb86dbd6748d2741396557b9860e57fce0a0d" + integrity sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw== dependencies: - "@babel/helper-validator-identifier" "^7.9.5" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.4.tgz#369517188352e18219981efd156bfdb199fff1ee" - integrity sha512-UTCFOxC3FsFHb7lkRMVvgLzaRVamXuAs2Tz4wajva4WxtVY82eZeaUBtC2Zt95FU9TiznuC0Zk35tsim8jeVpg== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.13" - to-fast-properties "^2.0.0" - -"@babel/types@^7.10.5", "@babel/types@^7.3.3": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz#d88ae7e2fde86bfbfe851d4d81afa70a997b5d15" - integrity sha512-ixV66KWfCI6GKoA/2H9v6bQdbfXEwwpOdQ8cRvb4F+eyvhlaHxWFMQB4+3d9QFJXZsiiiqVrewNV0DFEQpyT4Q== - dependencies: - "@babel/helper-validator-identifier" "^7.10.4" - lodash "^4.17.19" + "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" "@bcoe/v8-coverage@^0.2.3": @@ -1158,132 +960,139 @@ exec-sh "^0.3.2" minimist "^1.2.0" +"@eslint/eslintrc@^0.4.3": + version "0.4.3" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c" + integrity sha512-J6KFFz5QCYUJq3pf0mjEcCJVERbzv71PUIDczuh9JkwGEzced6CO5ADLHB1rbf/+oPBtoPfMYNOpGDzCANlbXw== + dependencies: + ajv "^6.12.4" + debug "^4.1.1" + espree "^7.3.0" + globals "^13.9.0" + ignore "^4.0.6" + import-fresh "^3.2.1" + js-yaml "^3.13.1" + minimatch "^3.0.4" + strip-json-comments "^3.1.1" + +"@humanwhocodes/config-array@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.5.0.tgz#1407967d4c6eecd7388f83acf1eaf4d0c6e58ef9" + integrity sha512-FagtKFz74XrTl7y6HCzQpwDfXP0yhxe9lHLD1UZxjvZIcbyRz8zTFF/yYNfSfzU414eDwZ1SrO0Qvtyf+wFMQg== + dependencies: + "@humanwhocodes/object-schema" "^1.2.0" + debug "^4.1.1" + minimatch "^3.0.4" + +"@humanwhocodes/object-schema@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-1.2.0.tgz#87de7af9c231826fdd68ac7258f77c429e0e5fcf" + integrity sha512-wdppn25U8z/2yiaT6YGquE6X8sSv7hNMWSXYSSU1jGv/yd6XqjXgTDJ8KP4NgjTXfJ3GbRjeeb8RTV7a/VpM+w== + "@istanbuljs/load-nyc-config@^1.0.0": - version "1.0.0" - resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.0.0.tgz#10602de5570baea82f8afbfa2630b24e7a8cfe5b" - integrity sha512-ZR0rq/f/E4f4XcgnDvtMWXCUJpi8eO0rssVhmztsZqLIEFA9UUP9zmpE0VxlM+kv/E1ul2I876Fwil2ayptDVg== + version "1.1.0" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: camelcase "^5.3.1" find-up "^4.1.0" + get-package-type "^0.1.0" js-yaml "^3.13.1" resolve-from "^5.0.0" "@istanbuljs/schema@^0.1.2": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd" - integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw== - -"@jest/console@^24.7.1", "@jest/console@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-24.9.0.tgz#79b1bc06fb74a8cfb01cbdedf945584b1b9707f0" - integrity sha512-Zuj6b8TnKXi3q4ymac8EQfc3ea/uhLeCGThFqXeC8H9/raaH8ARPUTdId+XyGd03Z4In0/VjD2OYFcBF09fNLQ== - dependencies: - "@jest/source-map" "^24.9.0" - chalk "^2.0.1" - slash "^2.0.0" + version "0.1.3" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-26.1.0.tgz#f67c89e4f4d04dbcf7b052aed5ab9c74f915b954" - integrity sha512-+0lpTHMd/8pJp+Nd4lyip+/Iyf2dZJvcCqrlkeZQoQid+JlThA4M9vxHtheyrQ99jJTMQam+es4BcvZ5W5cC3A== +"@jest/console@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-27.1.0.tgz#de13b603cb1d389b50c0dc6296e86e112381e43c" + integrity sha512-+Vl+xmLwAXLNlqT61gmHEixeRbS4L8MUzAjtpBCOPWH+izNI/dR16IeXjkXJdRtIVWVSf9DO1gdp67B1XorZhQ== dependencies: - "@jest/types" "^26.1.0" + "@jest/types" "^27.1.0" + "@types/node" "*" chalk "^4.0.0" - jest-message-util "^26.1.0" - jest-util "^26.1.0" + jest-message-util "^27.1.0" + jest-util "^27.1.0" slash "^3.0.0" -"@jest/core@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-26.1.0.tgz#4580555b522de412a7998b3938c851e4f9da1c18" - integrity sha512-zyizYmDJOOVke4OO/De//aiv8b07OwZzL2cfsvWF3q9YssfpcKfcnZAwDY8f+A76xXSMMYe8i/f/LPocLlByfw== +"@jest/core@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-27.1.0.tgz#622220f18032f5869e579cecbe744527238648bf" + integrity sha512-3l9qmoknrlCFKfGdrmiQiPne+pUR4ALhKwFTYyOeKw6egfDwJkO21RJ1xf41rN8ZNFLg5W+w6+P4fUqq4EMRWA== dependencies: - "@jest/console" "^26.1.0" - "@jest/reporters" "^26.1.0" - "@jest/test-result" "^26.1.0" - "@jest/transform" "^26.1.0" - "@jest/types" "^26.1.0" + "@jest/console" "^27.1.0" + "@jest/reporters" "^27.1.0" + "@jest/test-result" "^27.1.0" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" + emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-changed-files "^26.1.0" - jest-config "^26.1.0" - jest-haste-map "^26.1.0" - jest-message-util "^26.1.0" - jest-regex-util "^26.0.0" - jest-resolve "^26.1.0" - jest-resolve-dependencies "^26.1.0" - jest-runner "^26.1.0" - jest-runtime "^26.1.0" - jest-snapshot "^26.1.0" - jest-util "^26.1.0" - jest-validate "^26.1.0" - jest-watcher "^26.1.0" - micromatch "^4.0.2" + jest-changed-files "^27.1.0" + jest-config "^27.1.0" + jest-haste-map "^27.1.0" + jest-message-util "^27.1.0" + jest-regex-util "^27.0.6" + jest-resolve "^27.1.0" + jest-resolve-dependencies "^27.1.0" + jest-runner "^27.1.0" + jest-runtime "^27.1.0" + jest-snapshot "^27.1.0" + jest-util "^27.1.0" + jest-validate "^27.1.0" + jest-watcher "^27.1.0" + micromatch "^4.0.4" p-each-series "^2.1.0" rimraf "^3.0.0" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-24.9.0.tgz#21e3afa2d65c0586cbd6cbefe208bafade44ab18" - integrity sha512-5A1QluTPhvdIPFYnO3sZC3smkNeXPVELz7ikPbhUj0bQjB07EoE9qtLrem14ZUYWdVayYbsjVwIiL4WBIMV4aQ== - dependencies: - "@jest/fake-timers" "^24.9.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - -"@jest/environment@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-26.1.0.tgz#378853bcdd1c2443b4555ab908cfbabb851e96da" - integrity sha512-86+DNcGongbX7ai/KE/S3/NcUVZfrwvFzOOWX/W+OOTvTds7j07LtC+MgGydH5c8Ri3uIrvdmVgd1xFD5zt/xA== - dependencies: - "@jest/fake-timers" "^26.1.0" - "@jest/types" "^26.1.0" - jest-mock "^26.1.0" - -"@jest/fake-timers@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-24.9.0.tgz#ba3e6bf0eecd09a636049896434d306636540c93" - integrity sha512-eWQcNa2YSwzXWIMC5KufBh3oWRIijrQFROsIqt6v/NS9Io/gknw1jsAC9c+ih/RQX4A3O7SeWAhQeN0goKhT9A== - dependencies: - "@jest/types" "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - -"@jest/fake-timers@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-26.1.0.tgz#9a76b7a94c351cdbc0ad53e5a748789f819a65fe" - integrity sha512-Y5F3kBVWxhau3TJ825iuWy++BAuQzK/xEa+wD9vDH3RytW9f2DbMVodfUQC54rZDX3POqdxCgcKdgcOL0rYUpA== - dependencies: - "@jest/types" "^26.1.0" - "@sinonjs/fake-timers" "^6.0.1" - jest-message-util "^26.1.0" - jest-mock "^26.1.0" - jest-util "^26.1.0" - -"@jest/globals@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-26.1.0.tgz#6cc5d7cbb79b76b120f2403d7d755693cf063ab1" - integrity sha512-MKiHPNaT+ZoG85oMaYUmGHEqu98y3WO2yeIDJrs2sJqHhYOy3Z6F7F/luzFomRQ8SQ1wEkmahFAz2291Iv8EAw== - dependencies: - "@jest/environment" "^26.1.0" - "@jest/types" "^26.1.0" - expect "^26.1.0" - -"@jest/reporters@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-26.1.0.tgz#08952e90c90282e14ff49e927bdf1873617dae78" - integrity sha512-SVAysur9FOIojJbF4wLP0TybmqwDkdnFxHSPzHMMIYyBtldCW9gG+Q5xWjpMFyErDiwlRuPyMSJSU64A67Pazg== +"@jest/environment@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-27.1.0.tgz#c7224a67004759ec203d8fa44e8bc0db93f66c44" + integrity sha512-wRp50aAMY2w1U2jP1G32d6FUVBNYqmk8WaGkiIEisU48qyDV0WPtw3IBLnl7orBeggveommAkuijY+RzVnNDOQ== + dependencies: + "@jest/fake-timers" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/node" "*" + jest-mock "^27.1.0" + +"@jest/fake-timers@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-27.1.0.tgz#c0b343d8a16af17eab2cb6862e319947c0ea2abe" + integrity sha512-22Zyn8il8DzpS+30jJNVbTlm7vAtnfy1aYvNeOEHloMlGy1PCYLHa4PWlSws0hvNsMM5bON6GISjkLoQUV3oMA== + dependencies: + "@jest/types" "^27.1.0" + "@sinonjs/fake-timers" "^7.0.2" + "@types/node" "*" + jest-message-util "^27.1.0" + jest-mock "^27.1.0" + jest-util "^27.1.0" + +"@jest/globals@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-27.1.0.tgz#e093a49c718dd678a782c197757775534c88d3f2" + integrity sha512-73vLV4aNHAlAgjk0/QcSIzzCZSqVIPbmFROJJv9D3QUR7BI4f517gVdJpSrCHxuRH3VZFhe0yGG/tmttlMll9g== + dependencies: + "@jest/environment" "^27.1.0" + "@jest/types" "^27.1.0" + expect "^27.1.0" + +"@jest/reporters@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-27.1.0.tgz#02ed1e6601552c2f6447378533f77aad002781d4" + integrity sha512-5T/zlPkN2HnK3Sboeg64L5eC8iiaZueLpttdktWTJsvALEtP2YMkC5BQxwjRWQACG9SwDmz+XjjkoxXUDMDgdw== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^26.1.0" - "@jest/test-result" "^26.1.0" - "@jest/transform" "^26.1.0" - "@jest/types" "^26.1.0" + "@jest/console" "^27.1.0" + "@jest/test-result" "^27.1.0" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" chalk "^4.0.0" collect-v8-coverage "^1.0.0" exit "^0.1.2" @@ -1294,220 +1103,232 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.0.2" - jest-haste-map "^26.1.0" - jest-resolve "^26.1.0" - jest-util "^26.1.0" - jest-worker "^26.1.0" + jest-haste-map "^27.1.0" + jest-resolve "^27.1.0" + jest-util "^27.1.0" + jest-worker "^27.1.0" slash "^3.0.0" source-map "^0.6.0" string-length "^4.0.1" terminal-link "^2.0.0" - v8-to-istanbul "^4.1.3" - optionalDependencies: - node-notifier "^7.0.0" + v8-to-istanbul "^8.0.0" -"@jest/source-map@^24.3.0", "@jest/source-map@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-24.9.0.tgz#0e263a94430be4b41da683ccc1e6bffe2a191714" - integrity sha512-/Xw7xGlsZb4MJzNDgB7PW5crou5JqWiBQaz6xyPd3ArOg2nfn/PunV8+olXbbEZzNl591o5rWKE9BRDaFAuIBg== - dependencies: - callsites "^3.0.0" - graceful-fs "^4.1.15" - source-map "^0.6.0" - -"@jest/source-map@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-26.1.0.tgz#a6a020d00e7d9478f4b690167c5e8b77e63adb26" - integrity sha512-XYRPYx4eEVX15cMT9mstnO7hkHP3krNtKfxUYd8L7gbtia8JvZZ6bMzSwa6IQJENbudTwKMw5R1BePRD+bkEmA== +"@jest/source-map@^27.0.6": + version "27.0.6" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-27.0.6.tgz#be9e9b93565d49b0548b86e232092491fb60551f" + integrity sha512-Fek4mi5KQrqmlY07T23JRi0e7Z9bXTOOD86V/uS0EIW4PClvPDqZOyFlLpNJheS6QI0FNX1CgmPjtJ4EA/2M+g== dependencies: callsites "^3.0.0" graceful-fs "^4.2.4" source-map "^0.6.0" -"@jest/test-result@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-24.9.0.tgz#11796e8aa9dbf88ea025757b3152595ad06ba0ca" - integrity sha512-XEFrHbBonBJ8dGp2JmF8kP/nQI/ImPpygKHwQ/SY+es59Z3L5PI4Qb9TQQMAEeYsThG1xF0k6tmG0tIKATNiiA== - dependencies: - "@jest/console" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/istanbul-lib-coverage" "^2.0.0" - -"@jest/test-result@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-26.1.0.tgz#a93fa15b21ad3c7ceb21c2b4c35be2e407d8e971" - integrity sha512-Xz44mhXph93EYMA8aYDz+75mFbarTV/d/x0yMdI3tfSRs/vh4CqSxgzVmCps1fPkHDCtn0tU8IH9iCKgGeGpfw== +"@jest/test-result@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-27.1.0.tgz#9345ae5f97f6a5287af9ebd54716cd84331d42e8" + integrity sha512-Aoz00gpDL528ODLghat3QSy6UBTD5EmmpjrhZZMK/v1Q2/rRRqTGnFxHuEkrD4z/Py96ZdOHxIWkkCKRpmnE1A== dependencies: - "@jest/console" "^26.1.0" - "@jest/types" "^26.1.0" + "@jest/console" "^27.1.0" + "@jest/types" "^27.1.0" "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-24.9.0.tgz#f8f334f35b625a4f2f355f2fe7e6036dad2e6b31" - integrity sha512-6qqsU4o0kW1dvA95qfNog8v8gkRN9ph6Lz7r96IvZpHdNipP2cBcb07J1Z45mz/VIS01OHJ3pY8T5fUY38tg4A== - dependencies: - "@jest/test-result" "^24.9.0" - jest-haste-map "^24.9.0" - jest-runner "^24.9.0" - jest-runtime "^24.9.0" - -"@jest/test-sequencer@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-26.1.0.tgz#41a6fc8b850c3f33f48288ea9ea517c047e7f14e" - integrity sha512-Z/hcK+rTq56E6sBwMoQhSRDVjqrGtj1y14e2bIgcowARaIE1SgOanwx6gvY4Q9gTKMoZQXbXvptji+q5GYxa6Q== +"@jest/test-sequencer@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-27.1.0.tgz#04e8b3bd735570d3d48865e74977a14dc99bff2d" + integrity sha512-lnCWawDr6Z1DAAK9l25o3AjmKGgcutq1iIbp+hC10s/HxnB8ZkUsYq1FzjOoxxZ5hW+1+AthBtvS4x9yno3V1A== dependencies: - "@jest/test-result" "^26.1.0" + "@jest/test-result" "^27.1.0" graceful-fs "^4.2.4" - jest-haste-map "^26.1.0" - jest-runner "^26.1.0" - jest-runtime "^26.1.0" + jest-haste-map "^27.1.0" + jest-runtime "^27.1.0" -"@jest/transform@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-24.9.0.tgz#4ae2768b296553fadab09e9ec119543c90b16c56" - integrity sha512-TcQUmyNRxV94S0QpMOnZl0++6RMiqpbH/ZMccFB/amku6Uwvyb1cjYX7xkp5nGNkbX4QPH/FcB6q1HBTHynLmQ== +"@jest/transform@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.6.2.tgz#5ac57c5fa1ad17b2aae83e73e45813894dcf2e4b" + integrity sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^24.9.0" - babel-plugin-istanbul "^5.1.0" - chalk "^2.0.1" + "@jest/types" "^26.6.2" + babel-plugin-istanbul "^6.0.0" + chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" - graceful-fs "^4.1.15" - jest-haste-map "^24.9.0" - jest-regex-util "^24.9.0" - jest-util "^24.9.0" - micromatch "^3.1.10" + graceful-fs "^4.2.4" + jest-haste-map "^26.6.2" + jest-regex-util "^26.0.0" + jest-util "^26.6.2" + micromatch "^4.0.2" pirates "^4.0.1" - realpath-native "^1.1.0" - slash "^2.0.0" + slash "^3.0.0" source-map "^0.6.1" - write-file-atomic "2.4.1" + write-file-atomic "^3.0.0" -"@jest/transform@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-26.1.0.tgz#697f48898c2a2787c9b4cb71d09d7e617464e509" - integrity sha512-ICPm6sUXmZJieq45ix28k0s+d/z2E8CHDsq+WwtWI6kW8m7I8kPqarSEcUN86entHQ570ZBRci5OWaKL0wlAWw== +"@jest/transform@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-27.1.0.tgz#962e385517e3d1f62827fa39c305edcc3ca8544b" + integrity sha512-ZRGCA2ZEVJ00ubrhkTG87kyLbN6n55g1Ilq0X9nJb5bX3MhMp3O6M7KG+LvYu+nZRqG5cXsQnJEdZbdpTAV8pQ== dependencies: "@babel/core" "^7.1.0" - "@jest/types" "^26.1.0" + "@jest/types" "^27.1.0" babel-plugin-istanbul "^6.0.0" chalk "^4.0.0" convert-source-map "^1.4.0" fast-json-stable-stringify "^2.0.0" graceful-fs "^4.2.4" - jest-haste-map "^26.1.0" - jest-regex-util "^26.0.0" - jest-util "^26.1.0" - micromatch "^4.0.2" + jest-haste-map "^27.1.0" + jest-regex-util "^27.0.6" + jest-util "^27.1.0" + micromatch "^4.0.4" pirates "^4.0.1" slash "^3.0.0" source-map "^0.6.1" write-file-atomic "^3.0.0" -"@jest/types@^24.9.0": - version "24.9.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-24.9.0.tgz#63cb26cb7500d069e5a389441a7c6ab5e909fc59" - integrity sha512-XKK7ze1apu5JWQ5eZjHITP66AX+QsLlbaJRBGYr8pNzwcAE2JVkwnf0yqjHTsDRcjR0mujy/NmZMXw5kl+kGBw== +"@jest/types@^26.6.2": + version "26.6.2" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.6.2.tgz#bef5a532030e1d88a2f5a6d933f84e97226ed48e" + integrity sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^13.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^15.0.0" + chalk "^4.0.0" -"@jest/types@^26.1.0": - version "26.1.0" - resolved "https://registry.yarnpkg.com/@jest/types/-/types-26.1.0.tgz#f8afaaaeeb23b5cad49dd1f7779689941dcb6057" - integrity sha512-GXigDDsp6ZlNMhXQDeuy/iYCDsRIHJabWtDzvnn36+aqFfG14JmFV0e/iXxY4SP9vbXSiPNOWdehU5MeqrYHBQ== +"@jest/types@^27.1.0": + version "27.1.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-27.1.0.tgz#674a40325eab23c857ebc0689e7e191a3c5b10cc" + integrity sha512-pRP5cLIzN7I7Vp6mHKRSaZD7YpBTK7hawx5si8trMKqk4+WOdK8NEKOTO2G8PKWD1HbKMVckVB6/XHh/olhf2g== dependencies: "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^1.1.1" - "@types/yargs" "^15.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^16.0.0" chalk "^4.0.0" -"@ledgerhq/devices@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.19.1.tgz#d155916d38eaf09d721faa0267d5cc043190aa95" - integrity sha512-i7PU0fsOkV5JDuD+57AliJ0FIBPgSSKbH8MbTOpYRhyAWfC7e7Em0SVl2B2JbzxjJ6/ltTq2+7zjLewu/ie5AA== - dependencies: - "@ledgerhq/errors" "^5.19.1" - "@ledgerhq/logs" "^5.19.1" - rxjs "^6.6.0" - -"@ledgerhq/errors@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.19.1.tgz#3d25cc0ee92feee35415236c741ef668a106e275" - integrity sha512-9v4ishxc2doiR06E/87uJdT7LjnSpnWPftDaBXBm/6KEgjPGtGBCcRW3fkmQTWNE115e6TG9JYRiVRPuqs6GHg== - -"@ledgerhq/hw-transport-node-hid-noevents@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-5.19.1.tgz#e8cb048df95081f4b674e179020198957aae25fb" - integrity sha512-/d8xXlGFPOWLowflkHGlJr/x1fM5uBfo5puFOlzchcUH8u3HclW0E9LmpKoLPQOvlePw8AwduYeZnDQi51h+mQ== - dependencies: - "@ledgerhq/devices" "^5.19.1" - "@ledgerhq/errors" "^5.19.1" - "@ledgerhq/hw-transport" "^5.19.1" - "@ledgerhq/logs" "^5.19.1" - node-hid "^1.3.0" - -"@ledgerhq/hw-transport-node-hid@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-5.19.1.tgz#75017ad106a1c8c809ffb255a73f87ea5bfdd51d" - integrity sha512-8+FvB8MPYfRs6DqxwFjFxe5+7l4uOuwWHP7WXh4lcv26fU3jVOTghOr82YQwE+LPiYeQntViLwsLmp9DUiPQQA== - dependencies: - "@ledgerhq/devices" "^5.19.1" - "@ledgerhq/errors" "^5.19.1" - "@ledgerhq/hw-transport" "^5.19.1" - "@ledgerhq/hw-transport-node-hid-noevents" "^5.19.1" - "@ledgerhq/logs" "^5.19.1" - lodash "^4.17.19" - node-hid "^1.3.0" - usb "^1.6.3" +"@ledgerhq/devices@^5.51.1": + version "5.51.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-5.51.1.tgz#d741a4a5d8f17c2f9d282fd27147e6fe1999edb7" + integrity sha512-4w+P0VkbjzEXC7kv8T1GJ/9AVaP9I6uasMZ/JcdwZBS3qwvKo5A5z9uGhP5c7TvItzcmPb44b5Mw2kT+WjUuAA== + dependencies: + "@ledgerhq/errors" "^5.50.0" + "@ledgerhq/logs" "^5.50.0" + rxjs "6" + semver "^7.3.5" + +"@ledgerhq/devices@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/devices/-/devices-6.3.0.tgz#7ee59614198882311d1805912e368451527d05b2" + integrity sha512-DmVxqMAf3FhkpKjkbBCFVJ5DmesfplujeCLzFwO/zF5VGuwY7xxPqeSxlpusXJkqhEq+DbFzIDRWJYDf7rtXqg== + dependencies: + "@ledgerhq/errors" "^6.2.0" + "@ledgerhq/logs" "^6.2.0" + rxjs "6" + semver "^7.3.5" + +"@ledgerhq/errors@^5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-5.50.0.tgz#e3a6834cb8c19346efca214c1af84ed28e69dad9" + integrity sha512-gu6aJ/BHuRlpU7kgVpy2vcYk6atjB4iauP2ymF7Gk0ez0Y/6VSMVSJvubeEQN+IV60+OBK0JgeIZG7OiHaw8ow== + +"@ledgerhq/errors@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/errors/-/errors-6.2.0.tgz#7dc2b3bf6bdedccdaa1b97dccacfa912c4fc22f8" + integrity sha512-eO03x8HJmG60WtlrMuahigW/rwywFdcGzCnihta/MjkM8BD9A660cKVkyIuheCcpaB7UV/r+QsRl9abHbjjaag== + +"@ledgerhq/hw-transport-node-hid-noevents@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid-noevents/-/hw-transport-node-hid-noevents-6.3.0.tgz#4efc52df4e9eb17e512b4622fcefb508358bc85d" + integrity sha512-07YmZg7wXl3T2lBe6xeuba3Sdbm2TfPZgXWSFBOMjf4LOCEpKedozv+eyUYMQtbCJeDFQhNG44qw61xfHyi6Ow== + dependencies: + "@ledgerhq/devices" "^6.3.0" + "@ledgerhq/errors" "^6.2.0" + "@ledgerhq/hw-transport" "^6.3.0" + "@ledgerhq/logs" "^6.2.0" + node-hid "2.1.1" + +"@ledgerhq/hw-transport-node-hid@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport-node-hid/-/hw-transport-node-hid-6.3.0.tgz#b8a272b05e6f589bdfcc89463e05963798d1f9e8" + integrity sha512-0PaBDcDkTfmtEA3ndHlA9viRHA0LPSyvIm3GqXDN03QwrDeJDLnp+BZmp95YskujDWm+fk5j1PBSScvm4p9p/g== + dependencies: + "@ledgerhq/devices" "^6.3.0" + "@ledgerhq/errors" "^6.2.0" + "@ledgerhq/hw-transport" "^6.3.0" + "@ledgerhq/hw-transport-node-hid-noevents" "^6.3.0" + "@ledgerhq/logs" "^6.2.0" + lodash "^4.17.21" + node-hid "2.1.1" + usb "^1.7.0" "@ledgerhq/hw-transport@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.19.1.tgz#8dc58b4348577e582c11aadd399abeacb78f9193" - integrity sha512-Ec2I6jI1jrxkqaCdyEXVwra/3gOnzwWhv3eJTIqzT1wKrUNeG6B27cau0ETiLdgOtbRQ8fltonCo8Od3MC2h+Q== + version "5.51.1" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-5.51.1.tgz#8dd14a8e58cbee4df0c29eaeef983a79f5f22578" + integrity sha512-6wDYdbWrw9VwHIcoDnqWBaDFyviyjZWv6H9vz9Vyhe4Qd7TIFmbTl/eWs6hZvtZBza9K8y7zD8ChHwRI4s9tSw== + dependencies: + "@ledgerhq/devices" "^5.51.1" + "@ledgerhq/errors" "^5.50.0" + events "^3.3.0" + +"@ledgerhq/hw-transport@^6.3.0": + version "6.3.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/hw-transport/-/hw-transport-6.3.0.tgz#4fc966b1a68c991c0a6b5384841f99c4f8304ce9" + integrity sha512-kdnVrgmxrFtKaRdkoaQBEa02RXgLzEBiooYbxA65BGSJig3PGWDS9LrqNpzLTZM1RQlivd9NLBmfwU2ze4chWA== dependencies: - "@ledgerhq/devices" "^5.19.1" - "@ledgerhq/errors" "^5.19.1" - events "^3.1.0" + "@ledgerhq/devices" "^6.3.0" + "@ledgerhq/errors" "^6.2.0" + events "^3.3.0" + +"@ledgerhq/logs@^5.50.0": + version "5.50.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.50.0.tgz#29c6419e8379d496ab6d0426eadf3c4d100cd186" + integrity sha512-swKHYCOZUGyVt4ge0u8a7AwNcA//h4nx5wIi0sruGye1IJ5Cva0GyK9L2/WdX+kWVTKp92ZiEo1df31lrWGPgA== -"@ledgerhq/logs@^5.19.1": - version "5.19.1" - resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-5.19.1.tgz#c3df2b307331ccd373abc78b8ccea02377049256" - integrity sha512-nz33IoR3dG3DtJ46AyfLfpdMjGMkwmi21H49wcqVfNAteEe74fzO4cw9fcGMb4ENspYYtmB4LWTSp4gVPRglcg== +"@ledgerhq/logs@^6.2.0": + version "6.2.0" + resolved "https://registry.yarnpkg.com/@ledgerhq/logs/-/logs-6.2.0.tgz#9fb2d6f1811316697f7b3cc14607f6c608912419" + integrity sha512-SLyFyD7ElMhgKWPYedFGCT/ilcbGPgL5hXXYHxOM79Fs5fWi0zaUpt5oGqGMsOAAFaMa9/rbun0pokzPhEFz8A== + +"@nicolo-ribaudo/chokidar-2@2.1.8-no-fsevents.2": + version "2.1.8-no-fsevents.2" + resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.2.tgz#e324c0a247a5567192dd7180647709d7e2faf94b" + integrity sha512-Fb8WxUFOBQVl+CX4MWet5o7eCc6Pj04rXIwVKZ6h1NnqTo45eOQW6aWyhG25NIODvWFwTDMwBsYxrQ3imxpetg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^5.1.2" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" "@sinonjs/commons@^1.7.0": - version "1.7.2" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.7.2.tgz#505f55c74e0272b43f6c52d81946bed7058fc0e2" - integrity sha512-+DUO6pnp3udV/v2VfUWgaY5BIE1IfT7lLfeDzPVeMT1XKkaAp9LgSI9x5RtrFQoZ9Oi0PgXQQHPaoKu7dCjVxw== + version "1.8.3" + resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.3.tgz#3802ddd21a50a949b6721ddd72da36e67e7f1b2d" + integrity sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^6.0.1": - version "6.0.1" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" - integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== +"@sinonjs/fake-timers@^7.0.2": + version "7.1.2" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-7.1.2.tgz#2524eae70c4910edccf99b2f4e6efc5894aff7b5" + integrity sha512-iQADsW4LBMISqZ6Ci1dupJL9pprqwcVFTcOsEmQOEhW+KLCVn/Y4Jrvg2k19fIHCp+iFprriYPTdRcQR8NbUPg== dependencies: "@sinonjs/commons" "^1.7.0" -"@types/babel__core@^7.0.0": - version "7.1.9" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.9.tgz#77e59d438522a6fb898fa43dc3455c6e72f3963d" - integrity sha512-sY2RsIJ5rpER1u3/aQ8OFSI7qGIy8o1NEEbgb2UaJcvOtXOMpd39ko723NBpjQFg9SIX7TXtjejZVGeIMLhoOw== - dependencies: - "@babel/parser" "^7.1.0" - "@babel/types" "^7.0.0" - "@types/babel__generator" "*" - "@types/babel__template" "*" - "@types/babel__traverse" "*" +"@tootallnate/once@1": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== -"@types/babel__core@^7.1.0", "@types/babel__core@^7.1.7": - version "7.1.7" - resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.7.tgz#1dacad8840364a57c98d0dd4855c6dd3752c6b89" - integrity sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw== +"@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14", "@types/babel__core@^7.1.7": + version "7.1.15" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.1.15.tgz#2ccfb1ad55a02c83f8e0ad327cbc332f55eb1024" + integrity sha512-bxlMKPDbY8x5h6HBwVzEOk2C8fb6SLfYQ5Jw3uBYuYF1lfWk/kbLd81la82vrIkBb0l+JdmrZaDikPrNxpS/Ew== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" @@ -1516,43 +1337,38 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.1" - resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.1.tgz#4901767b397e8711aeb99df8d396d7ba7b7f0e04" - integrity sha512-bBKm+2VPJcMRVwNhxKu8W+5/zT7pwNEqeokFOmbvVSqGzFneNxYcEBro9Ac7/N9tlsaPYnZLK8J1LWKkMsLAew== + version "7.6.3" + resolved "https://registry.yarnpkg.com/@types/babel__generator/-/babel__generator-7.6.3.tgz#f456b4b2ce79137f768aa130d2423d2f0ccfaba5" + integrity sha512-/GWCmzJWqV7diQW54smJZzWbSFf4QYtF71WCKhcx6Ru/tFyQIY2eiiITcCAeuPbNSvT9YCGkVMqqvSk2Z0mXiA== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": - version "7.0.2" - resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.0.2.tgz#4ff63d6b52eddac1de7b975a5223ed32ecea9307" - integrity sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg== + version "7.4.1" + resolved "https://registry.yarnpkg.com/@types/babel__template/-/babel__template-7.4.1.tgz#3d1a48fd9d6c0edfd56f2ff578daed48f36c8969" + integrity sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.0.10" - resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.0.10.tgz#d9a99f017317d9b3d1abc2ced45d3bca68df0daf" - integrity sha512-74fNdUGrWsgIB/V9kTO5FGHPWYY6Eqn+3Z7L6Hc4e/BxjYV7puvBqp5HwsVYYfLm6iURYBNCx4Ut37OF9yitCw== +"@types/babel__traverse@*", "@types/babel__traverse@^7.0.4", "@types/babel__traverse@^7.0.6": + version "7.14.2" + resolved "https://registry.yarnpkg.com/@types/babel__traverse/-/babel__traverse-7.14.2.tgz#ffcd470bbb3f8bf30481678fb5502278ca833a43" + integrity sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA== dependencies: "@babel/types" "^7.3.0" -"@types/color-name@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" - integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== - "@types/graceful-fs@^4.1.2": - version "4.1.3" - resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.3.tgz#039af35fe26bec35003e8d86d2ee9c586354348f" - integrity sha512-AiHRaEB50LQg0pZmm659vNBb9f4SJ0qrAnteuzhSeAUcJKxoYgEnprg/83kppCnc2zvtCKbdZry1a5pVY3lOTQ== + version "4.1.5" + resolved "https://registry.yarnpkg.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" + integrity sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw== dependencies: "@types/node" "*" "@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" - integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz#4ba8ddb720221f432e443bd5f9117fd22cfd4762" + integrity sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw== "@types/istanbul-lib-report@*": version "3.0.0" @@ -1561,12 +1377,11 @@ dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" - integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== +"@types/istanbul-reports@^3.0.0": + version "3.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" + integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== dependencies: - "@types/istanbul-lib-coverage" "*" "@types/istanbul-lib-report" "*" "@types/json5@^0.0.29": @@ -1575,9 +1390,9 @@ integrity sha1-7ihweulOEdK4J7y+UnC86n8+ce4= "@types/node@*": - version "14.0.19" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.0.19.tgz#994d99708822bca643a2364f8aeed04a16e0f5a1" - integrity sha512-yf3BP/NIXF37BjrK5klu//asUWitOEoUP5xE1mhSUjazotwJ/eJDgEmMQNlOeWOVv72j24QQ+3bqXHE++CFGag== + version "16.7.10" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.10.tgz#7aa732cc47341c12a16b7d562f519c2383b6d4fc" + integrity sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA== "@types/node@10.12.18": version "10.12.18" @@ -1589,52 +1404,39 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-11.11.6.tgz#df929d1bb2eee5afdda598a41930fe50b43eaa6a" integrity sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ== -"@types/normalize-package-data@^2.4.0": - version "2.4.0" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz#e486d0d97396d79beedd0a6e33f4534ff6b4973e" - integrity sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA== - -"@types/prettier@^2.0.0": - version "2.0.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.0.2.tgz#5bb52ee68d0f8efa9cc0099920e56be6cc4e37f3" - integrity sha512-IkVfat549ggtkZUthUzEX49562eGikhSYeVGX97SkMFn+sTZrgRewXjQ4tPKFPCykZHkX1Zfd9OoELGqKU2jJA== +"@types/prettier@^2.1.5": + version "2.3.2" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" + integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== -"@types/stack-utils@^1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-1.0.1.tgz#0a851d3bd96498fa25c33ab7278ed3bd65f06c3e" - integrity sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw== +"@types/stack-utils@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/stack-utils/-/stack-utils-2.0.1.tgz#20f18294f797f2209b5f65c8e3b5c8e8261d127c" + integrity sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw== "@types/yargs-parser@*": - version "15.0.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" - integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + version "20.2.1" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.1.tgz#3b9ce2489919d9e4fea439b76916abc34b2df129" + integrity sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw== -"@types/yargs@^13.0.0": - version "13.0.8" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-13.0.8.tgz#a38c22def2f1c2068f8971acb3ea734eb3c64a99" - integrity sha512-XAvHLwG7UQ+8M4caKIH0ZozIOYay5fQkAgyIXegXT9jPtdIGdhga+sUEdAr1CiG46aB+c64xQEYyEzlwWVTNzA== +"@types/yargs@^15.0.0": + version "15.0.14" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.14.tgz#26d821ddb89e70492160b66d10a0eb6df8f6fb06" + integrity sha512-yEJzHoxf6SyQGhBhIYGXQDSCkJjB6HohDShto7m8vaKg9Yp0Yn8+71J9eakh2bnPg6BfsH9PRMhiRTZnd4eXGQ== dependencies: "@types/yargs-parser" "*" -"@types/yargs@^15.0.0": - version "15.0.4" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" - integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== +"@types/yargs@^16.0.0": + version "16.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-16.0.4.tgz#26aad98dd2c2a38e421086ea9ad42b9e51642977" + integrity sha512-T8Yc9wt/5LbJyCaLiHPReJa0kApcIgJ7Bn735GjItUfh08Z1pJvu8QZqb9s+mMvKV6WUQRV7K2R46YbjMXTTJw== dependencies: "@types/yargs-parser" "*" -abab@^2.0.0, abab@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.3.tgz#623e2075e02eb2d3f2475e49f99c91846467907a" - integrity sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg== - -acorn-globals@^4.1.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" +abab@^2.0.3, abab@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" + integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== acorn-globals@^6.0.0: version "6.0.0" @@ -1644,62 +1446,64 @@ acorn-globals@^6.0.0: acorn "^7.1.1" acorn-walk "^7.1.1" -acorn-jsx@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" - integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== - -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== +acorn-jsx@^5.3.1: + version "5.3.2" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^7.1.1: version "7.2.0" resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc" integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA== -acorn@^5.5.3: - version "5.7.4" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.7.4.tgz#3e8d8a9947d0599a1796d10225d7432f4a4acf5e" - integrity sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg== - -acorn@^6.0.1: - version "6.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" - integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== +acorn@^7.1.1, acorn@^7.4.0: + version "7.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" + integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== -acorn@^7.1.1: - version "7.1.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" - integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== +acorn@^8.2.4: + version "8.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.4.1.tgz#56c36251fc7cabc7096adc18f05afe814321a28c" + integrity sha512-asabaBSkEKosYKMITunzX177CXxQ4Q8BSSzMTKD+FefUhipQC70gfW5SiUDhYQ3vk8G+81HqQk7Fv9OXwwn9KA== -acorn@^7.2.0: - version "7.3.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz#85010754db53c3fbaf3b9ea3e083aa5c5d147ffd" - integrity sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA== +agent-base@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== + dependencies: + debug "4" -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.5.5: - version "6.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.0.tgz#06d60b96d87b8454a5adaba86e7854da629db4b7" - integrity sha512-D6gFiFA0RRLyUbvijN74DWAjXSFxWKaWP7mldxkVhyhAV3+SWA9HEJPHQ2c9soIeTFJqcSdFDGFgdqs1iUU2Hw== +ajv@^6.10.0, ajv@^6.12.4: + version "6.12.6" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" fast-json-stable-stringify "^2.0.0" json-schema-traverse "^0.4.1" uri-js "^4.2.2" +ajv@^8.0.1: + version "8.6.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.2.tgz#2fb45e0e5fcbc0813326c1c3da535d1881bb0571" + integrity sha512-9807RlWAgT564wT+DjeyU5OFMPjmzxVobvDFmNAhY+5zD6A2ly3jDp6sgnfyDtlIQ+7H97oc/DGCzzfu9rjw9w== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ansi-colors@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-escapes@^4.2.1: - version "4.3.1" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" - integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + version "4.3.2" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: - type-fest "^0.11.0" + type-fest "^0.21.3" ansi-regex@^2.0.0: version "2.1.1" @@ -1711,17 +1515,12 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= -ansi-regex@^4.0.0, ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - ansi-regex@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -1729,13 +1528,17 @@ ansi-styles@^3.2.0, ansi-styles@^3.2.1: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" - integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: - "@types/color-name" "^1.1.1" color-convert "^2.0.1" +ansi-styles@^5.0.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-5.2.0.tgz#07449690ad45777d1924ac2abb2fc8895dba836b" + integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== + anymatch@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" @@ -1744,10 +1547,10 @@ anymatch@^2.0.0: micromatch "^3.1.4" normalize-path "^2.1.1" -anymatch@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" - integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== +anymatch@^3.0.3, anymatch@~3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" + integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" @@ -1758,9 +1561,9 @@ aproba@^1.0.3: integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== are-we-there-yet@~1.1.2: - version "1.1.5" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" - integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + version "1.1.7" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz#b15474a932adab4ff8a50d9adfa7e4e926f21146" + integrity sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g== dependencies: delegates "^1.0.0" readable-stream "^2.0.6" @@ -1787,18 +1590,15 @@ arr-union@^3.1.0: resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - -array-includes@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" - integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== +array-includes@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.3.tgz#c7f619b382ad2afaf5326cddfdc0afc61af7690a" + integrity sha512-gcem1KlBU7c9rB+Rq8/3PPKsK2kjqeEBa3bD5kkQo4nYlOHQCJqIJFqBXDEfwaRuYTT4E+FxA9xez7Gf/e3Q7A== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0" + es-abstract "^1.18.0-next.2" + get-intrinsic "^1.1.1" is-string "^1.0.5" array-unique@^0.3.2: @@ -1806,46 +1606,35 @@ array-unique@^0.3.2: resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= -array.prototype.flat@^1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" - integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== +array.prototype.flat@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.4.tgz#6ef638b43312bd401b4c6199fdec7e2dc9e9a123" + integrity sha512-4470Xi3GAPAjZqFcljX2xzckv1qeKPizoNkiS0+O4IoPR2ZNpcjE0pkhdihlDouK+x6QOast26B4Q/O9DJnwSg== dependencies: + call-bind "^1.0.0" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" + es-abstract "^1.18.0-next.1" -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== assign-symbols@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-each@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -1856,16 +1645,6 @@ atob@^2.1.2: resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" - integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== - babel-eslint@^10.1.0: version "10.1.0" resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" @@ -1878,29 +1657,30 @@ babel-eslint@^10.1.0: eslint-visitor-keys "^1.0.0" resolve "^1.12.0" -babel-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-24.9.0.tgz#3fc327cb8467b89d14d7bc70e315104a783ccd54" - integrity sha512-ntuddfyiN+EhMw58PTNL1ph4C9rECiQXjI4nMMBKBaNjXvqLdkXpPRcMSr4iyBrJg/+wz9brFUD6RhOAT6r4Iw== - dependencies: - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/babel__core" "^7.1.0" - babel-plugin-istanbul "^5.1.0" - babel-preset-jest "^24.9.0" - chalk "^2.4.2" - slash "^2.0.0" - babel-jest@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.1.0.tgz#b20751185fc7569a0f135730584044d1cb934328" - integrity sha512-Nkqgtfe7j6PxLO6TnCQQlkMm8wdTdnIF8xrdpooHCuD5hXRzVEPbPneTJKknH5Dsv3L8ip9unHDAp48YQ54Dkg== + version "26.6.3" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-26.6.3.tgz#d87d25cb0037577a0c89f82e5755c5d293c01056" + integrity sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA== dependencies: - "@jest/transform" "^26.1.0" - "@jest/types" "^26.1.0" + "@jest/transform" "^26.6.2" + "@jest/types" "^26.6.2" "@types/babel__core" "^7.1.7" babel-plugin-istanbul "^6.0.0" - babel-preset-jest "^26.1.0" + babel-preset-jest "^26.6.2" + chalk "^4.0.0" + graceful-fs "^4.2.4" + slash "^3.0.0" + +babel-jest@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-27.1.0.tgz#e96ca04554fd32274439869e2b6d24de9d91bc4e" + integrity sha512-6NrdqzaYemALGCuR97QkC/FkFIEBWP5pw5TMJoUHZTVXyOgocujp6A0JE2V6gE0HtqAAv6VKU/nI+OCR1Z4gHA== + dependencies: + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/babel__core" "^7.1.14" + babel-plugin-istanbul "^6.0.0" + babel-preset-jest "^27.0.6" chalk "^4.0.0" graceful-fs "^4.2.4" slash "^3.0.0" @@ -1912,16 +1692,6 @@ babel-plugin-dynamic-import-node@^2.3.3: dependencies: object.assign "^4.1.0" -babel-plugin-istanbul@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-5.2.0.tgz#df4ade83d897a92df069c4d9a25cf2671293c854" - integrity sha512-5LphC0USA8t4i1zCtjbbNb6jJj/9+X6P37Qfirc/70EQ34xKlMW+a1RHGwxGI+SwWpNwZ27HqvzAobeqaXwiZw== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - find-up "^3.0.0" - istanbul-lib-instrument "^3.3.0" - test-exclude "^5.2.3" - babel-plugin-istanbul@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz#e159ccdc9af95e0b570c75b4573b7c34d671d765" @@ -1933,31 +1703,59 @@ babel-plugin-istanbul@^6.0.0: istanbul-lib-instrument "^4.0.0" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.9.0.tgz#4f837091eb407e01447c8843cbec546d0002d756" - integrity sha512-2EMA2P8Vp7lG0RAzr4HXqtYwacfMErOuv1U3wrvxHX6rD1sV6xS3WXG3r8TRQ2r6w8OhvSdWt+z41hQNwNm3Xw== +babel-plugin-jest-hoist@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz#8185bd030348d254c6d7dd974355e6a28b21e62d" + integrity sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw== dependencies: + "@babel/template" "^7.3.3" + "@babel/types" "^7.3.3" + "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-plugin-jest-hoist@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.1.0.tgz#c6a774da08247a28285620a64dfadbd05dd5233a" - integrity sha512-qhqLVkkSlqmC83bdMhM8WW4Z9tB+JkjqAqlbbohS9sJLT5Ha2vfzuKqg5yenXrAjOPG2YC0WiXdH3a9PvB+YYw== +babel-plugin-jest-hoist@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-27.0.6.tgz#f7c6b3d764af21cb4a2a1ab6870117dbde15b456" + integrity sha512-CewFeM9Vv2gM7Yr9n5eyyLVPRSiBnk6lKZRjgwYnGKSl9M14TMn2vkN02wTF04OGuSDLEzlWiMzvjXuW9mB6Gw== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" "@types/babel__core" "^7.0.0" "@types/babel__traverse" "^7.0.6" -babel-preset-current-node-syntax@^0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-0.1.2.tgz#fb4a4c51fe38ca60fede1dc74ab35eb843cb41d6" - integrity sha512-u/8cS+dEiK1SFILbOC8/rUI3ml9lboKuuMvZ/4aQnQmhecQAgPw5ew066C1ObnEAUmlx7dv/s2z52psWEtLNiw== +babel-plugin-polyfill-corejs2@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.2.2.tgz#e9124785e6fd94f94b618a7954e5693053bf5327" + integrity sha512-kISrENsJ0z5dNPq5eRvcctITNHYXWOA4DUZRFYCz3jYCcvTb/A546LIddmoGNMVYg2U38OyFeNosQwI9ENTqIQ== + dependencies: + "@babel/compat-data" "^7.13.11" + "@babel/helper-define-polyfill-provider" "^0.2.2" + semver "^6.1.1" + +babel-plugin-polyfill-corejs3@^0.2.2: + version "0.2.4" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" + integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + core-js-compat "^3.14.0" + +babel-plugin-polyfill-regenerator@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077" + integrity sha512-Goy5ghsc21HgPDFtzRkSirpZVW35meGoTmTOb2bxqdl60ghub4xOidgNTHaZfQ2FaxQsKmwvXtOAkcIS4SMBWg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.2.2" + +babel-preset-current-node-syntax@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz#b4399239b89b2a011f9ddbe3e4f401fc40cff73b" + integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" "@babel/plugin-syntax-class-properties" "^7.8.3" + "@babel/plugin-syntax-import-meta" "^7.8.3" "@babel/plugin-syntax-json-strings" "^7.8.3" "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" @@ -1965,27 +1763,28 @@ babel-preset-current-node-syntax@^0.1.2: "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-24.9.0.tgz#192b521e2217fb1d1f67cf73f70c336650ad3cdc" - integrity sha512-izTUuhE4TMfTRPF92fFwD2QfdXaZW08qvWTFCI51V8rW5x00UuPgc3ajRoWofXOuxjfcOM5zzSYsQS3H8KGCAg== +babel-preset-jest@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz#747872b1171df032252426586881d62d31798fee" + integrity sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ== dependencies: - "@babel/plugin-syntax-object-rest-spread" "^7.0.0" - babel-plugin-jest-hoist "^24.9.0" + babel-plugin-jest-hoist "^26.6.2" + babel-preset-current-node-syntax "^1.0.0" -babel-preset-jest@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-26.1.0.tgz#612f714e5b457394acfd863793c564cbcdb7d1c1" - integrity sha512-na9qCqFksknlEj5iSdw1ehMVR06LCCTkZLGKeEtxDDdhg8xpUF09m29Kvh1pRbZ07h7AQ5ttLYUwpXL4tO6w7w== +babel-preset-jest@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-27.0.6.tgz#909ef08e9f24a4679768be2f60a3df0856843f9d" + integrity sha512-WObA0/Biw2LrVVwZkF/2GqbOdzhKD6Fkdwhoy9ASIrOWr/zodcSpQh72JOkEn6NWyjmnPDjNSqaGN4KnpKzhXw== dependencies: - babel-plugin-jest-hoist "^26.1.0" - babel-preset-current-node-syntax "^0.1.2" + babel-plugin-jest-hoist "^27.0.6" + babel-preset-current-node-syntax "^1.0.0" balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base-x@^3.0.2: version "3.0.8" @@ -1994,10 +1793,10 @@ base-x@^3.0.2: dependencies: safe-buffer "^5.0.1" -base64-js@^1.0.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" - integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== base@^0.11.1: version "0.11.2" @@ -2012,18 +1811,16 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - binary-extensions@^1.0.0: version "1.13.1" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + bindings@^1.3.0, bindings@^1.4.0, bindings@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" @@ -2032,9 +1829,9 @@ bindings@^1.3.0, bindings@^1.4.0, bindings@^1.5.0: file-uri-to-path "1.0.0" bip32@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/bip32/-/bip32-2.0.5.tgz#e3808a9e97a880dbafd0f5f09ca4a1e14ee275d2" - integrity sha512-zVY4VvJV+b2fS0/dcap/5XLlpqtgwyN8oRkuGgAS1uLOeEp0Yo6Tw2yUTozTtlrMJO3G8n4g/KX/XGFHW6Pq3g== + version "2.0.6" + resolved "https://registry.yarnpkg.com/bip32/-/bip32-2.0.6.tgz#6a81d9f98c4cd57d05150c60d8f9e75121635134" + integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA== dependencies: "@types/node" "10.12.18" bs58check "^2.1.1" @@ -2045,28 +1842,28 @@ bip32@^2.0.5: wif "^2.0.6" bip39@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.2.tgz#2baf42ff3071fc9ddd5103de92e8f80d9257ee32" - integrity sha512-J4E1r2N0tUylTKt07ibXvhpT2c5pyAFgvuA5q1H9uDy6dEGpjV8jmymh3MTYJDLCNbIVClSB9FbND49I6N24MQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.0.4.tgz#5b11fed966840b5e1b8539f0f54ab6392969b2a0" + integrity sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw== dependencies: "@types/node" "11.11.6" create-hash "^1.1.0" pbkdf2 "^3.0.9" randombytes "^2.0.1" -bl@^4.0.1: - version "4.0.3" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.0.3.tgz#12d6287adc29080e22a705e5764b2a9522cdc489" - integrity sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg== +bl@^4.0.3: + version "4.1.0" + resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" inherits "^2.0.4" readable-stream "^3.4.0" -bn.js@^4.11.8, bn.js@^4.4.0: - version "4.11.9" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.9.tgz#26d556829458f9d1e81fc48952493d0ba3507828" - integrity sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw== +bn.js@^4.11.8, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== brace-expansion@^1.1.7: version "1.1.11" @@ -2092,14 +1889,14 @@ braces@^2.3.1, braces@^2.3.2: split-string "^3.0.2" to-regex "^3.0.1" -braces@^3.0.1: +braces@^3.0.1, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" -brorand@^1.0.1: +brorand@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= @@ -2109,32 +1906,16 @@ browser-process-hrtime@^1.0.0: resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== -browser-resolve@^1.11.3: - version "1.11.3" - resolved "https://registry.yarnpkg.com/browser-resolve/-/browser-resolve-1.11.3.tgz#9b7cbb3d0f510e4cb86bdbd796124d28b5890af6" - integrity sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ== +browserslist@^4.16.6, browserslist@^4.16.8: + version "4.16.8" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.8.tgz#cb868b0b554f137ba6e33de0ecff2eda403c4fb0" + integrity sha512-sc2m9ohR/49sWEbPj14ZSSZqp+kbi16aLao42Hmn3Z8FpjuMaq2xCA2l4zl9ITfyzvnvyE0hcg62YkIGKxgaNQ== dependencies: - resolve "1.1.7" - -browserslist@^4.12.0: - version "4.13.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.13.0.tgz#42556cba011e1b0a2775b611cba6a8eca18e940d" - integrity sha512-MINatJ5ZNrLnQ6blGvePd/QOz9Xtu+Ne+x29iQSCHfkU5BugKVJwZKn/iiL8UbpIpa3JhviKjz+XxMo0m2caFQ== - dependencies: - caniuse-lite "^1.0.30001093" - electron-to-chromium "^1.3.488" - escalade "^3.0.1" - node-releases "^1.1.58" - -browserslist@^4.8.5: - version "4.11.1" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.11.1.tgz#92f855ee88d6e050e7e7311d987992014f1a1f1b" - integrity sha512-DCTr3kDrKEYNw6Jb9HFxVLQNaue8z+0ZfRBRjmCunKDEXEBajKDj2Y+Uelg+Pi29OnvaSGwjOsnRyNEkXzHg5g== - dependencies: - caniuse-lite "^1.0.30001038" - electron-to-chromium "^1.3.390" - node-releases "^1.1.53" - pkg-up "^2.0.0" + caniuse-lite "^1.0.30001251" + colorette "^1.3.0" + electron-to-chromium "^1.3.811" + escalade "^3.1.1" + node-releases "^1.1.75" bs58@^4.0.0: version "4.0.1" @@ -2160,17 +1941,17 @@ bser@2.1.1: node-int64 "^0.4.0" buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer@^5.5.0: - version "5.6.0" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.6.0.tgz#a31749dc7d81d84db08abf937b6b8c4033f62786" - integrity sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw== + version "5.7.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" + base64-js "^1.3.1" + ieee754 "^1.1.13" cache-base@^1.0.1: version "1.0.1" @@ -2187,30 +1968,33 @@ cache-base@^1.0.1: union-value "^1.0.0" unset-value "^1.0.0" +call-bind@^1.0.0, call-bind@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== + dependencies: + function-bind "^1.1.1" + get-intrinsic "^1.0.2" + callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.0.0.tgz#5259f7c30e35e278f1bdc2a4d91230b37cad981e" - integrity sha512-8KMDF1Vz2gzOq54ONPJS65IvTUaB1cHJ2DMM7MbPmLZljDH1qpzzLsWdiN9pHh6qvkRVDTi/07+eNGch/oLU4w== - -caniuse-lite@^1.0.30001038: - version "1.0.30001042" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001042.tgz#c91ec21ec2d270bd76dbc2ce261260c292b8c93c" - integrity sha512-igMQ4dlqnf4tWv0xjaaE02op9AJ2oQzXKjWf4EuAHFN694Uo9/EfPVIPJcmn2WkU9RqozCxx5e2KPcVClHDbDw== +camelcase@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809" + integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg== -caniuse-lite@^1.0.30001093: - version "1.0.30001096" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001096.tgz#5a4541af5317dc21f91f5b24d453030a35f919c0" - integrity sha512-PFTw9UyVfbkcMEFs82q8XVlRayj7HKvnhu5BLcmjGpv+SNyiWasCcWXPGJuO0rK0dhLRDJmtZcJ+LHUfypbw1w== +caniuse-lite@^1.0.30001251: + version "1.0.30001252" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001252.tgz#cb16e4e3dafe948fc4a9bb3307aea054b912019a" + integrity sha512-I56jhWDGMtdILQORdusxBOH+Nl/KgQSdDmpJezYddnAkVOmnoU8zwjTV9xAjMIYxr0iPreEAVylCGcmHCjfaOw== capture-exit@^2.0.0: version "2.0.0" @@ -2219,12 +2003,19 @@ capture-exit@^2.0.0: dependencies: rsvp "^4.8.4" -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= +chai@^4.3.4: + version "4.3.4" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" + integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^3.0.1" + get-func-name "^2.0.0" + pathval "^1.1.1" + type-detect "^4.0.5" -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: +chalk@^2.0.0: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -2234,9 +2025,9 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.4.2: supports-color "^5.3.0" chalk@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" supports-color "^7.1.0" @@ -2246,24 +2037,25 @@ char-regex@^1.0.2: resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -chokidar@^2.1.8: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= + +chokidar@^3.4.0: + version "3.5.2" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.2.tgz#dba3976fcadb016f66fd365021d91600d01c1e75" + integrity sha512-ekGhOnNVPgT77r4K/U3GDhu+FQ2S8TnK/s2KbIGXi0SZWuwkZ2QNyfWdZW+TVfn84DpEP7rLeCt2UI6bJ8GwbQ== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" optionalDependencies: - fsevents "^1.2.7" + fsevents "~2.3.2" chownr@^1.1.1: version "1.1.4" @@ -2275,6 +2067,11 @@ ci-info@^2.0.0: resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== +ci-info@^3.1.1: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.2.0.tgz#2876cb948a498797b5236f0095bc057d0dca38b6" + integrity sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A== + cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" @@ -2283,6 +2080,11 @@ cipher-base@^1.0.1, cipher-base@^1.0.3: inherits "^2.0.1" safe-buffer "^5.0.1" +cjs-module-lexer@^1.0.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/cjs-module-lexer/-/cjs-module-lexer-1.2.2.tgz#9f84ba3244a512f3a54e5277e8eef4c489864e40" + integrity sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA== + class-utils@^0.3.5: version "0.3.6" resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" @@ -2293,23 +2095,23 @@ class-utils@^0.3.5: isobject "^3.0.0" static-extend "^0.1.1" -cliui@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" - integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== - dependencies: - string-width "^3.1.0" - strip-ansi "^5.2.0" - wrap-ansi "^5.1.0" - -cliui@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" - integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" strip-ansi "^6.0.0" - wrap-ansi "^6.2.0" + wrap-ansi "^7.0.0" + +clone-deep@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" + integrity sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ== + dependencies: + is-plain-object "^2.0.4" + kind-of "^6.0.2" + shallow-clone "^3.0.0" co@^4.6.0: version "4.6.0" @@ -2358,7 +2160,12 @@ color-name@~1.1.4: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -combined-stream@^1.0.6, combined-stream@~1.0.6: +colorette@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.3.0.tgz#ff45d2f0edb244069d3b772adeb04fed38d0a0af" + integrity sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w== + +combined-stream@^1.0.8: version "1.0.8" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== @@ -2385,25 +2192,20 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= -confusing-browser-globals@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" - integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw== +confusing-browser-globals@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.10.tgz#30d1e7f3d1b882b25ec4933d1d1adac353d20a59" + integrity sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA== console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= -contains-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" - integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= - convert-source-map@^1.1.0, convert-source-map@^1.4.0, convert-source-map@^1.6.0, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + version "1.8.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.8.0.tgz#f3373c32d21b4d780dd8004514684fb791ca4369" + integrity sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA== dependencies: safe-buffer "~5.1.1" @@ -2412,23 +2214,23 @@ copy-descriptor@^0.1.0: resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= -core-js-compat@^3.6.2: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" - integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== +core-js-compat@^3.14.0, core-js-compat@^3.16.0: + version "3.17.2" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.17.2.tgz#f461ab950c0a0ffedfc327debf28b7e518950936" + integrity sha512-lHnt7A1Oqplebl5i0MrQyFv/yyEzr9p29OjlkcsFRDDgHwwQyVckfRGJ790qzXhkwM8ba4SFHHa2sO+T5f1zGg== dependencies: - browserslist "^4.8.5" + browserslist "^4.16.8" semver "7.0.0" -core-js@^3.2.1, core-js@^3.6.5: - version "3.6.5" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" - integrity sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA== +core-js@^3.16.0, core-js@^3.6.5: + version "3.17.2" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.17.2.tgz#f960eae710dc62c29cca93d5332e3660e289db10" + integrity sha512-XkbXqhcXeMHPRk2ItS+zQYliAMilea2euoMsnpRRdDad6b2VY6CQQcwz1K8AnWesfw4p165RzY0bTnr3UrbYiA== -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: version "1.2.0" @@ -2464,16 +2266,7 @@ cross-spawn@^6.0.0: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@^7.0.0: - version "7.0.2" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" - integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== - dependencies: - path-key "^3.1.0" - shebang-command "^2.0.0" - which "^2.0.1" - -cross-spawn@^7.0.2: +cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== @@ -2487,46 +2280,23 @@ crypto-js@4.0.0: resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.0.0.tgz#2904ab2677a9d042856a2ea2ef80de92e4a36dcc" integrity sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg== -cssom@0.3.x, "cssom@>= 0.3.2 < 0.4.0", cssom@~0.3.6: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - cssom@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.4.4.tgz#5a66cf93d2d0b661d80bf6a44fb65f5c2e4e0a10" integrity sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw== -cssstyle@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== - dependencies: - cssom "0.3.x" +cssom@~0.3.6: + version "0.3.8" + resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" + integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== -cssstyle@^2.2.0: +cssstyle@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-2.3.0.tgz#ff665a0ddbdc31864b09647f34163443d90b0852" integrity sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A== dependencies: cssom "~0.3.6" -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -data-urls@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - data-urls@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-2.0.0.tgz#156485a72963a970f5d5821aaf642bef2bf2db9b" @@ -2536,6 +2306,13 @@ data-urls@^2.0.0: whatwg-mimetype "^2.3.0" whatwg-url "^8.0.0" +debug@4, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: + version "4.3.2" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" + integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== + dependencies: + ms "2.1.2" + debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" @@ -2543,22 +2320,17 @@ debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: dependencies: ms "2.0.0" -debug@^4.0.1, debug@^4.1.0, debug@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" - integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== +debug@^3.2.7: + version "3.2.7" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= - -decimal.js@^10.2.0: - version "10.2.0" - resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.2.0.tgz#39466113a9e036111d02f82489b5fd6b0b5ed231" - integrity sha512-vDPw+rDgn3bZe1+F/pyEwb1oMG2XTlRVgAa6B4KccTEpYgF8w6eQllVbQcfIJnZyvzFtFpxnpGtx8dd7DJp/Rw== +decimal.js@^10.2.1: + version "10.3.1" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783" + integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ== decode-uri-component@^0.2.0: version "0.2.0" @@ -2572,6 +2344,18 @@ decompress-response@^4.2.0: dependencies: mimic-response "^2.0.0" +dedent@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/dedent/-/dedent-0.7.0.tgz#2495ddbaf6eb874abb0e1be9df22d2e5a544326c" + integrity sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw= + +deep-eql@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" + integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== + dependencies: + type-detect "^4.0.0" + deep-extend@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" @@ -2587,7 +2371,7 @@ deepmerge@^4.2.2: resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955" integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg== -define-properties@^1.1.2, define-properties@^1.1.3: +define-properties@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== @@ -2631,33 +2415,22 @@ detect-libc@^1.0.3: resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I= - detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-24.9.0.tgz#5715d6244e2aa65f48bba0bc972db0b0b11e95b5" - integrity sha512-Dj6Wk3tWyTE+Fo1rW8v0Xhwk80um6yFYKbuAxc9c3EZxIHFDYwbi34Uk42u1CdnIiVorvt4RmlSDjIPyzGC2ew== - -diff-sequences@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-26.0.0.tgz#0760059a5c287637b842bd7085311db7060e88a6" - integrity sha512-JC/eHYEC3aSS0vZGjuoc4vHA0yAQTzhQQldXMeMF+JlxLGJlCO38Gma82NV9gk1jGFz8mDzUMeaKXvjRRdJ2dg== +diff-sequences@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-27.0.6.tgz#3305cb2e55a033924054695cc66019fd7f8e5723" + integrity sha512-ag6wfpBFyNXZ0p8pcuIDS//D8H062ZQJ3fzYxjpmeKjnz8W4pekL3AI8VohmyZmsWW2PWaHgjsmqR6L13101VQ== -doctrine@1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" - integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" - isarray "^1.0.0" doctrine@^3.0.0: version "3.0.0" @@ -2666,13 +2439,6 @@ doctrine@^3.0.0: dependencies: esutils "^2.0.2" -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - domexception@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/domexception/-/domexception-2.0.1.tgz#fb44aefba793e1574b0af6aed2801d057529f304" @@ -2680,41 +2446,28 @@ domexception@^2.0.1: dependencies: webidl-conversions "^5.0.0" -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -electron-to-chromium@^1.3.390: - version "1.3.409" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.409.tgz#c9a4380ff0ad3e26cd1b4b4cef800d17c46aec7e" - integrity sha512-CB2HUXiMsaVYY5VvcpELhDShiTRhI2FfN7CuacEZ5mDmMFuSG/ZVm8HoSya0+S61RvUd3TjIjFSKywqHZpRPzQ== +electron-to-chromium@^1.3.811: + version "1.3.829" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.829.tgz#efd360b594824fcd84e24c6eb0c8e41e2a44fbc7" + integrity sha512-5EXDbvsaLRxS1UOfRr8Hymp3dR42bvBNPgzVuPwUFj3v66bpvDUcNwwUywQUQYn/scz26/3Sgd3fNVGQOlVwvQ== -electron-to-chromium@^1.3.488: - version "1.3.492" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.492.tgz#bde16082a05a124266e5ecc9cf0ce53d137f2919" - integrity sha512-AD6v9Y2wN0HuoRH4LwCmlSHjkKq51D1U52bTuvM5uPzisbHVm3Hms15c42TBFLewxnSqxAynK/tbeaUi4Rnjqw== - -elliptic@^6.4.0, elliptic@^6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.3.tgz#cb59eb2efdaf73a0bd78ccd7015a62ad6e0f93d6" - integrity sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw== +elliptic@^6.4.0, elliptic@^6.5.2, elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== dependencies: - bn.js "^4.4.0" - brorand "^1.0.1" + bn.js "^4.11.9" + brorand "^1.1.0" hash.js "^1.0.0" - hmac-drbg "^1.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== +emittery@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.8.1.tgz#bb23cc86d03b30aa75a7f734819dee2e1ba70860" + integrity sha512-uDfvUjVrfGJJhymx/kz6prltenw1u7WrCg1oa94zYY8xxVpLLUu045LAT0dhDZdXG58/EpPL/5kA180fQ/qudg== emoji-regex@^8.0.0: version "8.0.0" @@ -2735,29 +2488,35 @@ enquirer@^2.3.5: dependencies: ansi-colors "^4.1.1" -error-ex@^1.2.0, error-ex@^1.3.1: +error-ex@^1.3.1: version "1.3.2" resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" -es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: - version "1.17.5" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" - integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== +es-abstract@^1.18.0-next.1, es-abstract@^1.18.0-next.2, es-abstract@^1.18.2: + version "1.18.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" + integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== dependencies: + call-bind "^1.0.2" es-to-primitive "^1.2.1" function-bind "^1.1.1" + get-intrinsic "^1.1.1" has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.1.5" - is-regex "^1.0.5" - object-inspect "^1.7.0" + has-symbols "^1.0.2" + internal-slot "^1.0.3" + is-callable "^1.2.3" + is-negative-zero "^2.0.1" + is-regex "^1.1.3" + is-string "^1.0.6" + object-inspect "^1.11.0" object-keys "^1.1.1" - object.assign "^4.1.0" - string.prototype.trimleft "^2.1.1" - string.prototype.trimright "^2.1.1" + object.assign "^4.1.2" + string.prototype.trimend "^1.0.4" + string.prototype.trimstart "^1.0.4" + unbox-primitive "^1.0.1" es-to-primitive@^1.2.1: version "1.2.1" @@ -2768,10 +2527,10 @@ es-to-primitive@^1.2.1: is-date-object "^1.0.1" is-symbol "^1.0.2" -escalade@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.1.tgz#52568a77443f6927cd0ab9c73129137533c965ed" - integrity sha512-DR6NO3h9niOT+MZs7bjxlj2a1k+POu5RN8CLTPX2+i78bRi9eLe7+0zXgUHMnGXWybYcL61E9hGhPKqedy8tQA== +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-string-regexp@^1.0.5: version "1.0.5" @@ -2783,121 +2542,120 @@ escape-string-regexp@^2.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz#a30304e99daa32e23b2fd20f51babd07cffca344" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== -escodegen@^1.14.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" +escape-string-regexp@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -escodegen@^1.9.1: - version "1.14.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.1.tgz#ba01d0c8278b5e95a9a45350142026659027a457" - integrity sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ== +escodegen@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.0.0.tgz#5e32b12833e8aa8fa35e1bf0befa89380484c7dd" + integrity sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw== dependencies: esprima "^4.0.1" - estraverse "^4.2.0" + estraverse "^5.2.0" esutils "^2.0.2" optionator "^0.8.1" optionalDependencies: source-map "~0.6.1" eslint-config-airbnb-base@^14.2.0: - version "14.2.0" - resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.0.tgz#fe89c24b3f9dc8008c9c0d0d88c28f95ed65e9c4" - integrity sha512-Snswd5oC6nJaevs3nZoLSTvGJBvzTfnBqOIArkf3cbyTyq9UD79wOk8s+RiL6bhca0p/eRO6veczhf6A/7Jy8Q== + version "14.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-airbnb-base/-/eslint-config-airbnb-base-14.2.1.tgz#8a2eb38455dc5a312550193b319cdaeef042cd1e" + integrity sha512-GOrQyDtVEc1Xy20U7vsB2yAoB4nBlfH5HZJeatRXHleO+OS5Ot+MWij4Dpltw4/DyIkqUfqz1epfhVR5XWWQPA== dependencies: - confusing-browser-globals "^1.0.9" - object.assign "^4.1.0" + confusing-browser-globals "^1.0.10" + object.assign "^4.1.2" object.entries "^1.1.2" -eslint-import-resolver-node@^0.3.3: - version "0.3.4" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz#85ffa81942c25012d8231096ddf679c03042c717" - integrity sha512-ogtf+5AB/O+nM6DIeBUNr2fuT7ot9Qg/1harBfBtaP13ekEWFQEEMP94BCB7zaNW3gyY+8SHYF00rnqYwXKWOA== +eslint-import-resolver-node@^0.3.6: + version "0.3.6" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz#4048b958395da89668252001dbd9eca6b83bacbd" + integrity sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw== dependencies: - debug "^2.6.9" - resolve "^1.13.1" + debug "^3.2.7" + resolve "^1.20.0" -eslint-module-utils@^2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" - integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== +eslint-module-utils@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.2.tgz#94e5540dd15fe1522e8ffa3ec8db3b7fa7e7a534" + integrity sha512-QG8pcgThYOuqxupd06oYTZoNOGaUdTY1PqK+oS6ElF6vs4pBdk/aYxFVQQXzcrAqp9m7cl7lb2ubazX+g16k2Q== dependencies: - debug "^2.6.9" + debug "^3.2.7" pkg-dir "^2.0.0" eslint-plugin-import@^2.22.0: - version "2.22.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz#92f7736fe1fde3e2de77623c838dd992ff5ffb7e" - integrity sha512-66Fpf1Ln6aIS5Gr/55ts19eUuoDhAbZgnr6UxK5hbDx6l/QgQgx61AePq+BV4PP2uXQFClgMVzep5zZ94qqsxg== + version "2.24.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.24.2.tgz#2c8cd2e341f3885918ee27d18479910ade7bb4da" + integrity sha512-hNVtyhiEtZmpsabL4neEj+6M5DCLgpYyG9nzJY8lZQeQXEn5UPW1DpUdsMHMXsq98dbNm7nt1w9ZMSVpfJdi8Q== dependencies: - array-includes "^3.1.1" - array.prototype.flat "^1.2.3" - contains-path "^0.1.0" + array-includes "^3.1.3" + array.prototype.flat "^1.2.4" debug "^2.6.9" - doctrine "1.5.0" - eslint-import-resolver-node "^0.3.3" - eslint-module-utils "^2.6.0" + doctrine "^2.1.0" + eslint-import-resolver-node "^0.3.6" + eslint-module-utils "^2.6.2" + find-up "^2.0.0" has "^1.0.3" + is-core-module "^2.6.0" minimatch "^3.0.4" - object.values "^1.1.1" - read-pkg-up "^2.0.0" - resolve "^1.17.0" - tsconfig-paths "^3.9.0" + object.values "^1.1.4" + pkg-up "^2.0.0" + read-pkg-up "^3.0.0" + resolve "^1.20.0" + tsconfig-paths "^3.11.0" -eslint-scope@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz#d0f971dfe59c69e0cada684b23d49dbf82600ce5" - integrity sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w== +eslint-scope@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: - esrecurse "^4.1.0" + esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-utils@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" - integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== +eslint-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" - integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== - -eslint-visitor-keys@^1.2.0: +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== +eslint-visitor-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + eslint@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.4.0.tgz#4e35a2697e6c1972f9d6ef2b690ad319f80f206f" - integrity sha512-gU+lxhlPHu45H3JkEGgYhWhkR9wLHHEXC9FbWFnTlEkbKyZKWgWRLgf61E8zWmBuI6g5xKBph9ltg3NtZMVF8g== + version "7.32.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-7.32.0.tgz#c6d328a14be3fb08c8d1d21e12c02fdb7a2a812d" + integrity sha512-VHZ8gX+EDfz+97jGcgyGCyRia/dPOd6Xh9yPv8Bl1+SoaIwD+a/vlrOmGRUyOYu7MwUhc7CxqeaDZU13S4+EpA== dependencies: - "@babel/code-frame" "^7.0.0" + "@babel/code-frame" "7.12.11" + "@eslint/eslintrc" "^0.4.3" + "@humanwhocodes/config-array" "^0.5.0" ajv "^6.10.0" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.0.1" doctrine "^3.0.0" enquirer "^2.3.5" - eslint-scope "^5.1.0" - eslint-utils "^2.0.0" - eslint-visitor-keys "^1.2.0" - espree "^7.1.0" - esquery "^1.2.0" + escape-string-regexp "^4.0.0" + eslint-scope "^5.1.1" + eslint-utils "^2.1.0" + eslint-visitor-keys "^2.0.0" + espree "^7.3.1" + esquery "^1.4.0" esutils "^2.0.2" - file-entry-cache "^5.0.1" + fast-deep-equal "^3.1.3" + file-entry-cache "^6.0.1" functional-red-black-tree "^1.0.1" - glob-parent "^5.0.0" - globals "^12.1.0" + glob-parent "^5.1.2" + globals "^13.6.0" ignore "^4.0.6" import-fresh "^3.0.0" imurmurhash "^0.1.4" @@ -2905,7 +2663,7 @@ eslint@^7.4.0: js-yaml "^3.13.1" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" - lodash "^4.17.14" + lodash.merge "^4.6.2" minimatch "^3.0.4" natural-compare "^1.4.0" optionator "^0.9.1" @@ -2914,62 +2672,62 @@ eslint@^7.4.0: semver "^7.2.1" strip-ansi "^6.0.0" strip-json-comments "^3.1.0" - table "^5.2.3" + table "^6.0.9" text-table "^0.2.0" v8-compile-cache "^2.0.3" -espree@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/espree/-/espree-7.1.0.tgz#a9c7f18a752056735bf1ba14cb1b70adc3a5ce1c" - integrity sha512-dcorZSyfmm4WTuTnE5Y7MEN1DyoPYy1ZR783QW1FJoenn7RailyWFsq/UL6ZAAA7uXurN9FIpYyUs3OfiIW+Qw== +espree@^7.3.0, espree@^7.3.1: + version "7.3.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-7.3.1.tgz#f2df330b752c6f55019f8bd89b7660039c1bbbb6" + integrity sha512-v3JCNCE64umkFpmkFGqzVKsOT0tN1Zr+ueqLZfpV1Ob8e+CEgPWa+OxCoGH3tnhimMKIaBm4m/vaRpJ/krRz2g== dependencies: - acorn "^7.2.0" - acorn-jsx "^5.2.0" - eslint-visitor-keys "^1.2.0" + acorn "^7.4.0" + acorn-jsx "^5.3.1" + eslint-visitor-keys "^1.3.0" esprima@^4.0.0, esprima@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.2.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" - integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== +esquery@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.4.0.tgz#2148ffc38b82e8c7057dfed48425b3e61f0f24a5" + integrity sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w== dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" - integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== +esrecurse@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: - estraverse "^4.1.0" + estraverse "^5.2.0" -estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.1: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== -estraverse@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" - integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== +estraverse@^5.1.0, estraverse@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.2.0.tgz#307df42547e6cc7324d3cf03c155d5cdb8c53880" + integrity sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ== esutils@^2.0.2: version "2.0.3" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -events@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" - integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== +events@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== exec-sh@^0.3.2: - version "0.3.4" - resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.4.tgz#3a018ceb526cc6f6df2bb504b2bfe8e3a4934ec5" - integrity sha512-sEFIkc61v75sWeOe72qyrqg2Qg0OuLESziUDk/O/z2qgS15y2gWVFrI6f2Qn/qw/0/NCfCEsmNA4zOjkwEZT1A== + version "0.3.6" + resolved "https://registry.yarnpkg.com/exec-sh/-/exec-sh-0.3.6.tgz#ff264f9e325519a60cb5e273692943483cca63bc" + integrity sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w== execa@^1.0.0: version "1.0.0" @@ -2984,19 +2742,19 @@ execa@^1.0.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -execa@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.3.tgz#0a34dabbad6d66100bd6f2c576c8669403f317f2" - integrity sha512-WFDXGHckXPWZX19t1kCsXzOpqX9LWYNqn4C+HqZlk/V0imTkzJZqf87ZBhvpHaftERYknpk0fjSylnXVlVgI0A== +execa@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: - cross-spawn "^7.0.0" - get-stream "^5.0.0" - human-signals "^1.1.1" + cross-spawn "^7.0.3" + get-stream "^6.0.0" + human-signals "^2.1.0" is-stream "^2.0.0" merge-stream "^2.0.0" - npm-run-path "^4.0.0" - onetime "^5.1.0" - signal-exit "^3.0.2" + npm-run-path "^4.0.1" + onetime "^5.1.2" + signal-exit "^3.0.3" strip-final-newline "^2.0.0" exit@^0.1.2: @@ -3022,29 +2780,17 @@ expand-template@^2.0.3: resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-2.0.3.tgz#6e14b3fcee0f3a6340ecb57d2e8918692052a47c" integrity sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg== -expect@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-24.9.0.tgz#b75165b4817074fa4a157794f46fe9f1ba15b6ca" - integrity sha512-wvVAx8XIol3Z5m9zvZXiyZOQ+sRJqNTIm6sGjdWlaZIeupQGO3WbYI+15D/AmEwZywL6wtJkbAbJtzkOfBuR0Q== - dependencies: - "@jest/types" "^24.9.0" - ansi-styles "^3.2.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-regex-util "^24.9.0" - -expect@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/expect/-/expect-26.1.0.tgz#8c62e31d0f8d5a8ebb186ee81473d15dd2fbf7c8" - integrity sha512-QbH4LZXDsno9AACrN9eM0zfnby9G+OsdNgZUohjg/P0mLy1O+/bzTAJGT6VSIjVCe8yKM6SzEl/ckEOFBT7Vnw== +expect@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/expect/-/expect-27.1.0.tgz#380de0abb3a8f2299c4c6c66bbe930483b5dba9b" + integrity sha512-9kJngV5hOJgkFil4F/uXm3hVBubUK2nERVfvqNNwxxuW8ZOUwSTTSysgfzckYtv/LBzj/LJXbiAF7okHCXgdug== dependencies: - "@jest/types" "^26.1.0" - ansi-styles "^4.0.0" - jest-get-type "^26.0.0" - jest-matcher-utils "^26.1.0" - jest-message-util "^26.1.0" - jest-regex-util "^26.0.0" + "@jest/types" "^27.1.0" + ansi-styles "^5.0.0" + jest-get-type "^27.0.6" + jest-matcher-utils "^27.1.0" + jest-message-util "^27.1.0" + jest-regex-util "^27.0.6" extend-shallow@^2.0.1: version "2.0.1" @@ -3061,11 +2807,6 @@ extend-shallow@^3.0.0, extend-shallow@^3.0.2: assign-symbols "^1.0.0" is-extendable "^1.0.1" -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - extglob@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" @@ -3080,20 +2821,10 @@ extglob@^2.0.4: snapdragon "^0.8.1" to-regex "^3.0.1" -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -fast-deep-equal@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" - integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== +fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-json-stable-stringify@^2.0.0: version "2.1.0" @@ -3112,12 +2843,12 @@ fb-watchman@^2.0.0: dependencies: bser "2.1.1" -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== +file-entry-cache@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: - flat-cache "^2.0.1" + flat-cache "^3.0.4" file-uri-to-path@1.0.0: version "1.0.0" @@ -3172,37 +2903,31 @@ find-up@^4.0.0, find-up@^4.1.0: locate-path "^5.0.0" path-exists "^4.0.0" -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== +flat-cache@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" + integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" + flatted "^3.1.0" + rimraf "^3.0.2" -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== +flatted@^3.1.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.2.tgz#64bfed5cb68fe3ca78b3eb214ad97b63bedce561" + integrity sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA== for-in@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== +form-data@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.1.tgz#ebd53791b78356a99af9a300d4282c4d5eb9755f" + integrity sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg== dependencies: asynckit "^0.4.0" - combined-stream "^1.0.6" + combined-stream "^1.0.8" mime-types "^2.1.12" fragment-cache@^0.2.1: @@ -3227,18 +2952,10 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= -fsevents@^1.2.7: - version "1.2.12" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" - integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -fsevents@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.2.tgz#4c0a1fb34bc68e543b4b82a9ec392bfbda840805" - integrity sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA== +fsevents@^2.1.2, fsevents@^2.3.2, fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== function-bind@^1.1.1: version "1.1.1" @@ -3264,16 +2981,35 @@ gauge@~2.7.3: strip-ansi "^3.0.1" wide-align "^1.1.0" -gensync@^1.0.0-beta.1: - version "1.0.0-beta.1" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" - integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== +gensync@^1.0.0-beta.2: + version "1.0.0-beta.2" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.1: +get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= + +get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" + integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + +get-package-type@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== + get-stream@^4.0.0: version "4.1.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" @@ -3281,49 +3017,32 @@ get-stream@^4.0.0: dependencies: pump "^3.0.0" -get-stream@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" - integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== - dependencies: - pump "^3.0.0" +get-stream@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-value@^2.0.3, get-value@^2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4= -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-parent@^5.0.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" - integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== +glob-parent@^5.1.2, glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob@^7.0.0, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + version "7.1.7" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" + integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -3337,40 +3056,22 @@ globals@^11.1.0: resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== -globals@^12.1.0: - version "12.4.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" - integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== +globals@^13.6.0, globals@^13.9.0: + version "13.11.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.11.0.tgz#40ef678da117fe7bd2e28f1fab24951bd0255be7" + integrity sha512-08/xrJ7wQjK9kkkRoI3OFUBbLx4f+6x3SGwcPvQ0QH6goFDrOU2oyAWrmh3dJezu65buo+HBMzAMQy6rovVC3g== dependencies: - type-fest "^0.8.1" - -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2: - version "4.2.3" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" - integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== - -graceful-fs@^4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.4.tgz#2256bde14d3632958c465ebc96dc467ca07a29fb" - integrity sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw== - -growly@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081" - integrity sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE= + type-fest "^0.20.2" -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= +graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.2.4: + version "4.2.8" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.8.tgz#e412b8d33f5e006593cbd3cee6df9f2cebbe802a" + integrity sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg== -har-validator@~5.1.3: - version "5.1.3" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" - integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== - dependencies: - ajv "^6.5.5" - har-schema "^2.0.0" +has-bigints@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" + integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== has-flag@^3.0.0: version "3.0.0" @@ -3382,10 +3083,17 @@ has-flag@^4.0.0: resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-symbols@^1.0.0, has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== +has-symbols@^1.0.1, has-symbols@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" + integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== + +has-tostringtag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== + dependencies: + has-symbols "^1.0.2" has-unicode@^2.0.0: version "2.0.1" @@ -3431,12 +3139,13 @@ has@^1.0.3: function-bind "^1.1.1" hash-base@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" - integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" hash.js@^1.0.0, hash.js@^1.0.3: version "1.1.7" @@ -3446,7 +3155,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.1" -hmac-drbg@^1.0.0: +hmac-drbg@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= @@ -3463,16 +3172,9 @@ homedir-polyfill@^1.0.1: parse-passwd "^1.0.0" hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" + version "2.8.9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== html-encoding-sniffer@^2.0.1: version "2.0.1" @@ -3486,19 +3188,27 @@ html-escaper@^2.0.0: resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= +http-proxy-agent@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" + "@tootallnate/once" "1" + agent-base "6" + debug "4" -human-signals@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" - integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== +https-proxy-agent@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz#e2a90542abb68a762e0a0850f6c9edadfd8506b2" + integrity sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA== + dependencies: + agent-base "6" + debug "4" + +human-signals@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== iconv-lite@0.4.24: version "0.4.24" @@ -3507,20 +3217,20 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -ieee754@^1.1.4: - version "1.1.13" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" - integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== +ieee754@^1.1.13: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore@^4.0.6: version "4.0.6" resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== -import-fresh@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" - integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== +import-fresh@^3.0.0, import-fresh@^3.2.1: + version "3.3.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" @@ -3557,21 +3267,18 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@~1.3.0: - version "1.3.5" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" - integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + version "1.3.8" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -invariant@^2.2.2, invariant@^2.2.4: - version "2.2.4" - resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" - integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== +internal-slot@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" + integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== dependencies: - loose-envify "^1.0.0" - -ip-regex@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" - integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + get-intrinsic "^1.1.0" + has "^1.0.3" + side-channel "^1.0.4" is-accessor-descriptor@^0.1.6: version "0.1.6" @@ -3592,6 +3299,13 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= +is-bigint@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== + dependencies: + has-bigints "^1.0.1" + is-binary-path@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" @@ -3599,15 +3313,30 @@ is-binary-path@^1.0.0: dependencies: binary-extensions "^1.0.0" +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-boolean-object@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== + dependencies: + call-bind "^1.0.2" + has-tostringtag "^1.0.0" + is-buffer@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== -is-callable@^1.1.4, is-callable@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" - integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== +is-callable@^1.1.4, is-callable@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" + integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== is-ci@^2.0.0: version "2.0.0" @@ -3616,6 +3345,20 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" +is-ci@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-3.0.0.tgz#c7e7be3c9d8eef7d0fa144390bd1e4b88dc4c994" + integrity sha512-kDXyttuLeslKAHYL/K28F2YkM3x5jvFPEw3yXbRptXydjD9rpLEz+C5K5iutY9ZiUu6AP41JdvRQwF4Iqs4ZCQ== + dependencies: + ci-info "^3.1.1" + +is-core-module@^2.2.0, is-core-module@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.6.0.tgz#d7553b2526fe59b92ba3e40c8df757ec8a709e19" + integrity sha512-wShG8vs60jKfPWpF2KZRaAtvt3a20OAn7+IJ6hLPECpSABLcKtFKTTI4ZtH5QcBruBHlq+WsdHWyz0BCZW7svQ== + dependencies: + has "^1.0.3" + is-data-descriptor@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" @@ -3631,9 +3374,11 @@ is-data-descriptor@^1.0.0: kind-of "^6.0.0" is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== + dependencies: + has-tostringtag "^1.0.0" is-descriptor@^0.1.0: version "0.1.6" @@ -3665,7 +3410,7 @@ is-extendable@^1.0.1: dependencies: is-plain-object "^2.0.4" -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= @@ -3692,20 +3437,25 @@ is-generator-fn@^2.0.0: resolved "https://registry.yarnpkg.com/is-generator-fn/-/is-generator-fn-2.1.0.tgz#7d140adc389aaf3011a8f2a2a4cfa6faadffb118" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1: +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== dependencies: is-extglob "^2.1.1" +is-negative-zero@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" + integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== + +is-number-object@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" + integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== + dependencies: + has-tostringtag "^1.0.0" + is-number@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" @@ -3725,17 +3475,18 @@ is-plain-object@^2.0.3, is-plain-object@^2.0.4: dependencies: isobject "^3.0.1" -is-potential-custom-element-name@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.0.tgz#0c52e54bcca391bb2c494b21e8626d7336c6e397" - integrity sha1-DFLlS8yjkbssSUsh6GJtczbG45c= +is-potential-custom-element-name@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz#171ed6f19e3ac554394edf78caa05784a45bebb5" + integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== -is-regex@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" - integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== +is-regex@^1.1.3: + version "1.1.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: - has "^1.0.3" + call-bind "^1.0.2" + has-tostringtag "^1.0.0" is-stream@^1.1.0: version "1.1.0" @@ -3743,23 +3494,25 @@ is-stream@^1.1.0: integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= is-stream@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" - integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-string@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" - integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== +is-string@^1.0.5, is-string@^1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== + dependencies: + has-tostringtag "^1.0.0" -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== +is-symbol@^1.0.2, is-symbol@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: - has-symbols "^1.0.1" + has-symbols "^1.0.2" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= @@ -3769,12 +3522,7 @@ is-windows@^1.0.2: resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== -is-wsl@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" - integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= @@ -3796,48 +3544,12 @@ isobject@^3.0.0, isobject@^3.0.1: resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -istanbul-lib-coverage@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz#675f0ab69503fad4b1d849f736baaca803344f49" - integrity sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA== - istanbul-lib-coverage@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== -istanbul-lib-instrument@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz#a5f63d91f0bbc0c3e479ef4c5de027335ec6d630" - integrity sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA== - dependencies: - "@babel/generator" "^7.4.0" - "@babel/parser" "^7.4.3" - "@babel/template" "^7.4.0" - "@babel/traverse" "^7.4.3" - "@babel/types" "^7.4.0" - istanbul-lib-coverage "^2.0.5" - semver "^6.0.0" - -istanbul-lib-instrument@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.1.tgz#61f13ac2c96cfefb076fe7131156cc05907874e6" - integrity sha512-imIchxnodll7pvQBYOqUu88EufLCU56LMeFPZZM/fJZ1irYcYdqroaV+ACK1Ila8ls09iEYArp+nqyC6lW1Vfg== - dependencies: - "@babel/core" "^7.7.5" - "@babel/parser" "^7.7.5" - "@babel/template" "^7.7.4" - "@babel/traverse" "^7.7.4" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.0.0" - semver "^6.3.0" - -istanbul-lib-instrument@^4.0.3: +istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: version "4.0.3" resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== @@ -3873,744 +3585,521 @@ istanbul-reports@^3.0.2: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-26.1.0.tgz#de66b0f30453bca2aff98e9400f75905da495305" - integrity sha512-HS5MIJp3B8t0NRKGMCZkcDUZo36mVRvrDETl81aqljT1S9tqiHRSpyoOvWg9ZilzZG9TDisDNaN1IXm54fLRZw== +jest-changed-files@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-27.1.0.tgz#42da6ea00f06274172745729d55f42b60a9dffe0" + integrity sha512-eRcb13TfQw0xiV2E98EmiEgs9a5uaBIqJChyl0G7jR9fCIvGjXovnDS6Zbku3joij4tXYcSK4SE1AXqOlUxjWg== dependencies: - "@jest/types" "^26.1.0" - execa "^4.0.0" - throat "^5.0.0" + "@jest/types" "^27.1.0" + execa "^5.0.0" + throat "^6.0.1" + +jest-circus@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-27.1.0.tgz#24c280c90a625ea57da20ee231d25b1621979a57" + integrity sha512-6FWtHs3nZyZlMBhRf1wvAC5CirnflbGJAY1xssSAnERLiiXQRH+wY2ptBVtXjX4gz4AA2EwRV57b038LmifRbA== + dependencies: + "@jest/environment" "^27.1.0" + "@jest/test-result" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/node" "*" + chalk "^4.0.0" + co "^4.6.0" + dedent "^0.7.0" + expect "^27.1.0" + is-generator-fn "^2.0.0" + jest-each "^27.1.0" + jest-matcher-utils "^27.1.0" + jest-message-util "^27.1.0" + jest-runtime "^27.1.0" + jest-snapshot "^27.1.0" + jest-util "^27.1.0" + pretty-format "^27.1.0" + slash "^3.0.0" + stack-utils "^2.0.3" + throat "^6.0.1" -jest-cli@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-26.1.0.tgz#eb9ec8a18cf3b6aa556d9deaa9e24be12b43ad87" - integrity sha512-Imumvjgi3rU7stq6SJ1JUEMaV5aAgJYXIs0jPqdUnF47N/Tk83EXfmtvNKQ+SnFVI6t6mDOvfM3aA9Sg6kQPSw== +jest-cli@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-27.1.0.tgz#118438e4d11cf6fb66cb2b2eb5778817eab3daeb" + integrity sha512-h6zPUOUu+6oLDrXz0yOWY2YXvBLk8gQinx4HbZ7SF4V3HzasQf+ncoIbKENUMwXyf54/6dBkYXvXJos+gOHYZw== dependencies: - "@jest/core" "^26.1.0" - "@jest/test-result" "^26.1.0" - "@jest/types" "^26.1.0" + "@jest/core" "^27.1.0" + "@jest/test-result" "^27.1.0" + "@jest/types" "^27.1.0" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.4" import-local "^3.0.2" - is-ci "^2.0.0" - jest-config "^26.1.0" - jest-util "^26.1.0" - jest-validate "^26.1.0" + jest-config "^27.1.0" + jest-util "^27.1.0" + jest-validate "^27.1.0" prompts "^2.0.1" - yargs "^15.3.1" - -jest-config@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-24.9.0.tgz#fb1bbc60c73a46af03590719efa4825e6e4dd1b5" - integrity sha512-RATtQJtVYQrp7fvWg6f5y3pEFj9I+H8sWw4aKxnDZ96mob5i5SD6ZEGWgMLXQ4LE8UurrjbdlLWdUeo+28QpfQ== - dependencies: - "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^24.9.0" - "@jest/types" "^24.9.0" - babel-jest "^24.9.0" - chalk "^2.0.1" - glob "^7.1.1" - jest-environment-jsdom "^24.9.0" - jest-environment-node "^24.9.0" - jest-get-type "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - micromatch "^3.1.10" - pretty-format "^24.9.0" - realpath-native "^1.1.0" + yargs "^16.0.3" -jest-config@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-26.1.0.tgz#9074f7539acc185e0113ad6d22ed589c16a37a73" - integrity sha512-ONTGeoMbAwGCdq4WuKkMcdMoyfs5CLzHEkzFOlVvcDXufZSaIWh/OXMLa2fwKXiOaFcqEw8qFr4VOKJQfn4CVw== +jest-config@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-27.1.0.tgz#e6826e2baaa34c07c3839af86466870e339d9ada" + integrity sha512-GMo7f76vMYUA3b3xOdlcKeKQhKcBIgurjERO2hojo0eLkKPGcw7fyIoanH+m6KOP2bLad+fGnF8aWOJYxzNPeg== dependencies: "@babel/core" "^7.1.0" - "@jest/test-sequencer" "^26.1.0" - "@jest/types" "^26.1.0" - babel-jest "^26.1.0" + "@jest/test-sequencer" "^27.1.0" + "@jest/types" "^27.1.0" + babel-jest "^27.1.0" chalk "^4.0.0" deepmerge "^4.2.2" glob "^7.1.1" graceful-fs "^4.2.4" - jest-environment-jsdom "^26.1.0" - jest-environment-node "^26.1.0" - jest-get-type "^26.0.0" - jest-jasmine2 "^26.1.0" - jest-regex-util "^26.0.0" - jest-resolve "^26.1.0" - jest-util "^26.1.0" - jest-validate "^26.1.0" - micromatch "^4.0.2" - pretty-format "^26.1.0" - -jest-diff@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-24.9.0.tgz#931b7d0d5778a1baf7452cb816e325e3724055da" - integrity sha512-qMfrTs8AdJE2iqrTp0hzh7kTd2PQWrsFyj9tORoKmu32xjPjeE4NyjVRDz8ybYwqS2ik8N4hsIpiVTyFeo2lBQ== - dependencies: - chalk "^2.0.1" - diff-sequences "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-diff@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-26.1.0.tgz#00a549bdc936c9691eb4dc25d1fbd78bf456abb2" - integrity sha512-GZpIcom339y0OXznsEKjtkfKxNdg7bVbEofK8Q6MnevTIiR1jNhDWKhRX6X0SDXJlwn3dy59nZ1z55fLkAqPWg== + is-ci "^3.0.0" + jest-circus "^27.1.0" + jest-environment-jsdom "^27.1.0" + jest-environment-node "^27.1.0" + jest-get-type "^27.0.6" + jest-jasmine2 "^27.1.0" + jest-regex-util "^27.0.6" + jest-resolve "^27.1.0" + jest-runner "^27.1.0" + jest-util "^27.1.0" + jest-validate "^27.1.0" + micromatch "^4.0.4" + pretty-format "^27.1.0" + +jest-diff@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-27.1.0.tgz#c7033f25add95e2218f3c7f4c3d7b634ab6b3cd2" + integrity sha512-rjfopEYl58g/SZTsQFmspBODvMSytL16I+cirnScWTLkQVXYVZfxm78DFfdIIXc05RCYuGjxJqrdyG4PIFzcJg== dependencies: chalk "^4.0.0" - diff-sequences "^26.0.0" - jest-get-type "^26.0.0" - pretty-format "^26.1.0" - -jest-docblock@^24.3.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-24.9.0.tgz#7970201802ba560e1c4092cc25cbedf5af5a8ce2" - integrity sha512-F1DjdpDMJMA1cN6He0FNYNZlo3yYmOtRUnktrT9Q37njYzC5WEaDdmbynIgy0L/IvXvvgsG8OsqhLPXTpfmZAA== - dependencies: - detect-newline "^2.1.0" + diff-sequences "^27.0.6" + jest-get-type "^27.0.6" + pretty-format "^27.1.0" -jest-docblock@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-26.0.0.tgz#3e2fa20899fc928cb13bd0ff68bd3711a36889b5" - integrity sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w== +jest-docblock@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-27.0.6.tgz#cc78266acf7fe693ca462cbbda0ea4e639e4e5f3" + integrity sha512-Fid6dPcjwepTFraz0YxIMCi7dejjJ/KL9FBjPYhBp4Sv1Y9PdhImlKZqYU555BlN4TQKaTc+F2Av1z+anVyGkA== dependencies: detect-newline "^3.0.0" -jest-each@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-24.9.0.tgz#eb2da602e2a610898dbc5f1f6df3ba86b55f8b05" - integrity sha512-ONi0R4BvW45cw8s2Lrx8YgbeXL1oCQ/wIDwmsM3CqM/nlblNCPmnC3IPQlMbRFZu3wKdQ2U8BqM6lh3LJ5Bsog== - dependencies: - "@jest/types" "^24.9.0" - chalk "^2.0.1" - jest-get-type "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - -jest-each@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-26.1.0.tgz#e35449875009a22d74d1bda183b306db20f286f7" - integrity sha512-lYiSo4Igr81q6QRsVQq9LIkJW0hZcKxkIkHzNeTMPENYYDw/W/Raq28iJ0sLlNFYz2qxxeLnc5K2gQoFYlu2bA== +jest-each@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-27.1.0.tgz#36ac75f7aeecb3b8da2a8e617ccb30a446df408c" + integrity sha512-K/cNvQlmDqQMRHF8CaQ0XPzCfjP5HMJc2bIJglrIqI9fjwpNqITle63IWE+wq4p+3v+iBgh7Wq0IdGpLx5xjDg== dependencies: - "@jest/types" "^26.1.0" + "@jest/types" "^27.1.0" chalk "^4.0.0" - jest-get-type "^26.0.0" - jest-util "^26.1.0" - pretty-format "^26.1.0" - -jest-environment-jsdom@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-24.9.0.tgz#4b0806c7fc94f95edb369a69cc2778eec2b7375b" - integrity sha512-Zv9FV9NBRzLuALXjvRijO2351DRQeLYXtpD4xNvfoVFw21IOKNhZAEUKcbiEtjTkm2GsJ3boMVgkaR7rN8qetA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - jsdom "^11.5.1" - -jest-environment-jsdom@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-26.1.0.tgz#9dc7313ffe1b59761dad1fedb76e2503e5d37c5b" - integrity sha512-dWfiJ+spunVAwzXbdVqPH1LbuJW/kDL+FyqgA5YzquisHqTi0g9hquKif9xKm7c1bKBj6wbmJuDkeMCnxZEpUw== - dependencies: - "@jest/environment" "^26.1.0" - "@jest/fake-timers" "^26.1.0" - "@jest/types" "^26.1.0" - jest-mock "^26.1.0" - jest-util "^26.1.0" - jsdom "^16.2.2" - -jest-environment-node@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-24.9.0.tgz#333d2d2796f9687f2aeebf0742b519f33c1cbfd3" - integrity sha512-6d4V2f4nxzIzwendo27Tr0aFm+IXWa0XEUnaH6nU0FMaozxovt+sfRvh4J47wL1OvF83I3SSTu0XK+i4Bqe7uA== - dependencies: - "@jest/environment" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/types" "^24.9.0" - jest-mock "^24.9.0" - jest-util "^24.9.0" - -jest-environment-node@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-26.1.0.tgz#8bb387b3eefb132eab7826f9a808e4e05618960b" - integrity sha512-DNm5x1aQH0iRAe9UYAkZenuzuJ69VKzDCAYISFHQ5i9e+2Tbeu2ONGY7YStubCLH8a1wdKBgqScYw85+ySxqxg== - dependencies: - "@jest/environment" "^26.1.0" - "@jest/fake-timers" "^26.1.0" - "@jest/types" "^26.1.0" - jest-mock "^26.1.0" - jest-util "^26.1.0" - -jest-get-type@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-24.9.0.tgz#1684a0c8a50f2e4901b6644ae861f579eed2ef0e" - integrity sha512-lUseMzAley4LhIcpSP9Jf+fTrQ4a1yHQwLNeeVa2cEmbCGeoZAtYPOIv8JaxLD/sUpKxetKGP+gsHl8f8TSj8Q== - -jest-get-type@^26.0.0: - version "26.0.0" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-26.0.0.tgz#381e986a718998dbfafcd5ec05934be538db4039" - integrity sha512-zRc1OAPnnws1EVfykXOj19zo2EMw5Hi6HLbFCSjpuJiXtOWAYIjNsHVSbpQ8bDX7L5BGYGI8m+HmKdjHYFF0kg== + jest-get-type "^27.0.6" + jest-util "^27.1.0" + pretty-format "^27.1.0" + +jest-environment-jsdom@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-27.1.0.tgz#5fb3eb8a67e02e6cc623640388d5f90e33075f18" + integrity sha512-JbwOcOxh/HOtsj56ljeXQCUJr3ivnaIlM45F5NBezFLVYdT91N5UofB1ux2B1CATsQiudcHdgTaeuqGXJqjJYQ== + dependencies: + "@jest/environment" "^27.1.0" + "@jest/fake-timers" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/node" "*" + jest-mock "^27.1.0" + jest-util "^27.1.0" + jsdom "^16.6.0" + +jest-environment-node@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-27.1.0.tgz#feea6b765f1fd4582284d4f1007df2b0a8d15b7f" + integrity sha512-JIyJ8H3wVyM4YCXp7njbjs0dIT87yhGlrXCXhDKNIg1OjurXr6X38yocnnbXvvNyqVTqSI4M9l+YfPKueqL1lw== + dependencies: + "@jest/environment" "^27.1.0" + "@jest/fake-timers" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/node" "*" + jest-mock "^27.1.0" + jest-util "^27.1.0" -jest-haste-map@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-24.9.0.tgz#b38a5d64274934e21fa417ae9a9fbeb77ceaac7d" - integrity sha512-kfVFmsuWui2Sj1Rp1AJ4D9HqJwE4uwTlS/vO+eRUaMmd54BFpli2XhMQnPC2k4cHFVbB2Q2C+jtI1AGLgEnCjQ== +jest-get-type@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-27.0.6.tgz#0eb5c7f755854279ce9b68a9f1a4122f69047cfe" + integrity sha512-XTkK5exIeUbbveehcSR8w0bhH+c0yloW/Wpl+9vZrjzztCPWrxhHwkIFpZzCt71oRBsgxmuUfxEqOYoZI2macg== + +jest-haste-map@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.6.2.tgz#dd7e60fe7dc0e9f911a23d79c5ff7fb5c2cafeaa" + integrity sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w== dependencies: - "@jest/types" "^24.9.0" - anymatch "^2.0.0" + "@jest/types" "^26.6.2" + "@types/graceful-fs" "^4.1.2" + "@types/node" "*" + anymatch "^3.0.3" fb-watchman "^2.0.0" - graceful-fs "^4.1.15" - invariant "^2.2.4" - jest-serializer "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.9.0" - micromatch "^3.1.10" + graceful-fs "^4.2.4" + jest-regex-util "^26.0.0" + jest-serializer "^26.6.2" + jest-util "^26.6.2" + jest-worker "^26.6.2" + micromatch "^4.0.2" sane "^4.0.3" walker "^1.0.7" optionalDependencies: - fsevents "^1.2.7" + fsevents "^2.1.2" -jest-haste-map@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-26.1.0.tgz#ef31209be73f09b0d9445e7d213e1b53d0d1476a" - integrity sha512-WeBS54xCIz9twzkEdm6+vJBXgRBQfdbbXD0dk8lJh7gLihopABlJmIQFdWSDDtuDe4PRiObsjZSUjbJ1uhWEpA== +jest-haste-map@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-27.1.0.tgz#a39f456823bd6a74e3c86ad25f6fa870428326bf" + integrity sha512-7mz6LopSe+eA6cTFMf10OfLLqRoIPvmMyz5/OnSXnHO7hB0aDP1iIeLWCXzAcYU5eIJVpHr12Bk9yyq2fTW9vg== dependencies: - "@jest/types" "^26.1.0" + "@jest/types" "^27.1.0" "@types/graceful-fs" "^4.1.2" + "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.4" - jest-serializer "^26.1.0" - jest-util "^26.1.0" - jest-worker "^26.1.0" - micromatch "^4.0.2" - sane "^4.0.3" + jest-regex-util "^27.0.6" + jest-serializer "^27.0.6" + jest-util "^27.1.0" + jest-worker "^27.1.0" + micromatch "^4.0.4" walker "^1.0.7" - which "^2.0.2" optionalDependencies: - fsevents "^2.1.2" + fsevents "^2.3.2" -jest-jasmine2@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-24.9.0.tgz#1f7b1bd3242c1774e62acabb3646d96afc3be6a0" - integrity sha512-Cq7vkAgaYKp+PsX+2/JbTarrk0DmNhsEtqBXNwUHkdlbrTBLtMJINADf2mf5FkowNsq8evbPc07/qFO0AdKTzw== - dependencies: - "@babel/traverse" "^7.1.0" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - co "^4.6.0" - expect "^24.9.0" - is-generator-fn "^2.0.0" - jest-each "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-runtime "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - pretty-format "^24.9.0" - throat "^4.0.0" - -jest-jasmine2@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-26.1.0.tgz#4dfe349b2b2d3c6b3a27c024fd4cb57ac0ed4b6f" - integrity sha512-1IPtoDKOAG+MeBrKvvuxxGPJb35MTTRSDglNdWWCndCB3TIVzbLThRBkwH9P081vXLgiJHZY8Bz3yzFS803xqQ== +jest-jasmine2@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-jasmine2/-/jest-jasmine2-27.1.0.tgz#324a3de0b2ee20d238b2b5b844acc4571331a206" + integrity sha512-Z/NIt0wBDg3przOW2FCWtYjMn3Ip68t0SL60agD/e67jlhTyV3PIF8IzT9ecwqFbeuUSO2OT8WeJgHcalDGFzQ== dependencies: "@babel/traverse" "^7.1.0" - "@jest/environment" "^26.1.0" - "@jest/source-map" "^26.1.0" - "@jest/test-result" "^26.1.0" - "@jest/types" "^26.1.0" + "@jest/environment" "^27.1.0" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/node" "*" chalk "^4.0.0" co "^4.6.0" - expect "^26.1.0" + expect "^27.1.0" is-generator-fn "^2.0.0" - jest-each "^26.1.0" - jest-matcher-utils "^26.1.0" - jest-message-util "^26.1.0" - jest-runtime "^26.1.0" - jest-snapshot "^26.1.0" - jest-util "^26.1.0" - pretty-format "^26.1.0" - throat "^5.0.0" - -jest-leak-detector@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-24.9.0.tgz#b665dea7c77100c5c4f7dfcb153b65cf07dcf96a" - integrity sha512-tYkFIDsiKTGwb2FG1w8hX9V0aUb2ot8zY/2nFg087dUageonw1zrLMP4W6zsRO59dPkTSKie+D4rhMuP9nRmrA== - dependencies: - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-leak-detector@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-26.1.0.tgz#039c3a07ebcd8adfa984b6ac015752c35792e0a6" - integrity sha512-dsMnKF+4BVOZwvQDlgn3MG+Ns4JuLv8jNvXH56bgqrrboyCbI1rQg6EI5rs+8IYagVcfVP2yZFKfWNZy0rK0Hw== - dependencies: - jest-get-type "^26.0.0" - pretty-format "^26.1.0" - -jest-matcher-utils@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-24.9.0.tgz#f5b3661d5e628dffe6dd65251dfdae0e87c3a073" - integrity sha512-OZz2IXsu6eaiMAwe67c1T+5tUAtQyQx27/EMEkbFAGiw52tB9em+uGbzpcgYVpA8wl0hlxKPZxrly4CXU/GjHA== - dependencies: - chalk "^2.0.1" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - pretty-format "^24.9.0" - -jest-matcher-utils@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-26.1.0.tgz#cf75a41bd413dda784f022de5a65a2a5c73a5c92" - integrity sha512-PW9JtItbYvES/xLn5mYxjMd+Rk+/kIt88EfH3N7w9KeOrHWaHrdYPnVHndGbsFGRJ2d5gKtwggCvkqbFDoouQA== + jest-each "^27.1.0" + jest-matcher-utils "^27.1.0" + jest-message-util "^27.1.0" + jest-runtime "^27.1.0" + jest-snapshot "^27.1.0" + jest-util "^27.1.0" + pretty-format "^27.1.0" + throat "^6.0.1" + +jest-leak-detector@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-27.1.0.tgz#fe7eb633c851e06280ec4dd248067fe232c00a79" + integrity sha512-oHvSkz1E80VyeTKBvZNnw576qU+cVqRXUD3/wKXh1zpaki47Qty2xeHg2HKie9Hqcd2l4XwircgNOWb/NiGqdA== + dependencies: + jest-get-type "^27.0.6" + pretty-format "^27.1.0" + +jest-matcher-utils@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-27.1.0.tgz#68afda0885db1f0b9472ce98dc4c535080785301" + integrity sha512-VmAudus2P6Yt/JVBRdTPFhUzlIN8DYJd+et5Rd9QDsO/Z82Z4iwGjo43U8Z+PTiz8CBvKvlb6Fh3oKy39hykkQ== dependencies: chalk "^4.0.0" - jest-diff "^26.1.0" - jest-get-type "^26.0.0" - pretty-format "^26.1.0" - -jest-message-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-24.9.0.tgz#527f54a1e380f5e202a8d1149b0ec872f43119e3" - integrity sha512-oCj8FiZ3U0hTP4aSui87P4L4jC37BtQwUMqk+zk/b11FR19BJDeZsZAvIHutWnmtw7r85UmR3CEWZ0HWU2mAlw== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/stack-utils" "^1.0.1" - chalk "^2.0.1" - micromatch "^3.1.10" - slash "^2.0.0" - stack-utils "^1.0.1" - -jest-message-util@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-26.1.0.tgz#52573fbb8f5cea443c4d1747804d7a238a3e233c" - integrity sha512-dY0+UlldiAJwNDJ08SF0HdF32g9PkbF2NRK/+2iMPU40O6q+iSn1lgog/u0UH8ksWoPv0+gNq8cjhYO2MFtT0g== - dependencies: - "@babel/code-frame" "^7.0.0" - "@jest/types" "^26.1.0" - "@types/stack-utils" "^1.0.1" + jest-diff "^27.1.0" + jest-get-type "^27.0.6" + pretty-format "^27.1.0" + +jest-message-util@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-27.1.0.tgz#e77692c84945d1d10ef00afdfd3d2c20bd8fb468" + integrity sha512-Eck8NFnJ5Sg36R9XguD65cf2D5+McC+NF5GIdEninoabcuoOfWrID5qJhufq5FB0DRKoiyxB61hS7MKoMD0trQ== + dependencies: + "@babel/code-frame" "^7.12.13" + "@jest/types" "^27.1.0" + "@types/stack-utils" "^2.0.0" chalk "^4.0.0" graceful-fs "^4.2.4" - micromatch "^4.0.2" + micromatch "^4.0.4" + pretty-format "^27.1.0" slash "^3.0.0" - stack-utils "^2.0.2" - -jest-mock@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-24.9.0.tgz#c22835541ee379b908673ad51087a2185c13f1c6" - integrity sha512-3BEYN5WbSq9wd+SyLDES7AHnjH9A/ROBwmz7l2y+ol+NtSFO8DYiEBzoO1CeFc9a8DYy10EO4dDFVv/wN3zl1w== - dependencies: - "@jest/types" "^24.9.0" + stack-utils "^2.0.3" -jest-mock@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-26.1.0.tgz#80d8286da1f05a345fbad1bfd6fa49a899465d3d" - integrity sha512-1Rm8EIJ3ZFA8yCIie92UbxZWj9SuVmUGcyhLHyAhY6WI3NIct38nVcfOPWhJteqSn8V8e3xOMha9Ojfazfpovw== +jest-mock@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-27.1.0.tgz#7ca6e4d09375c071661642d1c14c4711f3ab4b4f" + integrity sha512-iT3/Yhu7DwAg/0HvvLCqLvrTKTRMyJlrrfJYWzuLSf9RCAxBoIXN3HoymZxMnYsC3eD8ewGbUa9jUknwBenx2w== dependencies: - "@jest/types" "^26.1.0" - -jest-pnp-resolver@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz#ecdae604c077a7fbc70defb6d517c3c1c898923a" - integrity sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ== + "@jest/types" "^27.1.0" + "@types/node" "*" -jest-regex-util@^24.3.0, jest-regex-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-24.9.0.tgz#c13fb3380bde22bf6575432c493ea8fe37965636" - integrity sha512-05Cmb6CuxaA+Ys6fjr3PhvV3bGQmO+2p2La4hFbU+W5uOc479f7FdLXUWXw4pYMAhhSZIuKHwSXSu6CsSBAXQA== +jest-pnp-resolver@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" + integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== jest-regex-util@^26.0.0: version "26.0.0" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-26.0.0.tgz#d25e7184b36e39fd466c3bc41be0971e821fee28" integrity sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A== -jest-resolve-dependencies@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-26.1.0.tgz#1ce36472f864a5dadf7dc82fa158e1c77955691b" - integrity sha512-fQVEPHHQ1JjHRDxzlLU/buuQ9om+hqW6Vo928aa4b4yvq4ZHBtRSDsLdKQLuCqn5CkTVpYZ7ARh2fbA8WkRE6g== - dependencies: - "@jest/types" "^26.1.0" - jest-regex-util "^26.0.0" - jest-snapshot "^26.1.0" +jest-regex-util@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-27.0.6.tgz#02e112082935ae949ce5d13b2675db3d8c87d9c5" + integrity sha512-SUhPzBsGa1IKm8hx2F4NfTGGp+r7BXJ4CulsZ1k2kI+mGLG+lxGrs76veN2LF/aUdGosJBzKgXmNCw+BzFqBDQ== -jest-resolve@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-24.9.0.tgz#dff04c7687af34c4dd7e524892d9cf77e5d17321" - integrity sha512-TaLeLVL1l08YFZAt3zaPtjiVvyy4oSA6CRe+0AFPPVX3Q/VI0giIWWoAvoS5L96vj9Dqxj4fB5p2qrHCmTU/MQ== +jest-resolve-dependencies@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-27.1.0.tgz#d32ea4a2c82f76410f6157d0ec6cde24fbff2317" + integrity sha512-Kq5XuDAELuBnrERrjFYEzu/A+i2W7l9HnPWqZEeKGEQ7m1R+6ndMbdXCVCx29Se1qwLZLgvoXwinB3SPIaitMQ== dependencies: - "@jest/types" "^24.9.0" - browser-resolve "^1.11.3" - chalk "^2.0.1" - jest-pnp-resolver "^1.2.1" - realpath-native "^1.1.0" + "@jest/types" "^27.1.0" + jest-regex-util "^27.0.6" + jest-snapshot "^27.1.0" -jest-resolve@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-26.1.0.tgz#a530eaa302b1f6fa0479079d1561dd69abc00e68" - integrity sha512-KsY1JV9FeVgEmwIISbZZN83RNGJ1CC+XUCikf/ZWJBX/tO4a4NvA21YixokhdR9UnmPKKAC4LafVixJBrwlmfg== +jest-resolve@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-27.1.0.tgz#bb22303c9e240cccdda28562e3c6fbcc6a23ac86" + integrity sha512-TXvzrLyPg0vLOwcWX38ZGYeEztSEmW+cQQKqc4HKDUwun31wsBXwotRlUz4/AYU/Fq4GhbMd/ileIWZEtcdmIA== dependencies: - "@jest/types" "^26.1.0" + "@jest/types" "^27.1.0" chalk "^4.0.0" + escalade "^3.1.1" graceful-fs "^4.2.4" - jest-pnp-resolver "^1.2.1" - jest-util "^26.1.0" - read-pkg-up "^7.0.1" - resolve "^1.17.0" + jest-haste-map "^27.1.0" + jest-pnp-resolver "^1.2.2" + jest-util "^27.1.0" + jest-validate "^27.1.0" + resolve "^1.20.0" slash "^3.0.0" -jest-runner@^24.8.0, jest-runner@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-24.9.0.tgz#574fafdbd54455c2b34b4bdf4365a23857fcdf42" - integrity sha512-KksJQyI3/0mhcfspnxxEOBueGrd5E4vV7ADQLT9ESaCzz02WnbdbKWIf5Mkaucoaj7obQckYPVX6JJhgUcoWWg== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - chalk "^2.4.2" - exit "^0.1.2" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-docblock "^24.3.0" - jest-haste-map "^24.9.0" - jest-jasmine2 "^24.9.0" - jest-leak-detector "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - jest-runtime "^24.9.0" - jest-util "^24.9.0" - jest-worker "^24.6.0" - source-map-support "^0.5.6" - throat "^4.0.0" - -jest-runner@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-26.1.0.tgz#457f7fc522afe46ca6db1dccf19f87f500b3288d" - integrity sha512-elvP7y0fVDREnfqit0zAxiXkDRSw6dgCkzPCf1XvIMnSDZ8yogmSKJf192dpOgnUVykmQXwYYJnCx641uLTgcw== +jest-runner@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-27.1.0.tgz#1b28d114fb3b67407b8354c9385d47395e8ff83f" + integrity sha512-ZWPKr9M5w5gDplz1KsJ6iRmQaDT/yyAFLf18fKbb/+BLWsR1sCNC2wMT0H7pP3gDcBz0qZ6aJraSYUNAGSJGaw== dependencies: - "@jest/console" "^26.1.0" - "@jest/environment" "^26.1.0" - "@jest/test-result" "^26.1.0" - "@jest/types" "^26.1.0" + "@jest/console" "^27.1.0" + "@jest/environment" "^27.1.0" + "@jest/test-result" "^27.1.0" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/node" "*" chalk "^4.0.0" + emittery "^0.8.1" exit "^0.1.2" graceful-fs "^4.2.4" - jest-config "^26.1.0" - jest-docblock "^26.0.0" - jest-haste-map "^26.1.0" - jest-jasmine2 "^26.1.0" - jest-leak-detector "^26.1.0" - jest-message-util "^26.1.0" - jest-resolve "^26.1.0" - jest-runtime "^26.1.0" - jest-util "^26.1.0" - jest-worker "^26.1.0" + jest-docblock "^27.0.6" + jest-environment-jsdom "^27.1.0" + jest-environment-node "^27.1.0" + jest-haste-map "^27.1.0" + jest-leak-detector "^27.1.0" + jest-message-util "^27.1.0" + jest-resolve "^27.1.0" + jest-runtime "^27.1.0" + jest-util "^27.1.0" + jest-worker "^27.1.0" source-map-support "^0.5.6" - throat "^5.0.0" - -jest-runtime@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-24.9.0.tgz#9f14583af6a4f7314a6a9d9f0226e1a781c8e4ac" - integrity sha512-8oNqgnmF3v2J6PVRM2Jfuj8oX3syKmaynlDMMKQ4iyzbQzIG6th5ub/lM2bCMTmoTKM3ykcUYI2Pw9xwNtjMnw== - dependencies: - "@jest/console" "^24.7.1" - "@jest/environment" "^24.9.0" - "@jest/source-map" "^24.3.0" - "@jest/transform" "^24.9.0" - "@jest/types" "^24.9.0" - "@types/yargs" "^13.0.0" - chalk "^2.0.1" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.1.15" - jest-config "^24.9.0" - jest-haste-map "^24.9.0" - jest-message-util "^24.9.0" - jest-mock "^24.9.0" - jest-regex-util "^24.3.0" - jest-resolve "^24.9.0" - jest-snapshot "^24.9.0" - jest-util "^24.9.0" - jest-validate "^24.9.0" - realpath-native "^1.1.0" - slash "^2.0.0" - strip-bom "^3.0.0" - yargs "^13.3.0" - -jest-runtime@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-26.1.0.tgz#45a37af42115f123ed5c51f126c05502da2469cb" - integrity sha512-1qiYN+EZLmG1QV2wdEBRf+Ci8i3VSfIYLF02U18PiUDrMbhfpN/EAMMkJtT02jgJUoaEOpHAIXG6zS3QRMzRmA== - dependencies: - "@jest/console" "^26.1.0" - "@jest/environment" "^26.1.0" - "@jest/fake-timers" "^26.1.0" - "@jest/globals" "^26.1.0" - "@jest/source-map" "^26.1.0" - "@jest/test-result" "^26.1.0" - "@jest/transform" "^26.1.0" - "@jest/types" "^26.1.0" - "@types/yargs" "^15.0.0" + throat "^6.0.1" + +jest-runtime@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-27.1.0.tgz#1a98d984ffebc16a0b4f9eaad8ab47c00a750cf5" + integrity sha512-okiR2cpGjY0RkWmUGGado6ETpFOi9oG3yV0CioYdoktkVxy5Hv0WRLWnJFuArSYS8cHMCNcceUUMGiIfgxCO9A== + dependencies: + "@jest/console" "^27.1.0" + "@jest/environment" "^27.1.0" + "@jest/fake-timers" "^27.1.0" + "@jest/globals" "^27.1.0" + "@jest/source-map" "^27.0.6" + "@jest/test-result" "^27.1.0" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/yargs" "^16.0.0" chalk "^4.0.0" + cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" + execa "^5.0.0" exit "^0.1.2" glob "^7.1.3" graceful-fs "^4.2.4" - jest-config "^26.1.0" - jest-haste-map "^26.1.0" - jest-message-util "^26.1.0" - jest-mock "^26.1.0" - jest-regex-util "^26.0.0" - jest-resolve "^26.1.0" - jest-snapshot "^26.1.0" - jest-util "^26.1.0" - jest-validate "^26.1.0" + jest-haste-map "^27.1.0" + jest-message-util "^27.1.0" + jest-mock "^27.1.0" + jest-regex-util "^27.0.6" + jest-resolve "^27.1.0" + jest-snapshot "^27.1.0" + jest-util "^27.1.0" + jest-validate "^27.1.0" slash "^3.0.0" strip-bom "^4.0.0" - yargs "^15.3.1" + yargs "^16.0.3" jest-serial-runner@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/jest-serial-runner/-/jest-serial-runner-1.1.0.tgz#867fcd3ce0284afdf742a7306a9cbfd998631aaf" - integrity sha512-QSCMVZMYPAB8ALys43sxgVt4R6slizz7wj2rbCQPvczMh/AOImKeRil6T0dqaXQUTT9UXYzq00zb1bdK5uGEVQ== - dependencies: - jest-runner "^24.8.0" - -jest-serializer@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-24.9.0.tgz#e6d7d7ef96d31e8b9079a714754c5d5c58288e73" - integrity sha512-DxYipDr8OvfrKH3Kel6NdED3OXxjvxXZ1uIY2I9OFbGg+vUkkg7AGvi65qbhbWNPvDckXmzMPbK3u3HaDO49bQ== + version "1.2.0" + resolved "https://registry.yarnpkg.com/jest-serial-runner/-/jest-serial-runner-1.2.0.tgz#d25002cc4ea1a2b7dd051d9e6c1fa5b17ca97a73" + integrity sha512-iEQPK4U6K+J+46bu3QV2Uu3EnQMiIMk9nFravKlT794KxIruch0kQSV46YHUOSBeFjR4kqY6ra3aqm/AlHklDg== -jest-serializer@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.1.0.tgz#72a394531fc9b08e173dc7d297440ac610d95022" - integrity sha512-eqZOQG/0+MHmr25b2Z86g7+Kzd5dG9dhCiUoyUNJPgiqi38DqbDEOlHcNijyfZoj74soGBohKBZuJFS18YTJ5w== +jest-serializer@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-26.6.2.tgz#d139aafd46957d3a448f3a6cdabe2919ba0742d1" + integrity sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g== dependencies: + "@types/node" "*" graceful-fs "^4.2.4" -jest-snapshot@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-24.9.0.tgz#ec8e9ca4f2ec0c5c87ae8f925cf97497b0e951ba" - integrity sha512-uI/rszGSs73xCM0l+up7O7a40o90cnrk429LOiK3aeTvfC0HHmldbd81/B7Ix81KSFe1lwkbl7GnBGG4UfuDew== +jest-serializer@^27.0.6: + version "27.0.6" + resolved "https://registry.yarnpkg.com/jest-serializer/-/jest-serializer-27.0.6.tgz#93a6c74e0132b81a2d54623251c46c498bb5bec1" + integrity sha512-PtGdVK9EGC7dsaziskfqaAPib6wTViY3G8E5wz9tLVPhHyiDNTZn/xjZ4khAw+09QkoOVpn7vF5nPSN6dtBexA== dependencies: - "@babel/types" "^7.0.0" - "@jest/types" "^24.9.0" - chalk "^2.0.1" - expect "^24.9.0" - jest-diff "^24.9.0" - jest-get-type "^24.9.0" - jest-matcher-utils "^24.9.0" - jest-message-util "^24.9.0" - jest-resolve "^24.9.0" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - pretty-format "^24.9.0" - semver "^6.2.0" + "@types/node" "*" + graceful-fs "^4.2.4" -jest-snapshot@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-26.1.0.tgz#c36ed1e0334bd7bd2fe5ad07e93a364ead7e1349" - integrity sha512-YhSbU7eMTVQO/iRbNs8j0mKRxGp4plo7sJ3GzOQ0IYjvsBiwg0T1o0zGQAYepza7lYHuPTrG5J2yDd0CE2YxSw== +jest-snapshot@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-27.1.0.tgz#2a063ab90064017a7e9302528be7eaea6da12d17" + integrity sha512-eaeUBoEjuuRwmiRI51oTldUsKOohB1F6fPqWKKILuDi/CStxzp2IWekVUXbuHHoz5ik33ioJhshiHpgPFbYgcA== dependencies: + "@babel/core" "^7.7.2" + "@babel/generator" "^7.7.2" + "@babel/parser" "^7.7.2" + "@babel/plugin-syntax-typescript" "^7.7.2" + "@babel/traverse" "^7.7.2" "@babel/types" "^7.0.0" - "@jest/types" "^26.1.0" - "@types/prettier" "^2.0.0" + "@jest/transform" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/babel__traverse" "^7.0.4" + "@types/prettier" "^2.1.5" + babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^26.1.0" + expect "^27.1.0" graceful-fs "^4.2.4" - jest-diff "^26.1.0" - jest-get-type "^26.0.0" - jest-haste-map "^26.1.0" - jest-matcher-utils "^26.1.0" - jest-message-util "^26.1.0" - jest-resolve "^26.1.0" + jest-diff "^27.1.0" + jest-get-type "^27.0.6" + jest-haste-map "^27.1.0" + jest-matcher-utils "^27.1.0" + jest-message-util "^27.1.0" + jest-resolve "^27.1.0" + jest-util "^27.1.0" natural-compare "^1.4.0" - pretty-format "^26.1.0" + pretty-format "^27.1.0" semver "^7.3.2" -jest-util@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-24.9.0.tgz#7396814e48536d2e85a37de3e4c431d7cb140162" - integrity sha512-x+cZU8VRmOJxbA1K5oDBdxQmdq0OIdADarLxk0Mq+3XS4jgvhG/oKGWcIDCtPG0HgjxOYvF+ilPJQsAyXfbNOg== - dependencies: - "@jest/console" "^24.9.0" - "@jest/fake-timers" "^24.9.0" - "@jest/source-map" "^24.9.0" - "@jest/test-result" "^24.9.0" - "@jest/types" "^24.9.0" - callsites "^3.0.0" - chalk "^2.0.1" - graceful-fs "^4.1.15" - is-ci "^2.0.0" - mkdirp "^0.5.1" - slash "^2.0.0" - source-map "^0.6.0" - -jest-util@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.1.0.tgz#80e85d4ba820decacf41a691c2042d5276e5d8d8" - integrity sha512-rNMOwFQevljfNGvbzNQAxdmXQ+NawW/J72dmddsK0E8vgxXCMtwQ/EH0BiWEIxh0hhMcTsxwAxINt7Lh46Uzbg== +jest-util@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-26.6.2.tgz#907535dbe4d5a6cb4c47ac9b926f6af29576cbc1" + integrity sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q== dependencies: - "@jest/types" "^26.1.0" + "@jest/types" "^26.6.2" + "@types/node" "*" chalk "^4.0.0" graceful-fs "^4.2.4" is-ci "^2.0.0" micromatch "^4.0.2" -jest-validate@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-24.9.0.tgz#0775c55360d173cd854e40180756d4ff52def8ab" - integrity sha512-HPIt6C5ACwiqSiwi+OfSSHbK8sG7akG8eATl+IPKaeIjtPOeBUd/g3J7DghugzxrGjI93qS/+RPKe1H6PqvhRQ== +jest-util@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-27.1.0.tgz#06a53777a8cb7e4940ca8e20bf9c67dd65d9bd68" + integrity sha512-edSLD2OneYDKC6gZM1yc+wY/877s/fuJNoM1k3sOEpzFyeptSmke3SLnk1dDHk9CgTA+58mnfx3ew3J11Kes/w== dependencies: - "@jest/types" "^24.9.0" - camelcase "^5.3.1" - chalk "^2.0.1" - jest-get-type "^24.9.0" - leven "^3.1.0" - pretty-format "^24.9.0" + "@jest/types" "^27.1.0" + "@types/node" "*" + chalk "^4.0.0" + graceful-fs "^4.2.4" + is-ci "^3.0.0" + picomatch "^2.2.3" -jest-validate@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-26.1.0.tgz#942c85ad3d60f78250c488a7f85d8f11a29788e7" - integrity sha512-WPApOOnXsiwhZtmkDsxnpye+XLb/tUISP+H6cHjfUIXvlG+eKwP+isnivsxlHCPaO9Q5wvbhloIBkdF3qUn+Nw== +jest-validate@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-27.1.0.tgz#d9e82024c5e3f5cef52a600cfc456793a84c0998" + integrity sha512-QiJ+4XuSuMsfPi9zvdO//IrSRSlG6ybJhOpuqYSsuuaABaNT84h0IoD6vvQhThBOKT+DIKvl5sTM0l6is9+SRA== dependencies: - "@jest/types" "^26.1.0" - camelcase "^6.0.0" + "@jest/types" "^27.1.0" + camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^26.0.0" + jest-get-type "^27.0.6" leven "^3.1.0" - pretty-format "^26.1.0" + pretty-format "^27.1.0" -jest-watcher@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-26.1.0.tgz#99812a0cd931f0cb3d153180426135ab83e4d8f2" - integrity sha512-ffEOhJl2EvAIki613oPsSG11usqnGUzIiK7MMX6hE4422aXOcVEG3ySCTDFLn1+LZNXGPE8tuJxhp8OBJ1pgzQ== +jest-watcher@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-27.1.0.tgz#2511fcddb0e969a400f3d1daa74265f93f13ce93" + integrity sha512-ivaWTrA46aHWdgPDgPypSHiNQjyKnLBpUIHeBaGg11U+pDzZpkffGlcB1l1a014phmG0mHgkOHtOgiqJQM6yKQ== dependencies: - "@jest/test-result" "^26.1.0" - "@jest/types" "^26.1.0" + "@jest/test-result" "^27.1.0" + "@jest/types" "^27.1.0" + "@types/node" "*" ansi-escapes "^4.2.1" chalk "^4.0.0" - jest-util "^26.1.0" + jest-util "^27.1.0" string-length "^4.0.1" -jest-worker@^24.6.0, jest-worker@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" - integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== +jest-worker@^26.6.2: + version "26.6.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" + integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ== dependencies: + "@types/node" "*" merge-stream "^2.0.0" - supports-color "^6.1.0" + supports-color "^7.0.0" -jest-worker@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.1.0.tgz#65d5641af74e08ccd561c240e7db61284f82f33d" - integrity sha512-Z9P5pZ6UC+kakMbNJn+tA2RdVdNX5WH1x+5UCBZ9MxIK24pjYtFt96fK+UwBTrjLYm232g1xz0L3eTh51OW+yQ== +jest-worker@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.1.0.tgz#65f4a88e37148ed984ba8ca8492d6b376938c0aa" + integrity sha512-mO4PHb2QWLn9yRXGp7rkvXLAYuxwhq1ZYUo0LoDhg8wqvv4QizP1ZWEJOeolgbEgAWZLIEU0wsku8J+lGWfBhg== dependencies: + "@types/node" "*" merge-stream "^2.0.0" - supports-color "^7.0.0" + supports-color "^8.0.0" -jest@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/jest/-/jest-26.1.0.tgz#2f3aa7bcffb9bfd025473f83bbbf46a3af026263" - integrity sha512-LIti8jppw5BcQvmNJe4w2g1N/3V68HUfAv9zDVm7v+VAtQulGhH0LnmmiVkbNE4M4I43Bj2fXPiBGKt26k9tHw== +jest@^27.0.6: + version "27.1.0" + resolved "https://registry.yarnpkg.com/jest/-/jest-27.1.0.tgz#eaab62dfdc02d8b7c814cd27b8d2d92bc46d3d69" + integrity sha512-pSQDVwRSwb109Ss13lcMtdfS9r8/w2Zz8+mTUA9VORD66GflCdl8nUFCqM96geOD2EBwWCNURrNAfQsLIDNBdg== dependencies: - "@jest/core" "^26.1.0" + "@jest/core" "^27.1.0" import-local "^3.0.2" - jest-cli "^26.1.0" + jest-cli "^27.1.0" -"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: +js-tokens@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: - version "3.13.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" - integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + version "3.14.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" esprima "^4.0.0" -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@^11.5.1: - version "11.12.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-11.12.0.tgz#1a80d40ddd378a1de59656e9e6dc5a3ba8657bc8" - integrity sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw== - dependencies: - abab "^2.0.0" - acorn "^5.5.3" - acorn-globals "^4.1.0" - array-equal "^1.0.0" - cssom ">= 0.3.2 < 0.4.0" - cssstyle "^1.0.0" - data-urls "^1.0.0" - domexception "^1.0.1" - escodegen "^1.9.1" - html-encoding-sniffer "^1.0.2" - left-pad "^1.3.0" - nwsapi "^2.0.7" - parse5 "4.0.0" - pn "^1.1.0" - request "^2.87.0" - request-promise-native "^1.0.5" - sax "^1.2.4" - symbol-tree "^3.2.2" - tough-cookie "^2.3.4" - w3c-hr-time "^1.0.1" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.3" - whatwg-mimetype "^2.1.0" - whatwg-url "^6.4.1" - ws "^5.2.0" - xml-name-validator "^3.0.0" - -jsdom@^16.2.2: - version "16.3.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.3.0.tgz#75690b7dac36c67be49c336dcd7219bbbed0810c" - integrity sha512-zggeX5UuEknpdZzv15+MS1dPYG0J/TftiiNunOeNxSl3qr8Z6cIlQpN0IdJa44z9aFxZRIVqRncvEhQ7X5DtZg== +jsdom@^16.6.0: + version "16.7.0" + resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-16.7.0.tgz#918ae71965424b197c819f8183a754e18977b710" + integrity sha512-u9Smc2G1USStM+s/x1ru5Sxrl6mPYCbByG1U/hUmqaVsm4tbNyS7CicOSRyuGQYZhTu0h84qkZZQ/I+dzizSVw== dependencies: - abab "^2.0.3" - acorn "^7.1.1" + abab "^2.0.5" + acorn "^8.2.4" acorn-globals "^6.0.0" cssom "^0.4.4" - cssstyle "^2.2.0" + cssstyle "^2.3.0" data-urls "^2.0.0" - decimal.js "^10.2.0" + decimal.js "^10.2.1" domexception "^2.0.1" - escodegen "^1.14.1" + escodegen "^2.0.0" + form-data "^3.0.0" html-encoding-sniffer "^2.0.1" - is-potential-custom-element-name "^1.0.0" + http-proxy-agent "^4.0.1" + https-proxy-agent "^5.0.0" + is-potential-custom-element-name "^1.0.1" nwsapi "^2.2.0" - parse5 "5.1.1" - request "^2.88.2" - request-promise-native "^1.0.8" - saxes "^5.0.0" + parse5 "6.0.1" + saxes "^5.0.1" symbol-tree "^3.2.4" - tough-cookie "^3.0.1" + tough-cookie "^4.0.0" w3c-hr-time "^1.0.2" w3c-xmlserializer "^2.0.0" webidl-conversions "^6.1.0" whatwg-encoding "^1.0.5" whatwg-mimetype "^2.3.0" - whatwg-url "^8.0.0" - ws "^7.2.3" + whatwg-url "^8.5.0" + ws "^7.4.6" xml-name-validator "^3.0.0" jsesc@^2.5.1: @@ -4633,21 +4122,16 @@ json-schema-traverse@^0.4.1: resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= +json-schema-traverse@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= -json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - json5@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" @@ -4656,21 +4140,16 @@ json5@^1.0.1: minimist "^1.2.0" json5@^2.1.2: - version "2.1.3" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" - integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" + integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== dependencies: minimist "^1.2.5" -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" +jssha@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/jssha/-/jssha-3.2.0.tgz#88ec50b866dd1411deaddbe6b3e3692e4c710f16" + integrity sha512-QuruyBENDWdN4tZwJbQq7/eAK85FqrI4oDbXjy5IBhYD+2pTJyBUWZe8ctWaCkrV0gy6AaelgOZZBMeswEa/6Q== kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: version "3.2.2" @@ -4701,23 +4180,11 @@ kleur@^3.0.3: resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== -left-pad@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.3.0.tgz#5b8a3a7765dfe001261dde915589e782f8c94d1e" - integrity sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA== - leven@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -levenary@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" - integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== - dependencies: - leven "^3.1.0" - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -4734,21 +4201,6 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -lines-and-columns@^1.1.6: - version "1.1.6" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" - integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= - -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - load-json-file@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-4.0.0.tgz#2f5f45ab91e33216234fd53adab668eb4ec0993b" @@ -4782,27 +4234,37 @@ locate-path@^5.0.0: dependencies: p-locate "^4.1.0" -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= +lodash.clonedeep@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= -lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15: - version "4.17.15" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" - integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= -lodash@^4.17.19: - version "4.17.19" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.19.tgz#e48ddedbe30b3321783c5b4301fbd353bc1e4a4b" - integrity sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ== +lodash.merge@^4.6.2: + version "4.6.2" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== -loose-envify@^1.0.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" - integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== +lodash.truncate@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193" + integrity sha1-WjUNoLERO4N+z//VgSy+WNbq4ZM= + +lodash@^4.17.21, lodash@^4.7.0: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +lru-cache@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: - js-tokens "^3.0.0 || ^4.0.0" + yallist "^4.0.0" make-dir@^2.0.0, make-dir@^2.1.0: version "2.1.0" @@ -4813,9 +4275,9 @@ make-dir@^2.0.0, make-dir@^2.1.0: semver "^5.6.0" make-dir@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.0.2.tgz#04a1acbf22221e1d6ef43559f43e05a90dbb4392" - integrity sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w== + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" @@ -4871,25 +4333,25 @@ micromatch@^3.1.10, micromatch@^3.1.4: snapdragon "^0.8.1" to-regex "^3.0.2" -micromatch@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" - integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== +micromatch@^4.0.2, micromatch@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9" + integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg== dependencies: braces "^3.0.1" - picomatch "^2.0.5" + picomatch "^2.2.3" -mime-db@1.43.0: - version "1.43.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" - integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== +mime-db@1.49.0: + version "1.49.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.49.0.tgz#f3dfde60c99e9cf3bc9701d687778f537001cbed" + integrity sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA== -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.26" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" - integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== +mime-types@^2.1.12: + version "2.1.32" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.32.tgz#1d00e89e7de7fe02008db61001d9e02852670fd5" + integrity sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A== dependencies: - mime-db "1.43.0" + mime-db "1.49.0" mimic-fn@^2.1.0: version "2.1.0" @@ -4906,7 +4368,7 @@ minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: +minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= @@ -4931,37 +4393,30 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp-classic@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.2.tgz#54c441ce4c96cd7790e10b41a87aa51068ecab2b" - integrity sha512-ejdnDQcR75gwknmMw/tx02AuRs8jCtqFoFqDZMjiNxsu85sRIJVXDKHuLYvUUPRBUtV2FpSZa9bL1BUa3BdR2g== - -mkdirp@^0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" +mkdirp-classic@^0.5.2, mkdirp-classic@^0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" + integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= -ms@^2.1.1: +ms@2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nan@2.13.2: - version "2.13.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.13.2.tgz#f51dc7ae66ba7d5d55e1e6d4d8092e802c9aefe7" - integrity sha512-TghvYc72wlMGMVMluVo9WRJc0mB8KxxF/gZ4YYFy7V2ZQX9l7rgbPg7vjS9mt6U5HXODVFVI2bOduCzwOMv/lw== +ms@^2.1.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -nan@^2.12.1, nan@^2.13.2, nan@^2.14.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" - integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== +nan@^2.13.2: + version "2.15.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" + integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== nanomatch@^1.2.9: version "1.2.13" @@ -4995,24 +4450,27 @@ nice-try@^1.0.4: resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== -node-abi@^2.18.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.18.0.tgz#1f5486cfd7d38bd4f5392fa44a4ad4d9a0dffbf4" - integrity sha512-yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw== +node-abi@^2.21.0, node-abi@^2.7.0: + version "2.30.1" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.30.1.tgz#c437d4b1fe0e285aaf290d45b45d4d7afedac4cf" + integrity sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w== dependencies: semver "^5.4.1" -node-abi@^2.7.0: - version "2.15.0" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.15.0.tgz#51d55cc711bd9e4a24a572ace13b9231945ccb10" - integrity sha512-FeLpTS0F39U7hHZU1srAK4Vx+5AHNVOTP+hxBNQknR/54laTHSFIJkDWDqiquY1LeLUgTfPN7sLPhMubx0PLAg== - dependencies: - semver "^5.4.1" +node-addon-api@3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.0.2.tgz#04bc7b83fd845ba785bb6eae25bc857e1ef75681" + integrity sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg== node-addon-api@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.0.tgz#f9afb8d777a91525244b01775ea0ddbe1125483b" - integrity sha512-ASCL5U13as7HhOExbT6OlWJJUV/lLzL2voOSP1UVehpRD8FbSrSDjfScK/KwAvVTI5AS6r4VwbOMlIqtvRidnA== + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-addon-api@^3.0.2: + version "3.2.1" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.2.1.tgz#81325e0a2117789c0128dab65e7e38f07ceba161" + integrity sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A== node-environment-flags@^1.0.5: version "1.0.6" @@ -5023,19 +4481,18 @@ node-environment-flags@^1.0.5: semver "^5.7.0" node-gyp-build@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.1.tgz#f28f0d3d3ab268d48ab76c6f446f19bc3d0db9dc" - integrity sha512-XyCKXsqZfLqHep1hhsMncoXuUNt/cXCjg1+8CLbu69V1TKuPiOeSGbL9n+k/ByKH8UT0p4rdIX8XkTRZV0i7Sw== + version "4.2.3" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.2.3.tgz#ce6277f853835f718829efb47db20f3e4d9c4739" + integrity sha512-MN6ZpzmfNCRM+3t57PTJHgHyw/h4OWnZ6mR8P5j/uZtqQr46RRuDE/P+g3n0YR/AiYXeWixZZzaip77gdICfRg== -node-hid@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-1.3.0.tgz#346a468505cee13d69ccd760052cbaf749f66a41" - integrity sha512-BA6G4V84kiNd1uAChub/Z/5s/xS3EHBCxotQ0nyYrUG65mXewUDHE1tWOSqA2dp3N+mV0Ffq9wo2AW9t4p/G7g== +node-hid@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/node-hid/-/node-hid-2.1.1.tgz#f83c8aa0bb4e6758b5f7383542477da93f67359d" + integrity sha512-Skzhqow7hyLZU93eIPthM9yjot9lszg9xrKxESleEs05V2NcbUptZc5HFqzjOkSmL0sFlZFr3kmvaYebx06wrw== dependencies: bindings "^1.5.0" - nan "^2.14.0" - node-abi "^2.18.0" - prebuild-install "^5.3.4" + node-addon-api "^3.0.2" + prebuild-install "^6.0.0" node-int64@^0.4.0: version "0.4.0" @@ -5047,34 +4504,17 @@ node-modules-regexp@^1.0.0: resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40" integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA= -node-notifier@^7.0.0: - version "7.0.1" - resolved "https://registry.yarnpkg.com/node-notifier/-/node-notifier-7.0.1.tgz#a355e33e6bebacef9bf8562689aed0f4230ca6f9" - integrity sha512-VkzhierE7DBmQEElhTGJIoiZa1oqRijOtgOlsXg32KrJRXsPy0NXFBqWGW/wTswnJlDCs5viRYaqWguqzsKcmg== - dependencies: - growly "^1.3.0" - is-wsl "^2.1.1" - semver "^7.2.1" - shellwords "^0.1.1" - uuid "^7.0.3" - which "^2.0.2" - -node-releases@^1.1.53: - version "1.1.53" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" - integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== - -node-releases@^1.1.58: - version "1.1.58" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.58.tgz#8ee20eef30fa60e52755fcc0942def5a734fe935" - integrity sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg== +node-releases@^1.1.75: + version "1.1.75" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.75.tgz#6dd8c876b9897a1b8e5a02de26afa79bb54ebbfe" + integrity sha512-Qe5OUajvqrqDSy6wrWFmMwfJ0jVgwiw4T3KqmbTcZ62qW0gQkheXYhcFM1+lOVcGUoRxcEcfyvFMAnDgaF1VWw== noop-logger@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" integrity sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI= -normalize-package-data@^2.3.2, normalize-package-data@^2.5.0: +normalize-package-data@^2.3.2: version "2.5.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== @@ -5091,7 +4531,7 @@ normalize-path@^2.1.1: dependencies: remove-trailing-separator "^1.0.1" -normalize-path@^3.0.0: +normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== @@ -5103,7 +4543,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npm-run-path@^4.0.0: +npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== @@ -5125,16 +4565,11 @@ number-is-nan@^1.0.0: resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= -nwsapi@^2.0.7, nwsapi@^2.2.0: +nwsapi@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" @@ -5149,12 +4584,12 @@ object-copy@^0.1.0: define-property "^0.2.5" kind-of "^3.0.3" -object-inspect@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" - integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== +object-inspect@^1.11.0, object-inspect@^1.9.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" + integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== -object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: +object-keys@^1.0.12, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== @@ -5166,32 +4601,33 @@ object-visit@^1.0.0: dependencies: isobject "^3.0.0" -object.assign@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" - integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== +object.assign@^4.1.0, object.assign@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" + integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== dependencies: - define-properties "^1.1.2" - function-bind "^1.1.1" - has-symbols "^1.0.0" - object-keys "^1.0.11" + call-bind "^1.0.0" + define-properties "^1.1.3" + has-symbols "^1.0.1" + object-keys "^1.1.1" object.entries@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz#bc73f00acb6b6bb16c203434b10f9a7e797d3add" - integrity sha512-BQdB9qKmb/HyNdMNWVr7O3+z5MUIx3aiegEIJqjMBbBf0YT9RRxTJSim4mzFqtyr7PDAHigq0N9dO0m0tRakQA== + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd" + integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" - has "^1.0.3" + es-abstract "^1.18.2" -object.getownpropertydescriptors@^2.0.3, object.getownpropertydescriptors@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" - integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== +object.getownpropertydescriptors@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" + integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" + es-abstract "^1.18.0-next.2" object.pick@^1.3.0: version "1.3.0" @@ -5200,15 +4636,14 @@ object.pick@^1.3.0: dependencies: isobject "^3.0.1" -object.values@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" - integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== +object.values@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30" + integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.0-next.1" - function-bind "^1.1.1" - has "^1.0.3" + es-abstract "^1.18.2" once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" @@ -5217,10 +4652,10 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: dependencies: wrappy "1" -onetime@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" - integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== +onetime@^5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" @@ -5249,9 +4684,9 @@ optionator@^0.9.1: word-wrap "^1.2.3" p-each-series@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.1.0.tgz#961c8dd3f195ea96c747e636b262b800a6b1af48" - integrity sha512-ZuRs1miPT4HrjFa+9fRfOFXxGJfORgelKV9f9nNOWw2gl6gVsRaVDOQP0+MI0G0wGKns1Yacsu0GjOFbTK0JFQ== + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-each-series/-/p-each-series-2.2.0.tgz#105ab0357ce72b202a8a8b94933672657b5e2a9a" + integrity sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA== p-finally@^1.0.0: version "1.0.0" @@ -5310,13 +4745,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" - integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= - dependencies: - error-ex "^1.2.0" - parse-json@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" @@ -5325,41 +4753,21 @@ parse-json@^4.0.0: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-json@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" - integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== - dependencies: - "@babel/code-frame" "^7.0.0" - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - lines-and-columns "^1.1.6" - parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= -parse5@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-4.0.0.tgz#6d78656e3da8d78b4ec0b906f7c08ef1dfe3f608" - integrity sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA== - -parse5@5.1.1: - version "5.1.1" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" - integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== +parse5@6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b" + integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw== pascalcase@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -5386,16 +4794,9 @@ path-key@^3.0.0, path-key@^3.1.0: integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= - dependencies: - pify "^2.0.0" + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-type@^3.0.0: version "3.0.0" @@ -5404,10 +4805,15 @@ path-type@^3.0.0: dependencies: pify "^3.0.0" +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + pbkdf2@^3.0.9: - version "3.0.17" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" - integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -5415,20 +4821,10 @@ pbkdf2@^3.0.9: safe-buffer "^5.0.1" sha.js "^2.4.8" -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -picomatch@^2.0.4, picomatch@^2.0.5: - version "2.2.2" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" - integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== - -pify@^2.0.0: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" - integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972" + integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw== pify@^3.0.0: version "3.0.0" @@ -5475,26 +4871,21 @@ pkg-up@^2.0.0: dependencies: find-up "^2.1.0" -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - posix-character-classes@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= prebuild-install@^5.3.3: - version "5.3.3" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.3.tgz#ef4052baac60d465f5ba6bf003c9c1de79b9da8e" - integrity sha512-GV+nsUXuPW2p8Zy7SarF/2W/oiK8bFQgJcncoJ0d7kRpekEA0ftChjfEaF9/Y+QJEc/wFR7RAEa8lYByuUIe2g== + version "5.3.6" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.6.tgz#7c225568d864c71d89d07f8796042733a3f54291" + integrity sha512-s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg== dependencies: detect-libc "^1.0.3" expand-template "^2.0.3" github-from-package "0.0.0" - minimist "^1.2.0" - mkdirp "^0.5.1" + minimist "^1.2.3" + mkdirp-classic "^0.5.3" napi-build-utils "^1.0.1" node-abi "^2.7.0" noop-logger "^0.1.1" @@ -5506,26 +4897,24 @@ prebuild-install@^5.3.3: tunnel-agent "^0.6.0" which-pm-runs "^1.0.0" -prebuild-install@^5.3.4: - version "5.3.5" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-5.3.5.tgz#e7e71e425298785ea9d22d4f958dbaccf8bb0e1b" - integrity sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw== +prebuild-install@^6.0.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-6.1.4.tgz#ae3c0142ad611d58570b89af4986088a4937e00f" + integrity sha512-Z4vpywnK1lBg+zdPCVCsKq0xO66eEV9rWo2zrROGGiRS4JtueBOdlB1FnY8lcy7JsUud/Q3ijUxyWN26Ika0vQ== dependencies: detect-libc "^1.0.3" expand-template "^2.0.3" github-from-package "0.0.0" minimist "^1.2.3" - mkdirp "^0.5.1" + mkdirp-classic "^0.5.3" napi-build-utils "^1.0.1" - node-abi "^2.7.0" - noop-logger "^0.1.1" + node-abi "^2.21.0" npmlog "^4.0.1" pump "^3.0.0" rc "^1.2.7" simple-get "^3.0.3" tar-fs "^2.0.0" tunnel-agent "^0.6.0" - which-pm-runs "^1.0.0" prelude-ls@^1.2.1: version "1.2.1" @@ -5538,34 +4927,19 @@ prelude-ls@~1.1.2: integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= prettier@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" - integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== - -pretty-format@^24.9.0: - version "24.9.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-24.9.0.tgz#12fac31b37019a4eea3c11aa9a959eb7628aa7c9" - integrity sha512-00ZMZUiHaJrNfk33guavqgvfJS30sLYf0f8+Srklv0AMPodGGHcoHgksZ3OThYnIvOd+8yMCn0YiEOogjlgsnA== - dependencies: - "@jest/types" "^24.9.0" - ansi-regex "^4.0.0" - ansi-styles "^3.2.0" - react-is "^16.8.4" + version "2.3.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.3.2.tgz#ef280a05ec253712e486233db5c6f23441e7342d" + integrity sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ== -pretty-format@^26.1.0: - version "26.1.0" - resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-26.1.0.tgz#272b9cd1f1a924ab5d443dc224899d7a65cb96ec" - integrity sha512-GmeO1PEYdM+non4BKCj+XsPJjFOJIPnsLewqhDVoqY1xo0yNmDas7tC2XwpMrRAHR3MaE2hPo37deX5OisJ2Wg== +pretty-format@^27.1.0: + version "27.1.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-27.1.0.tgz#022f3fdb19121e0a2612f3cff8d724431461b9ca" + integrity sha512-4aGaud3w3rxAO6OXmK3fwBFQ0bctIOG3/if+jYEFGNGIs0EvuidQm3bZ9mlP2/t9epLNC/12czabfy7TZNSwVA== dependencies: - "@jest/types" "^26.1.0" + "@jest/types" "^27.1.0" ansi-regex "^5.0.0" - ansi-styles "^4.0.0" - react-is "^16.12.0" - -private@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" - integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + ansi-styles "^5.0.0" + react-is "^17.0.1" process-nextick-args@~2.0.0: version "2.0.1" @@ -5578,14 +4952,14 @@ progress@^2.0.0: integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== prompts@^2.0.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" - integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + version "2.4.1" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.4.1.tgz#befd3b1195ba052f9fd2fde8a486c4e82ee77f61" + integrity sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ== dependencies: kleur "^3.0.3" - sisteransi "^1.0.4" + sisteransi "^1.0.5" -psl@^1.1.28: +psl@^1.1.33: version "1.8.0" resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== @@ -5603,11 +4977,6 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - randombytes@^2.0.1: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -5625,45 +4994,19 @@ rc@^1.2.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -react-is@^16.12.0, react-is@^16.8.4: - version "16.13.1" - resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" - integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== +react-is@^17.0.1: + version "17.0.2" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-17.0.2.tgz#e691d4a8e9c789365655539ab372762b0efb54f0" + integrity sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w== -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= +read-pkg-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-3.0.0.tgz#3ed496685dba0f8fe118d0691dc51f4a1ff96f07" + integrity sha1-PtSWaF26D4/hGNBpHcUfSh/5bwc= dependencies: find-up "^2.0.0" - read-pkg "^2.0.0" - -read-pkg-up@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-4.0.0.tgz#1b221c6088ba7799601c808f91161c66e58f8978" - integrity sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA== - dependencies: - find-up "^3.0.0" read-pkg "^3.0.0" -read-pkg-up@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" - integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== - dependencies: - find-up "^4.1.0" - read-pkg "^5.2.0" - type-fest "^0.8.1" - -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - read-pkg@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-3.0.0.tgz#9cbc686978fee65d16c00e2b19c237fcf6e38389" @@ -5673,16 +5016,6 @@ read-pkg@^3.0.0: normalize-package-data "^2.3.2" path-type "^3.0.0" -read-pkg@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" - integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== - dependencies: - "@types/normalize-package-data" "^2.4.0" - normalize-package-data "^2.5.0" - parse-json "^5.0.0" - type-fest "^0.6.0" - readable-stream@^2.0.2, readable-stream@^2.0.6: version "2.3.7" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" @@ -5696,7 +5029,7 @@ readable-stream@^2.0.2, readable-stream@^2.0.6: string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.1.1, readable-stream@^3.4.0: +readable-stream@^3.1.1, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== @@ -5714,12 +5047,12 @@ readdirp@^2.2.1: micromatch "^3.1.10" readable-stream "^2.0.2" -realpath-native@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/realpath-native/-/realpath-native-1.1.0.tgz#2003294fea23fb0672f2476ebe22fcf498a2d65c" - integrity sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA== +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: - util.promisify "^1.0.0" + picomatch "^2.2.1" regenerate-unicode-properties@^8.2.0: version "8.2.0" @@ -5729,22 +5062,21 @@ regenerate-unicode-properties@^8.2.0: regenerate "^1.4.0" regenerate@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" - integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + version "1.4.2" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" + integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== regenerator-runtime@^0.13.4: - version "0.13.5" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" - integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + version "0.13.9" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" + integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== regenerator-transform@^0.14.2: - version "0.14.4" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" - integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== + version "0.14.5" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" + integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== dependencies: "@babel/runtime" "^7.8.4" - private "^0.1.8" regex-not@^1.0.0, regex-not@^1.0.2: version "1.0.2" @@ -5755,14 +5087,14 @@ regex-not@^1.0.0, regex-not@^1.0.2: safe-regex "^1.1.0" regexpp@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" - integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + version "3.2.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== -regexpu-core@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" - integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== +regexpu-core@^4.7.1: + version "4.7.1" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" + integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== dependencies: regenerate "^1.4.0" regenerate-unicode-properties "^8.2.0" @@ -5772,14 +5104,14 @@ regexpu-core@^4.7.0: unicode-match-property-value-ecmascript "^1.2.0" regjsgen@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" - integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== + version "0.5.2" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" + integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== regjsparser@^0.6.4: - version "0.6.4" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" - integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + version "0.6.9" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.9.tgz#b489eef7c9a2ce43727627011429cf833a7183e6" + integrity sha512-ZqbNRz1SNjLAiYuwY0zoXW8Ne675IX5q+YHioAGbCw4X96Mjl2+dcX9B2ciaeyYjViDAfvIjFpQjJgLttTEERQ== dependencies: jsesc "~0.5.0" @@ -5789,66 +5121,24 @@ remove-trailing-separator@^1.0.1: integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + version "1.1.4" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" + integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= -request-promise-core@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.3.tgz#e9a3c081b51380dfea677336061fea879a829ee9" - integrity sha512-QIs2+ArIGQVp5ZYbWD5ZLCY29D5CfWizP8eWnm8FoGD1TX61veauETVQbrV60662V0oFBkrDOuaBI8XgtuyYAQ== - dependencies: - lodash "^4.17.15" - -request-promise-native@^1.0.5, request-promise-native@^1.0.8: - version "1.0.8" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.8.tgz#a455b960b826e44e2bf8999af64dff2bfe58cb36" - integrity sha512-dapwLGqkHtwL5AEbfenuzjTYg35Jd6KPytsC2/TLkVMz8rm+tNt72MGUWT1RP/aYawMpN6HqbNGBQaRcBtjQMQ== - dependencies: - request-promise-core "1.1.3" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.87.0, request@^2.88.2: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= -require-main-filename@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" - integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== +require-from-string@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== resolve-cwd@^3.0.0: version "3.0.0" @@ -5872,23 +5162,12 @@ resolve-url@^0.2.1: resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= -resolve@1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" - integrity sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs= - -resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.3.2, resolve@^1.8.1: - version "1.16.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.16.0.tgz#063dc704fa3413e13ac1d0d1756a7cbfe95dd1a7" - integrity sha512-LarL/PIKJvc09k1jaeT4kQb/8/7P+qV4qSnN2K80AES+OHdfZELAKVOBjxsvtToT/uLOfFbvYvKfZmV8cee7nA== - dependencies: - path-parse "^1.0.6" - -resolve@^1.17.0: - version "1.17.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" - integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0: + version "1.20.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" + integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== dependencies: + is-core-module "^2.2.0" path-parse "^1.0.6" ret@~0.1.10: @@ -5896,14 +5175,7 @@ ret@~0.1.10: resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== -rimraf@2.6.3: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - -rimraf@^3.0.0: +rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== @@ -5923,28 +5195,23 @@ rsvp@^4.8.4: resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== -rxjs@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz#af2901eedf02e3a83ffa7f886240ff9018bbec84" - integrity sha512-3HMA8z/Oz61DUHe+SdOiQyzIf4tOx5oQHmMir7IZEu6TMqCLHT4LRcmNaUS0NwOz8VLvmmBduMsoaUvMaIiqzg== +rxjs@6: + version "6.6.7" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.7.tgz#90ac018acabf491bf65044235d5863c4dab804c9" + integrity sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ== dependencies: tslib "^1.9.0" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2: - version "5.2.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" - integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - safe-regex@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" @@ -5952,7 +5219,7 @@ safe-regex@^1.1.0: dependencies: ret "~0.1.10" -"safer-buffer@>= 2.1.2 < 3", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: +"safer-buffer@>= 2.1.2 < 3": version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== @@ -5972,12 +5239,7 @@ sane@^4.0.3: minimist "^1.1.1" walker "~1.0.5" -sax@^1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^5.0.0: +saxes@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d" integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw== @@ -5985,15 +5247,15 @@ saxes@^5.0.0: xmlchars "^2.2.0" secp256k1@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.1.tgz#b9570ca26ace9e74c3171512bba253da9c0b6d60" - integrity sha512-iGRjbGAKfXMqhtdkkuNxsgJQfJO8Oo78Rm7DAvsG3XKngq+nJIOGqrCSXcQqIVsmCj0wFanE5uTKFxV3T9j2wg== + version "4.0.2" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.2.tgz#15dd57d0f0b9fdb54ac1fa1694f40e5e9a54f4a1" + integrity sha512-UDar4sKvWAksIlfX3xIaQReADn+WFnHvbVujpcbr+9Sf/69odMwy2MUsz5CKLQgX9nsIyrjuxL2imVyoNHa3fg== dependencies: elliptic "^6.5.2" node-addon-api "^2.0.0" node-gyp-build "^4.2.0" -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0: +"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0, semver@^5.6.0, semver@^5.7.0: version "5.7.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== @@ -6003,17 +5265,19 @@ semver@7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -semver@^6.0.0, semver@^6.2.0, semver@^6.3.0: +semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0: version "6.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.2.1, semver@^7.3.2: - version "7.3.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.2.tgz#604962b052b81ed0786aae84389ffba70ffd3938" - integrity sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ== +semver@^7.2.1, semver@^7.3.2, semver@^7.3.5: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" -set-blocking@^2.0.0, set-blocking@~2.0.0: +set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= @@ -6036,6 +5300,13 @@ sha.js@^2.4.0, sha.js@^2.4.8: inherits "^2.0.1" safe-buffer "^5.0.1" +shallow-clone@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" + integrity sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA== + dependencies: + kind-of "^6.0.2" + shebang-command@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" @@ -6060,20 +5331,24 @@ shebang-regex@^3.0.0: resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shellwords@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" - integrity sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww== +side-channel@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== + dependencies: + call-bind "^1.0.0" + get-intrinsic "^1.0.2" + object-inspect "^1.9.0" -signal-exit@^3.0.0, signal-exit@^3.0.2: +signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== simple-concat@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.0.tgz#7344cbb8b6e26fb27d66b2fc86f9f6d5997521c6" - integrity sha1-c0TLuLbib7J9ZrL8hvn21Zl1IcY= + version "1.0.1" + resolved "https://registry.yarnpkg.com/simple-concat/-/simple-concat-1.0.1.tgz#f46976082ba35c2263f1c8ab5edfe26c41c9552f" + integrity sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q== simple-get@^3.0.3: version "3.1.0" @@ -6084,7 +5359,7 @@ simple-get@^3.0.3: once "^1.3.1" simple-concat "^1.0.0" -sisteransi@^1.0.4: +sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== @@ -6099,14 +5374,14 @@ slash@^3.0.0: resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" snapdragon-node@^2.0.1: version "2.1.1" @@ -6150,17 +5425,17 @@ source-map-resolve@^0.5.0: urix "^0.1.0" source-map-support@^0.5.16, source-map-support@^0.5.6: - version "0.5.16" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.16.tgz#0ae069e7fe3ba7538c64c98515e35339eac5a042" - integrity sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ== + version "0.5.19" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" + integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== dependencies: buffer-from "^1.0.0" source-map "^0.6.0" source-map-url@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" - integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + version "0.4.1" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" + integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== source-map@^0.5.0, source-map@^0.5.6: version "0.5.7" @@ -6178,30 +5453,30 @@ source-map@^0.7.3: integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== spdx-correct@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" - integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + version "3.1.1" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" + integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz#2ea450aee74f2a89bfb94519c07fcd6f41322977" - integrity sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" - integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.5" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" - integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + version "3.0.10" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.10.tgz#0d9becccde7003d6c658d487dd48a32f0bf3014b" + integrity sha512-oie3/+gKf7QtpitB0LYLETe+k8SifzsX4KixvpOsbI6S0kRiRQ5MKOio8eMSAKQ17N06+wdEOXRiId+zOxo0hA== split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -6215,30 +5490,10 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stack-utils@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" - integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== - -stack-utils@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.2.tgz#5cf48b4557becb4638d0bc4f21d23f5d19586593" - integrity sha512-0H7QK2ECz3fyZMzQ8rH0j2ykpfbnd20BFtfg/SqVC2+sCTtcw0aDTGB7dk+de4U4uUeuz6nOtJcrkFFLG1B0Rg== +stack-utils@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.3.tgz#cd5f030126ff116b78ccb3c027fe302713b61277" + integrity sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw== dependencies: escape-string-regexp "^2.0.0" @@ -6250,15 +5505,10 @@ static-extend@^0.1.1: define-property "^0.2.5" object-copy "^0.1.0" -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - string-length@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.1.tgz#4a973bf31ef77c4edbceadd6af2611996985f8a1" - integrity sha512-PKyXUd0LK0ePjSOnWn34V2uD6acUWev9uy0Ft05k0E8xRW+SKcA0F7eMr7h5xlzfn+4O3N+55rduYyet3Jk+jw== + version "4.0.2" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-4.0.2.tgz#a8a8dc7bd5c1a82b9b3c8b87e125f66871b6e57a" + integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== dependencies: char-regex "^1.0.2" strip-ansi "^6.0.0" @@ -6280,57 +5530,30 @@ string-width@^1.0.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0, string-width@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - string-width@^4.1.0, string-width@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" - integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + version "4.2.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" + integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.0" -string.prototype.trimend@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" - integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - -string.prototype.trimleft@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" - integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimstart "^1.0.0" - -string.prototype.trimright@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" - integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== +string.prototype.trimend@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" + integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" - string.prototype.trimend "^1.0.0" -string.prototype.trimstart@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" - integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== +string.prototype.trimstart@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" + integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== dependencies: + call-bind "^1.0.2" define-properties "^1.1.3" - es-abstract "^1.17.5" string_decoder@^1.1.1: version "1.3.0" @@ -6360,13 +5583,6 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-ansi@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" @@ -6394,7 +5610,7 @@ strip-final-newline@^2.0.0: resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^3.1.0: +strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -6411,59 +5627,61 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: - has-flag "^3.0.0" + has-flag "^4.0.0" -supports-color@^7.0.0, supports-color@^7.1.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" - integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== +supports-color@^8.0.0: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-hyperlinks@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" - integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + version "2.2.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb" + integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ== dependencies: has-flag "^4.0.0" supports-color "^7.0.0" -symbol-tree@^3.2.2, symbol-tree@^3.2.4: +symbol-tree@^3.2.4: version "3.2.4" resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== +table@^6.0.9: + version "6.7.1" + resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2" + integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg== dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" + ajv "^8.0.1" + lodash.clonedeep "^4.5.0" + lodash.truncate "^4.4.2" + slice-ansi "^4.0.0" + string-width "^4.2.0" + strip-ansi "^6.0.0" tar-fs@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.0.1.tgz#e44086c1c60d31a4f0cf893b1c4e155dabfae9e2" - integrity sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA== + version "2.1.1" + resolved "https://registry.yarnpkg.com/tar-fs/-/tar-fs-2.1.1.tgz#489a15ab85f1f0befabb370b7de4f9eb5cbe8784" + integrity sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng== dependencies: chownr "^1.1.1" mkdirp-classic "^0.5.2" pump "^3.0.0" - tar-stream "^2.0.0" + tar-stream "^2.1.4" -tar-stream@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.1.2.tgz#6d5ef1a7e5783a95ff70b69b97455a5968dc1325" - integrity sha512-UaF6FoJ32WqALZGOIAApXx+OdxhekNMChu6axLJR85zMMjXKWFGjbIRe+J6P4UnRGg9rAwWvbTT0oI7hD/Un7Q== +tar-stream@^2.1.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-2.2.0.tgz#acad84c284136b060dc3faa64474aa9aebd77287" + integrity sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ== dependencies: - bl "^4.0.1" + bl "^4.0.3" end-of-stream "^1.4.1" fs-constants "^1.0.0" inherits "^2.0.3" @@ -6477,16 +5695,6 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -test-exclude@^5.2.3: - version "5.2.3" - resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-5.2.3.tgz#c3d3e1e311eb7ee405e092dac10aefd09091eac0" - integrity sha512-M+oxtseCFO3EDtAaGH7iiej3CBkzXqFMbzqYAACdzKui4eZA+pq3tZEwChvOdNfa7xxy8BfbmgJSIr43cC/+2g== - dependencies: - glob "^7.1.3" - minimatch "^3.0.4" - read-pkg-up "^4.0.0" - require-main-filename "^2.0.0" - test-exclude@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" @@ -6501,20 +5709,15 @@ text-table@^0.2.0: resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= -throat@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-4.1.0.tgz#89037cbc92c56ab18926e6ba4cbb200e15672a6a" - integrity sha1-iQN8vJLFarGJJua6TLsgDhVnKmo= - -throat@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/throat/-/throat-5.0.0.tgz#c5199235803aad18754a667d659b5e72ce16764b" - integrity sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA== +throat@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375" + integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w== tiny-secp256k1@^1.1.3: - version "1.1.4" - resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.4.tgz#772a7711baaa9e2bffa92708cafadc9d372907a3" - integrity sha512-O7NfGzBdBy/jamehZ1ptutZsh2c+9pq2Pu+KPv75+yzk5/Q/6lppQGMUJucHdRGdkeBcAUeLAOdJInEAZgZ53A== + version "1.1.6" + resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz#7e224d2bee8ab8283f284e40e6b4acb74ffe047c" + integrity sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA== dependencies: bindings "^1.3.0" bn.js "^4.11.8" @@ -6564,41 +5767,26 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" -tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tough-cookie@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-3.0.1.tgz#9df4f57e739c26930a018184887f4adb7dca73b2" - integrity sha512-yQyJ0u4pZsv9D4clxO69OEjLWYw+jbgspjTue4lTQZLfV0c5l1VmK2y1JK8E9ahdpltPOaAThPcp5nKPUgSnsg== +tough-cookie@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" + integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg== dependencies: - ip-regex "^2.1.0" - psl "^1.1.28" + psl "^1.1.33" punycode "^2.1.1" + universalify "^0.1.2" -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -tr46@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.0.2.tgz#03273586def1595ae08fedb38d7733cee91d2479" - integrity sha512-3n1qG+/5kg+jrbTzwAykB5yRYtQCTqOGKq5U5PE3b0a1/mzo6snDhjGS0zJVJunO0NrT3Dg1MLy5TjWP/UJppg== +tr46@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-2.1.0.tgz#fa87aa81ca5d5941da8cbf1f9b749dc969a4e240" + integrity sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw== dependencies: punycode "^2.1.1" -tsconfig-paths@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz#098547a6c4448807e8fcb8eae081064ee9a3c90b" - integrity sha512-dRcuzokWhajtZWkQsDVKbWyY+jgcLC5sqJhg2PSgf4ZkH2aHPvaOY8YWGhmjb68b5qqTfasSsDO9k7RUiEmZAw== +tsconfig-paths@^3.11.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.11.0.tgz#954c1fe973da6339c78e06b03ce2e48810b65f36" + integrity sha512-7ecdYDnIdmv639mmDwslG6KQg1Z9STTz1j7Gcz0xa+nshh/gKDAHcPxRbWOsA3SPp0tXP2leTcY9Kw+NAkfZzA== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.1" @@ -6606,9 +5794,9 @@ tsconfig-paths@^3.9.0: strip-bom "^3.0.0" tslib@^1.9.0: - version "1.11.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" - integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + version "1.14.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tunnel-agent@^0.6.0: version "0.6.0" @@ -6617,11 +5805,6 @@ tunnel-agent@^0.6.0: dependencies: safe-buffer "^5.0.1" -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" @@ -6636,25 +5819,20 @@ type-check@~0.3.2: dependencies: prelude-ls "~1.1.2" -type-detect@4.0.8: +type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.5: version "4.0.8" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" - integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== - -type-fest@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" - integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== +type-fest@^0.20.2: + version "0.20.2" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== +type-fest@^0.21.3: + version "0.21.3" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== typedarray-to-buffer@^3.1.5: version "3.1.5" @@ -6668,6 +5846,16 @@ typeforce@^1.11.5: resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== +unbox-primitive@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" + integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== + dependencies: + function-bind "^1.1.1" + has-bigints "^1.0.1" + has-symbols "^1.0.2" + which-boxed-primitive "^1.0.2" + unicode-canonical-property-names-ecmascript@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" @@ -6701,6 +5889,11 @@ union-value@^1.0.0: is-extendable "^0.1.1" set-value "^2.0.1" +universalify@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + unset-value@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" @@ -6715,9 +5908,9 @@ upath@^1.1.1: integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== uri-js@^4.2.2: - version "4.2.2" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" - integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + version "4.4.1" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" @@ -6726,13 +5919,13 @@ urix@^0.1.0: resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= -usb@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/usb/-/usb-1.6.3.tgz#c0bc14994e8f9cb16f9602ec0dbadaa57cb919f5" - integrity sha512-23KYMjaWydACd8wgGKMQ4MNwFspAT6Xeim4/9Onqe5Rz/nMb4TM/WHL+qPT0KNFxzNKzAs63n1xQWGEtgaQ2uw== +usb@^1.7.0: + version "1.7.2" + resolved "https://registry.yarnpkg.com/usb/-/usb-1.7.2.tgz#9b2072b400f3fa311079a41cbb4459323cbd5ab0" + integrity sha512-SfVSItgsD9+YfEpcK1UZ8tQ7e8GdxQ0xoQtB773omNBKTVj3IuFJNKjwSnpE58FGcV4tUoKLHmBMc018RUY5SA== dependencies: bindings "^1.4.0" - nan "2.13.2" + node-addon-api "3.0.2" prebuild-install "^5.3.3" use@^3.1.0: @@ -6745,44 +5938,24 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= -util.promisify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -uuid@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-7.0.3.tgz#c5c9f2c8cf25dc0a372c4df1441c41f5bd0c680b" - integrity sha512-DPSke0pXhTZgoF/d+WSt2QaKMCFSfx7QegxEWT+JOuHF5aWrKEn0G+ztjuJg/gG8/ItK+rbPCD/yNv8yyih6Cg== - v8-compile-cache@^2.0.3: - version "2.1.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" - integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + version "2.3.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee" + integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA== -v8-to-istanbul@^4.1.3: - version "4.1.4" - resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-4.1.4.tgz#b97936f21c0e2d9996d4985e5c5156e9d4e49cd6" - integrity sha512-Rw6vJHj1mbdK8edjR7+zuJrpDtKIgNdAvTSAcpYfgMIw+u2dPDntD3dgN4XQFLU2/fvFQdzj+EeSGfd/jnY5fQ== +v8-to-istanbul@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-8.0.0.tgz#4229f2a99e367f3f018fa1d5c2b8ec684667c69c" + integrity sha512-LkmXi8UUNxnCC+JlH7/fsfsKr5AU110l+SYGJimWNkWhxbN5EyeOtm1MJ0hhvqMMOhGwBj1Fp70Yv9i+hX0QAg== dependencies: "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^1.6.0" source-map "^0.7.3" v8flags@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.1.3.tgz#fc9dc23521ca20c5433f81cc4eb9b3033bb105d8" - integrity sha512-amh9CCg3ZxkzQ48Mhcb8iX7xpAfYJgePHxWMQCBWECpOSqJUXgY26ncA61UTV0BkPqfhcy6mzwCIoP4ygxpW8w== + version "3.2.0" + resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-3.2.0.tgz#b243e3b4dfd731fa774e7492128109a0fe66d656" + integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== dependencies: homedir-polyfill "^1.0.1" @@ -6794,16 +5967,7 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -w3c-hr-time@^1.0.1, w3c-hr-time@^1.0.2: +w3c-hr-time@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== @@ -6824,11 +5988,6 @@ walker@^1.0.7, walker@~1.0.5: dependencies: makeerror "1.0.x" -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - webidl-conversions@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-5.0.0.tgz#ae59c8a00b121543a2acc65c0434f57b0fc11aff" @@ -6839,49 +5998,37 @@ webidl-conversions@^6.1.0: resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-6.1.0.tgz#9111b4d7ea80acd40f5270d666621afa78b69514" integrity sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w== -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3, whatwg-encoding@^1.0.5: +whatwg-encoding@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== dependencies: iconv-lite "0.4.24" -whatwg-mimetype@^2.1.0, whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: +whatwg-mimetype@^2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== -whatwg-url@^6.4.1: - version "6.5.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-6.5.0.tgz#f2df02bff176fd65070df74ad5ccbb5a199965a8" - integrity sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== +whatwg-url@^8.0.0, whatwg-url@^8.5.0: + version "8.7.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.7.0.tgz#656a78e510ff8f3937bc0bcbe9f5c0ac35941b77" + integrity sha512-gAojqb/m9Q8a5IV96E3fHJM70AzCkgt4uXYX2O7EmuyOnLrViCQlsEBmF9UQIu3/aeAIp2U17rtbpZWNntQqdg== dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" + lodash "^4.7.0" + tr46 "^2.1.0" + webidl-conversions "^6.1.0" -whatwg-url@^8.0.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-8.1.0.tgz#c628acdcf45b82274ce7281ee31dd3c839791771" - integrity sha512-vEIkwNi9Hqt4TV9RdnaBPNt+E2Sgmo3gePebCRgZ1R7g6d23+53zCTnuB0amKI4AXq6VM8jj2DUAa0S1vjJxkw== +which-boxed-primitive@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: - lodash.sortby "^4.7.0" - tr46 "^2.0.2" - webidl-conversions "^5.0.0" - -which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + is-bigint "^1.0.1" + is-boolean-object "^1.1.0" + is-number-object "^1.0.4" + is-string "^1.0.5" + is-symbol "^1.0.3" which-pm-runs@^1.0.0: version "1.0.0" @@ -6895,7 +6042,7 @@ which@^1.2.9: dependencies: isexe "^2.0.0" -which@^2.0.1, which@^2.0.2: +which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== @@ -6921,19 +6068,10 @@ word-wrap@^1.2.3, word-wrap@~1.2.3: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== -wrap-ansi@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" - integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== - dependencies: - ansi-styles "^3.2.0" - string-width "^3.0.0" - strip-ansi "^5.0.0" - -wrap-ansi@^6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" - integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" @@ -6944,15 +6082,6 @@ wrappy@1: resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= -write-file-atomic@2.4.1: - version "2.4.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.1.tgz#d0b05463c188ae804396fd5ab2a370062af87529" - integrity sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg== - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - signal-exit "^3.0.2" - write-file-atomic@^3.0.0: version "3.0.3" resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" @@ -6963,24 +6092,10 @@ write-file-atomic@^3.0.0: signal-exit "^3.0.2" typedarray-to-buffer "^3.1.5" -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - -ws@^5.2.0: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - -ws@^7.2.3: - version "7.3.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-7.3.1.tgz#d0547bf67f7ce4f12a72dfe31262c68d7dc551c8" - integrity sha512-D3RuNkynyHmEJIpD2qrgVkc9DQ23OrN/moAwZX4L8DfvszsJxpjQuUq3LMx6HoYji9fbIOBY18XWBsAux1ZZUA== +ws@^7.4.6: + version "7.5.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.4.tgz#56bfa20b167427e138a7795de68d134fe92e21f9" + integrity sha512-zP9z6GXm6zC27YtspwH99T3qTG7bBFv2VIkeHstMLrLlDJuzA7tQ5ls3OJ1hOGGCzTQPniNJoHXIAOS0Jljohg== xml-name-validator@^3.0.0: version "3.0.0" @@ -6992,56 +6107,30 @@ xmlchars@^2.2.0: resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -y18n@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" - integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== - -yargs-parser@^13.1.2: - version "13.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" - integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^18.1.1: - version "18.1.2" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.2.tgz#2f482bea2136dbde0861683abea7756d30b504f1" - integrity sha512-hlIPNR3IzC1YuL1c2UwwDKpXlNFBqD1Fswwh1khz5+d8Cq/8yc/Mn0i+rQXduu8hcrFKvO7Eryk+09NecTQAAQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yargs@^13.3.0: - version "13.3.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" - integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== - dependencies: - cliui "^5.0.0" - find-up "^3.0.0" - get-caller-file "^2.0.1" - require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" - string-width "^3.0.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^13.1.2" - -yargs@^15.3.1: - version "15.3.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.3.1.tgz#9505b472763963e54afe60148ad27a330818e98b" - integrity sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA== - dependencies: - cliui "^6.0.0" - decamelize "^1.2.0" - find-up "^4.1.0" - get-caller-file "^2.0.1" +yallist@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs@^16.0.3: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" require-directory "^2.1.1" - require-main-filename "^2.0.0" - set-blocking "^2.0.0" string-width "^4.2.0" - which-module "^2.0.0" - y18n "^4.0.0" - yargs-parser "^18.1.1" + y18n "^5.0.5" + yargs-parser "^20.2.2" diff --git a/tests_zemu/tests/transactions.spec.js b/tests_zemu/tests/transactions.spec.js index 033fb0b1..27e44fe4 100644 --- a/tests_zemu/tests/transactions.spec.js +++ b/tests_zemu/tests/transactions.spec.js @@ -55,10 +55,11 @@ function getArgumentsPageCount(args) { return args.reduce((count, arg) => count + getArgumentPageCount(arg), 0); } -function getTransactionBasePageCount(tx) { +function getTransactionPageCount(tx) { return ( CHAIN_ID_PAGE_COUNT + REF_BLOCK_PAGE_COUNT + + getArgumentsPageCount(tx.arguments) + GAS_LIMIT_PAGE_COUNT + PROP_KEY_ADDRESS_PAGE_COUNT + PROP_KEY_ID_PAGE_COUNT + @@ -69,10 +70,6 @@ function getTransactionBasePageCount(tx) { ); } -function getTransactionPageCount(tx) { - return getTransactionBasePageCount(tx) + getArgumentsPageCount(tx.arguments); -} - function getKeyPath(sigAlgo, hashAlgo) { const scheme = sigAlgo | hashAlgo; const path = `m/44'/539'/${scheme}'/0/0`; From dc713161737ffe4fabd198159f460e3d580570bc Mon Sep 17 00:00:00 2001 From: Robert Lukotka Date: Mon, 6 Sep 2021 20:38:55 +0200 Subject: [PATCH 04/10] Get pub key changes --- .circleci/config.yml | 7 ++ app/src/addr.c | 28 ++++-- app/src/apdu_handler.c | 44 ++++++++- js/src/common.js | 1 + js/src/index.js | 42 +++++---- js/test/transactions.spec.js | 6 +- ...asic-checks-show-address-expert-1-snap.png | Bin 1055 -> 633 bytes ...sic-checks-show-address-expert-10-snap.png | Bin 0 -> 480 bytes ...asic-checks-show-address-expert-2-snap.png | Bin 1080 -> 1077 bytes ...asic-checks-show-address-expert-3-snap.png | Bin 1069 -> 1080 bytes ...asic-checks-show-address-expert-4-snap.png | Bin 963 -> 1069 bytes ...asic-checks-show-address-expert-5-snap.png | Bin 625 -> 963 bytes ...asic-checks-show-address-expert-6-snap.png | Bin 443 -> 883 bytes ...asic-checks-show-address-expert-7-snap.png | Bin 480 -> 688 bytes ...asic-checks-show-address-expert-8-snap.png | Bin 0 -> 625 bytes ...asic-checks-show-address-expert-9-snap.png | Bin 0 -> 443 bytes ...hecks-show-address-secp-256-k-1-1-snap.png | Bin 1055 -> 633 bytes ...hecks-show-address-secp-256-k-1-2-snap.png | Bin 1080 -> 1077 bytes ...hecks-show-address-secp-256-k-1-3-snap.png | Bin 1069 -> 1080 bytes ...hecks-show-address-secp-256-k-1-4-snap.png | Bin 963 -> 1069 bytes ...hecks-show-address-secp-256-k-1-5-snap.png | Bin 443 -> 963 bytes ...hecks-show-address-secp-256-k-1-6-snap.png | Bin 480 -> 883 bytes ...hecks-show-address-secp-256-k-1-7-snap.png | Bin 0 -> 688 bytes ...hecks-show-address-secp-256-k-1-8-snap.png | Bin 0 -> 443 bytes ...hecks-show-address-secp-256-k-1-9-snap.png | Bin 0 -> 480 bytes ...hecks-show-address-secp-256-r-1-1-snap.png | Bin 1038 -> 633 bytes ...hecks-show-address-secp-256-r-1-2-snap.png | Bin 1103 -> 1060 bytes ...hecks-show-address-secp-256-r-1-3-snap.png | Bin 1060 -> 1103 bytes ...hecks-show-address-secp-256-r-1-4-snap.png | Bin 965 -> 1060 bytes ...hecks-show-address-secp-256-r-1-5-snap.png | Bin 443 -> 965 bytes ...hecks-show-address-secp-256-r-1-6-snap.png | Bin 480 -> 883 bytes ...hecks-show-address-secp-256-r-1-7-snap.png | Bin 0 -> 688 bytes ...hecks-show-address-secp-256-r-1-8-snap.png | Bin 0 -> 443 bytes ...hecks-show-address-secp-256-r-1-9-snap.png | Bin 0 -> 480 bytes tests_zemu/tests/basic.spec.js | 88 +++++++++++++----- tests_zemu/tests/setup.js | 12 +++ tests_zemu/tests/transactions.spec.js | 6 +- 37 files changed, 176 insertions(+), 58 deletions(-) create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-10-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-8-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-9-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-7-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-8-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-9-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-7-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-8-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-9-snap.png diff --git a/.circleci/config.yml b/.circleci/config.yml index 4c713fef..d4753581 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -74,6 +74,13 @@ jobs: command: | nvm use 14.4.0 make zemu_install + cd js + yarn link + yarn build + cd .. + cd zemu_build + yarn link @onflow/ledger + cd .. - run: name: Run zemu tests command: | diff --git a/app/src/addr.c b/app/src/addr.c index 5bdfb4c5..5b2ce788 100644 --- a/app/src/addr.c +++ b/app/src/addr.c @@ -15,18 +15,21 @@ ********************************************************************************/ #include +#include #include "coin.h" #include "zxerror.h" #include "zxmacros.h" #include "app_mode.h" #include "crypto.h" +#include "account.h" zxerr_t addr_getNumItems(uint8_t *num_items) { zemu_log_stack("addr_getNumItems"); - *num_items = 1; - if (app_mode_expert()) { - *num_items = 2; - } + if (app_mode_expert()) { + *num_items = 4; + return zxerr_ok; + } + *num_items = 3; return zxerr_ok; } @@ -36,11 +39,22 @@ zxerr_t addr_getItem(int8_t displayIdx, uint8_t pageIdx, uint8_t *pageCount) { zemu_log_stack("addr_getItem"); switch (displayIdx) { - case 0: - snprintf(outKey, outKeyLen, "Pub Key"); - pageString(outVal, outValLen, (char *) (G_io_apdu_buffer + VIEW_ADDRESS_OFFSET_SECP256K1), pageIdx, pageCount); + case 0: { + snprintf(outKey, outKeyLen, "Account"); + array_to_hexstr(outVal, outValLen, G_io_apdu_buffer, sizeof(flow_account_t)); return zxerr_ok; + } case 1: { + snprintf(outKey, outKeyLen, "Pub Key"); + pageString(outVal, outValLen, (char *) (G_io_apdu_buffer + sizeof(flow_account_t) + VIEW_ADDRESS_OFFSET_SECP256K1), pageIdx, pageCount); + return zxerr_ok; + } + case 2: { + snprintf(outKey, outKeyLen, "Warning"); + pageString(outVal, outValLen, "Ledger does not verify if acoount and pub key match!!!", pageIdx, pageCount); + return zxerr_ok; + } + case 3: { if (!app_mode_expert()) { return zxerr_no_data; } diff --git a/app/src/apdu_handler.c b/app/src/apdu_handler.c index c1d94e6d..a4a2e2a4 100644 --- a/app/src/apdu_handler.c +++ b/app/src/apdu_handler.c @@ -31,12 +31,51 @@ #include "zxmacros.h" __Z_INLINE void handleGetPubkey(volatile uint32_t *flags, volatile uint32_t *tx, uint32_t rx) { - extractHDPath(rx, OFFSET_DATA); + if (rx != 6) { + THROW(APDU_CODE_DATA_INVALID); + } uint8_t requireConfirmation = G_io_apdu_buffer[OFFSET_P1]; + const uint8_t slotIdx = G_io_apdu_buffer[OFFSET_DATA]; + + char buffer[20]; + snprintf(buffer, sizeof(buffer), "%d", slotIdx); + zemu_log_stack(buffer); + + account_slot_t slot; + zxerr_t err = slot_getSlot(slotIdx,(uint8_t *) &slot, sizeof(slot)); + snprintf(buffer, sizeof(buffer), "err: %d", err); + zemu_log_stack(buffer); + + if (err == zxerr_no_data) { + zemu_log_stack("Empty slot"); + THROW(APDU_CODE_DATA_INVALID); + } + + if (err != zxerr_ok) { + THROW(APDU_CODE_EXECUTION_ERROR); + } + + //We want to reuse extractHDPath, as it works on G_io_apdu_buffer we have to follow + MEMCPY(G_io_apdu_buffer, &slot.path, sizeof(slot.path)); + rx = sizeof(slot.path); + extractHDPath(rx, 0); //this puts hdPath into hdPath global variable + *tx = app_fill_address(); //Computes pubkey, the new pubkey is in G_io_apdu_buffer + + //We shift G_io_apdu_buffer to make space for account + if (*tx + sizeof(slot.account) > IO_APDU_BUFFER_SIZE) { + THROW(APDU_CODE_UNKNOWN); //this should not happen + } + MEMMOVE(G_io_apdu_buffer + sizeof(slot.account), G_io_apdu_buffer, *tx); //buffers overlap, we have to use MEMMOVE + *tx += sizeof(slot.account); + + //we fill the account + MEMCPY(G_io_apdu_buffer, &slot.account, sizeof(slot.account)); + //Display or return the buffer if (requireConfirmation) { - app_fill_address(); + //we set the returning length for app_reply_address + action_addr_len = *tx; view_review_init(addr_getItem, addr_getNumItems, app_reply_address); view_review_show(); @@ -45,7 +84,6 @@ __Z_INLINE void handleGetPubkey(volatile uint32_t *flags, volatile uint32_t *tx, return; } - *tx = app_fill_address(); THROW(APDU_CODE_OK); } diff --git a/js/src/common.js b/js/src/common.js index 97e3b39c..85f5baf8 100644 --- a/js/src/common.js +++ b/js/src/common.js @@ -27,6 +27,7 @@ export const ERROR_CODE = { }; export const PKLEN = 65; +export const ADDRLEN = 8; const ERROR_DESCRIPTION = { 1: "U2F: Unknown", diff --git a/js/src/index.js b/js/src/index.js index 9da8cc6d..f51c0035 100644 --- a/js/src/index.js +++ b/js/src/index.js @@ -26,6 +26,7 @@ import { P1_VALUES, PKLEN, processErrorResponse, + ADDRLEN, } from "./common"; function processGetAddrResponse(response) { @@ -34,9 +35,9 @@ function processGetAddrResponse(response) { const errorCodeData = partialResponse.slice(-2); const returnCode = errorCodeData[0] * 256 + errorCodeData[1]; - const publicKey = Buffer.from(partialResponse.slice(0, PKLEN)); - partialResponse = partialResponse.slice(PKLEN); - const address = Buffer.from(partialResponse.slice(0, -2)).toString(); + const address = Buffer.from(partialResponse.slice(0, ADDRLEN)).toString("hex"); + partialResponse = partialResponse.slice(ADDRLEN); + const publicKey = Buffer.from(partialResponse.slice(0, PKLEN)).toString("hex"); return { publicKey, @@ -154,20 +155,30 @@ export default class FlowApp { }, processErrorResponse); } - async getAddressAndPubKey(path) { - const serializedPath = serializePathv1(path); - console.log(serializedPath); + async getAddressAndPubKey(slotIdx) { + if (isNaN(slotIdx) || slotIdx < 0 || slotIdx > 63) { + return { + returnCode: 0, + errorMessage: "slotIdx should be a number between 0 and 63 inclusively", + }; + } + - return this.transport - .send(CLA, INS.GET_PUBKEY, P1_VALUES.ONLY_RETRIEVE, 0, serializedPath, [0x9000]) + const payload = Buffer.from([slotIdx]); + return this.transport.send(CLA, INS.GET_PUBKEY, P1_VALUES.ONLY_RETRIEVE, 0, payload, [0x9000]) .then(processGetAddrResponse, processErrorResponse); } - async showAddressAndPubKey(path) { - const serializedPath = serializePathv1(path); + async showAddressAndPubKey(slotIdx) { + if (isNaN(slotIdx) || slotIdx < 0 || slotIdx > 63) { + return { + returnCode: 0, + errorMessage: "slotIdx should be a number between 0 and 63 inclusively", + }; + } - return this.transport - .send(CLA, INS.GET_PUBKEY, P1_VALUES.SHOW_ADDRESS_IN_DEVICE, 0, serializedPath, [0x9000]) + const payload = Buffer.from([slotIdx]); + return this.transport.send(CLA, INS.GET_PUBKEY, P1_VALUES.SHOW_ADDRESS_IN_DEVICE, 0, payload, [0x9000]) .then(processGetAddrResponse, processErrorResponse); } @@ -227,8 +238,6 @@ export default class FlowApp { const payload = Buffer.from([slotIdx]); return this.transport.send(CLA, INS.GET_SLOT, 0, 0, payload).then((response) => { - console.log(response); - const errorCodeData = response.slice(-2); const returnCode = errorCodeData[0] * 256 + errorCodeData[1]; @@ -263,12 +272,7 @@ export default class FlowApp { }; } - console.log(serializedSlotIdx) - console.log(serializedAccount) - console.log(serializedPath) - const payload = Buffer.concat([ serializedSlotIdx, serializedAccount, serializedPath]); - console.log(payload) return this.transport.send(CLA, INS.SET_SLOT, 0, 0, payload).then((response) => { const errorCodeData = response.slice(-2); diff --git a/js/test/transactions.spec.js b/js/test/transactions.spec.js index 236e8eed..75172703 100644 --- a/js/test/transactions.spec.js +++ b/js/test/transactions.spec.js @@ -157,8 +157,10 @@ describe("Show address", () => { test("Test", async () => { const transport = await TransportNodeHid.create(); const app = new FlowApp(transport); - const res = await app.showAddressAndPubKey("m/44\'/539\'/512\'/0/0") - console.log(res) + const res1 = await app.setSlot(0, "0123456789ABCDEF", "m/44\'/539\'/512\'/0/0") + console.log(res1) + const res2 = await app.showAddressAndPubKey(0) + console.log(res2) }) }) diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-1-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-1-snap.png index 526911cf8d6ac8b102880f5c0a153752fb95b580..a906325c9d7f56c8e74efbddc2232674afe2ec9d 100644 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfciIx;TbZFupw)nRh2Z#QC7J zMoF!r8eRx8oRNI*hhcpv~%_cG@ba=fFD-};q$#8hqKX?BZ&i*xw zGn?5`_@pLC@}9Wk0#wz^17z4rN=^8g`+TN~oD;KAH&7%d?@GfNdF%ca4?l78p7@jd zT<~O1+i6~@36+`8Cz>b}D>yS7ow#6-GGSrj37}ghSZ4f~(&qZ?-HAP}4m;;uJNER7 zncnhkpJk=QW;VCErkU`}yl9Ye?`p%D3=5#m&S{w-s{4%NVWrOt*;4G*GS1{T)iH|S z_&Jmp=w=YQP@rHeH6b#^joE0u$sW&VQ`u7DCQ9-yW}LYchW@W(ocVsk=iromq0B}m zcUs$+LALM#{eS7hx;91U!mdKI;Vst0B!&kUjP6A literal 1055 zcmXAoe@GKy7{_-UO{sgeKdiPha!$(%E4ii?1+AuY!_O zF>++00Ld|UDkqt|LPKLWn{!T)!jXyl#dh1x@n3x_4%}mhgYK>tK12&^hs-1@mwbGP z>l^YYSAG8Y;f9&+@u}gk;T(msYRw57$;gzRwvx=rD4b~X$2X*$7T#OQ*)qDobP#U%nhba`PQRJnu3mM$-oN-e!Hzy!^x5u7PGp%F)4~x|v>R2$|}+ z%38B?I4ED_vsXhtVB>yaK68up)zC$F(j$u#PFaCjEBPMIx*;WLCoI@e87iDq@kcZ^DQm5 zT}8f{zGO0lKqgmD&lkNigy0pI*$Gy>6v8Z3o7ony^hnG7h`$Ms5fVBKA;`)M`Fbnt-|J`gu1i(6c0P8>q=LQvVC7V~23Rld<=mz?RNl_l*>Ai*5pEOtf8zf@`6vhwQJd=88ZRBAIX|;79I^ z1~E(30%QuEVgsP<6!I!oC%6vr*--KR%gG8$rBLymv@og`SCx-##=X$5_CQmr7>Ms_ znCS)V)1AeCtwd5fXl(_ zEWiJ;&+F$i?dkJaK)}rN0*I9y@k2p+*+LGE z@(GVz+C+TQcHKL5_k_>?bEnFuB&lBxGMPDT(a9}9@n5MA^MWQk3f7$E<9#tDs%tV( z%qnV!v}B5$*T;aaW|7?@m!F5toBBxA=yI)2jk*#4Nt2m#d5o-QzRY>Jdt#>MtTSIq znGP8T?Qu!l)jzd-f~AMy-OGorrYw{80P61#yQg~ei~Pw6OfzG-QtYC3Hl6A8@izRc zZnVUqP2|L%yoaGimwQ3d?qTaDft=*;S*TFF6X*&Jqxq3Lq-Rb`s@gww^@%;PUCcA5 zJ#u)aaMZI)Z8OlVZW}+W5>eOGo4)9z0?l1bPJMzlm#N6py9?8L?fl zKwt4Mo$)W{VII(j?I{x+*(5<4<|!HPYJKnU%sb_uSC^Wx6yrlaNWi=ak~y(OMBQk& z2s;p4&%DUNp$xKdive$LVhYfX6)Y{85!{zAh%H zY_Z+Wm37-)Ey`gxmZ^2NtBZ83EgMxi7_anjG0y(j%GOZGKc&WEp$bm>yqCgV-pl2E zzt8vid>?Z9(1B{Sf!|=USdhP_>M*P^xa}`-@cDOfpi?|c;O&tgNOHA_NCiuh1dPj%Fmp* z=dYOIf!*zSEn{;Da?h(bynLwT#%1Vjm}hM9e5IqY!FY z+`l{0fk-kkl->f%BF$xPCzSNb@^Da%2ciDjhj|O5jMmG8jcQ(jKBH%?=u7AhBs`Gj z6|mw3RI)W^Q;CD6MixJf+&_9NW~5@q1x7pA*7b#1zZ{XuRKe3!LP#cr=ARg?PEWb@ zR0M`&!N+L>E_-yGGbdw5-h!7}A0h3$QgMmVK7EJ9e@5=Viv=fs4Z<4}0a!U$7ObEG z&hC9nja>+mRh2%tUO3m^@$jqujz{#K+zv^E?wBM~2{izkqd`iMLZ+F3SYPg2IUI(l zJ*Jp?7v$RtuYC@$B+^`$0mO{vrHz|c6kI_dv{5S>Fnfe4m*qMWFfhKld(nv++Vb(n z*~pMdv?kLEu1V!wcazJB2cW26hb-wk2x+FZk+P%~B0(HH8zSvA+}w413+OFXn=?@PnURWI-nDiFk>5X_DOmr36I=FVb1d?)N0xhm z3J`0DCABkGSBa;OAy39h2OGHNN|R)QG}poe|N3v&%B?l_^e_KU)K8td27d<@zxP1Z J*#7rVJ_ArG&-(xX literal 1080 zcmZWpe@qi+7;e+08q-h1{y=)-Z27T8Lnk?|W=^veN~;}a=%2Qr?^o)M#VSP=0U3U4y zr9018x6QpjF;(B)lx5!iw`23|sQj|F(R1F&zgMk%r@0tu|Dax;329-w$;^mase#=@ z)FR?cKjJJav7w*N+^GGkuq`Z^i5mRY$S=G7YQ)I9Y1#p{LWy*c%03aoAS6N96{ zTVk)+Yh(iNpy&ncUS=z^9M{Wx^PNil-nGQ@ipCdzPFXIP$Xj+x%XG-ZIzI19O!2Z?Q?~9HfHn2@oiq$q6=O+5KD zHN#&L+aa#{g)-=nn6&W$FaP$NPHl=E1gHF%b|K(TWpln zFOv(0S~E{J;UZ$YJp#kb34P~8ILEDoxkYYbFcZXQiE*ECWl*STDk6?Rh;8d3NWs0@pE9m z;1Oo}?f3?BQPEn0qdKw)Y*)hzA1Joheu(XQ_DyWp(%ILA9R;@5*-`u>=sd0?a=%2Qr?^o)M#VSP=0U3U4y zr9018x6QpjF;(B)lx5!iw`23|sQj|F(R1F&zgMk%r@0tu|Dax;329-w$;^mase#=@ z)FR?cKjJJav7w*N+^GGkuq`Z^i5mRY$S=G7YQ)I9Y1#p{LWy*c%03aoAS6N96{ zTVk)+Yh(iNpy&ncUS=z^9M{Wx^PNil-nGQ@ipCdzPFXIP$Xj+x%XG-ZIzI19O!2Z?Q?~9HfHn2@oiq$q6=O+5KD zHN#&L+aa#{g)-=nn6&W$FaP$NPHl=E1gHF%b|K(TWpln zFOv(0S~E{J;UZ$YJp#kb34P~8ILEDoxkYYbFcZXQiE*ECWl*STDk6?Rh;8d3NWs0@pE9m z;1Oo}?f3?BQPEn0qdKw)Y*)hzA1Joheu(XQ_DyWp(%ILA9R;@5*-`u>=sd0?uBgaH!qn(! zWFB+S?J!f;h%d;%dUUh*6Ltx=M5oiS6&uScaS!2ZeviTLWKP3JI-TL4in5ZbefsBjYAaXN8q4l{ z;EN^}t;qUn_)@3F%NS{6^;d-wYIO2Mghb4}#IXh?14BonJlUGyule6p02iUemM zn8Bxyh1915xBoo89pR@-12*%kWe5waG`gKZWD_|dwjS%&M>gErSo;2<-s(LIRqQ%^ zY_Yj+8X%nY2MdMkHyE-$oW?dEnCTRE{QJXYFJmG?;qUrL3qvFmZ^LE}Mx6%!Wt~$S z8;;FAj^^m&=Cm3RkjD%G1P9aC$Eu`GQFJc`XCicr9m^%X)DN}WS)v!ve zKlfFTdvRWG;+BGgkO4XweD$t}9Yyh|os))qD4ihr`jsv@$4Vu11fAOF6cb=LP;M@s zCPSJyVY-h|^YZy4SCynUL}nAfXRBnI6xF4x);3 zGI-E;Y1>#=fG#FUHn94??+?Dd`_ta%N3xzyMssZze)+CsH|?UEnz6^PboKgyr%m3(1MiW+irTbX&T$!dfDRxQTLowrcn&;JuJ~@$ zYA<$EO_f<&@pnl03q$&@&40$H$6;g2Xve1p9%5_8yo4ut)U-43!=-}yZ1}MRjs=x` zVgxei>P{)21Xho+SC$qe(4$1+%Qk;|ur@F8X5y`3uI|4JuA2ST_#4nwxV>e4r8^J* E4}nz7(f|Me diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-4-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-4-snap.png index 70836b82f546904fbd3d20da46c64bace44e0262..2c574d447ec46d9a72e4421800f8d6348087b73c 100644 GIT binary patch literal 1069 zcmXApeM}Q)9LL)uBgaH!qn(! zWFB+S?J!f;h%d;%dUUh*6Ltx=M5oiS6&uScaS!2ZeviTLWKP3JI-TL4in5ZbefsBjYAaXN8q4l{ z;EN^}t;qUn_)@3F%NS{6^;d-wYIO2Mghb4}#IXh?14BonJlUGyule6p02iUemM zn8Bxyh1915xBoo89pR@-12*%kWe5waG`gKZWD_|dwjS%&M>gErSo;2<-s(LIRqQ%^ zY_Yj+8X%nY2MdMkHyE-$oW?dEnCTRE{QJXYFJmG?;qUrL3qvFmZ^LE}Mx6%!Wt~$S z8;;FAj^^m&=Cm3RkjD%G1P9aC$Eu`GQFJc`XCicr9m^%X)DN}WS)v!ve zKlfFTdvRWG;+BGgkO4XweD$t}9Yyh|os))qD4ihr`jsv@$4Vu11fAOF6cb=LP;M@s zCPSJyVY-h|^YZy4SCynUL}nAfXRBnI6xF4x);3 zGI-E;Y1>#=fG#FUHn94??+?Dd`_ta%N3xzyMssZze)+CsH|?UEnz6^PboKgyr%m3(1MiW+irTbX&T$!dfDRxQTLowrcn&;JuJ~@$ zYA<$EO_f<&@pnl03q$&@&40$H$6;g2Xve1p9%5_8yo4ut)U-43!=-}yZ1}MRjs=x` zVgxei>P{)21Xho+SC$qe(4$1+%Qk;|ur@F8X5y`3uI|4JuA2ST_#4nwxV>e4r8^J* E4}nz7(f|Me literal 963 zcmY*YZAepL6y91)6K@uhwi~s%*~brS@_MI8sIyH=Y@@Q=#w=Rg=9Xro5oxU&E$ zni|q&_Jz*AOV|%LSjD&*w;cI}VkYMLv7j;o2{M8@ch!&JeeXT@ob%rEoaa2RXP0(6 zmWHSCcs#6Xhk6gZovL|ZR>eF!Nn?d`QB#!Ty*yy<6xFLy6^ej#f(tt$M~fW zYn!T_yk&7O8u;~%&b25LX1ow(Ta^h7#=2=h}K0Y*gb^65;B815sw zEFrxBWj81jTS&|IvCL=0&(V5EJz^y)#*6!kN1W+MMNuQpSOxA2L+Z)(D&|IYQ71aJ@IzQwWV4G1O5 z$|3In{7h+Ka0bhv1kI#s){{A#oW!)cii) zppY!=Pu(OQPl5?rli>0&m6=HAI_ovb{xJdEh`>LVbQXZppnfJ0{bcDCxA>FCEuQ1{ z>~$`}rE;XnfL|ZR>eF!Nn?d`QB#!Ty*yy<6xFLy6^ej#f(tt$M~fW zYn!T_yk&7O8u;~%&b25LX1ow(Ta^h7#=2=h}K0Y*gb^65;B815sw zEFrxBWj81jTS&|IvCL=0&(V5EJz^y)#*6!kN1W+MMNuQpSOxA2L+Z)(D&|IYQ71aJ@IzQwWV4G1O5 z$|3In{7h+Ka0bhv1kI#s){{A#oW!)cii) zppY!=Pu(OQPl5?rli>0&m6=HAI_ovb{xJdEh`>LVbQXZppnfJ0{bcDCxA>FCEuQ1{ z>~$`}rE;Xnf#u@#G#?2TR#&$6j7A^K0MsF<8p(%7%;xpnFU%I2^v>z|3nd1?1{TwXsQM zEJ(cQaClK8o0J%DciYOwHgi)SUXweQ&-rKk2sqp>HDP8--U%Px6F~cc=uU=1+N7Nq z8+drRXRc(NDGd`xC^&pE%7oqR1vo(}zwvFQ z?DWDmAMTLjj*YM)j5{Q1tfOmWbTsFZaHF%}%f6U^5eTL1bm2fJ|Q&1_RZPs_8 za@_1hiNj2lge%>l>EofKJJc4P#7EGKCeI1`Cr6eD595^IDBLmftnDgoPUk5+nj5_+ z)~OI&bZ%r-w^mA&%II*+lanPS=1@HY9dRh}rE}01a_siv{)4NwTTik{WOw0@*4Lkz zrT(_HP@y)EjTz~2`<{?3wUl!sX&{pLC`%0$;Ra-ubx{ruxIk5|A`JvFl{id<6X2oP zcwOJ$Sk_4iXyY?CMRZms_72dm0-ID2z(hrwskxHn$rebe!`!ogI8aZ4WiwOz$^>tb zV7!t4h&G=>f#EC)L0{ULvx(QqICO~I}IP%7}|C%B$N#T{2 z5J_(rsdO`%zJY7An}eNW?3=xfOjV$qjKP`aV4|e=1i&nU09In2nJJoEHDlL@fqQfa z&W`y@D}osy_U)nv`aEB3J48R8zKe>m>{2|3jJ=JHWsv|4O5k32TJ!+@CQ20t3!x17 z2Eju=vi_eH)jM-G^N&rOdKQq5lal1k|P( obi-=R2#Pyy-L4NExO4q3QvR~|1NudN8h$23pOT*3pxavf2VzHixBvhE delta 418 zcmey&wwrl^ay?^{r;B4q1>@U;7gtGpGB_VxeC*eM{%g%fCW$-x-X7Iythf`aTKC#f z=yuc*{cGn(2*cW@u=~BsQsS`_l_Vd6&1neZS)) zuaw*gA71{HWo#)KGg6kdO+ItQ;AH(ADYcm^ANHMDE*;}|xVeqpNdKhG)q>@TlV*Y> z60<-mJ=uUt=4V!{dbs@H)DsGyr?pL&dUry>`EW4r|CJA~I2^WDcRoCqEv0T(p(?Mu z|Fh&17aDkYPyEUJ@KVap=)@eUxJi|s&opN)PXQS@X=aMuG@!JN@eZz;^^?y8^Xi-K zaZLl-bWh3H^n%0T;}a@f9d_<&^L*xbSY@-VRF1cFj<;~Ywp8A2OX2A54>sQNlzW#N z&YWVq@5CmVl2Orp=KrM+x_N6BJX9&pa(H&7V3MV&4bZFW-W=PW?U0sLv62z!k1Gvl rfKJ_aus8o=!K9timp@EvyZVP|n(tgm6&H751|aZs^>bP0l+XkKnz6>4xY-E15;mj3-6F$5rVqBSx!Y>+}ykKy0PKHBU zn`c_ajFh}pj5E()QSK|bqU?DGsKEKKg0YFh=P6PXeg-ic1v49|OHG(5HDTvYwiG)n zk4L`!AcZ!)ZK5+5CQe$I=$e-0kd_fKai)~ti9I}$QWGl6ANU@gEmxS&dxD4e#2TQz z+D6(SbK)lfjhUI!#+DM-2b9@k`N7SN_k_*dHv5H)GgmUs6b5p9n2p|x-8*^V!<3W> zJGje7Au`h;Z7Ji-)j*>J`QFs6Pn@vRz( z&a&`6JpW38FZb@}7Yp*)^)7BuGB#OrVvWh46%Zc+J()ElrS1wSC{JE!IOD}^qz&|# zi4QQmx_EfOfd*o$6n8RD2ZmQz$}%>PSC_Trp9F^d98fSli{=Hz0uOI9&~-pm;|UJC z89+sjAf;?6ejxcj@j&}OEH_msUi5I8)V!mO-Y0o@>p?-b=ER*jXD)p3;Eq;zKHQ&@ zv4C-Ac;SN}-u+6>ha;ubW=?I(H}x?B@l=Y1dE>JrQYHZ7Xr~$DQ%O^W&mq8oQsv(5 zYrWxj2)G=)&hq;o`@DWWLk)ZP&e1cTf2IKXeQ$k@t-uAIhV)CdgjZVhr1_cYR)?IrIhKAanK%@v|asE%O_ZR7~Z{n=xWL` zX%C?O{;+$hN59CQoWL|QmMg_BYG>1#P9JZ>zv@Oy9NI)q{K5%|O?>ZTzrGL|s#F z`l6ExKrczAOvuzM1G=XX=oO$3C$5Q6Jemq*#CF93{l&j@#=o40c|bq5r%Z5UlLTp) zr)0dV^}WM0@05RDU24Wsj1T!BLGvcaLFU935p|>8BJ4nHJ@X<5hcd{@Ee5=~i77x! lRzmvv4FO#n1{$#u@#G#?2TR#&$6j7A^K0MsF<8p(%7%;xpnFU%I2^v>z|3nd1?1{TwXsQM zEJ(cQaClK8o0J%DciYOwHgi)SUXweQ&-rKk2sqp>HDP8--U%Px6F~cc=uU=1+N7Nq z8+drRXRc(NDGd`xC^&p2fe%lSYt`0Y+ znckRYhK6=bVw2joKfOSdcX`{}_d7oFO39t@;pIUI^X^2+-^OFnU-frt0RpUe+0rTmOe%#n(lRO$IlbLR3C zkdc#Srr1pbO4}Ik;F>x4Ofav$=^ocKphfqTj7={%96mmw($!(-t~SqSj)zq?+e+nl zOXqkC2W(5_-L@2t?*3roEl;_3so~5iw);+Ok|`M#-Dmz^`k?^21W{l Mr>mdKI;Vst03N8v5&!@I literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-1-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-1-snap.png index 526911cf8d6ac8b102880f5c0a153752fb95b580..a906325c9d7f56c8e74efbddc2232674afe2ec9d 100644 GIT binary patch literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfciIx;TbZFupw)nRh2Z#QC7J zMoF!r8eRx8oRNI*hhcpv~%_cG@ba=fFD-};q$#8hqKX?BZ&i*xw zGn?5`_@pLC@}9Wk0#wz^17z4rN=^8g`+TN~oD;KAH&7%d?@GfNdF%ca4?l78p7@jd zT<~O1+i6~@36+`8Cz>b}D>yS7ow#6-GGSrj37}ghSZ4f~(&qZ?-HAP}4m;;uJNER7 zncnhkpJk=QW;VCErkU`}yl9Ye?`p%D3=5#m&S{w-s{4%NVWrOt*;4G*GS1{T)iH|S z_&Jmp=w=YQP@rHeH6b#^joE0u$sW&VQ`u7DCQ9-yW}LYchW@W(ocVsk=iromq0B}m zcUs$+LALM#{eS7hx;91U!mdKI;Vst0B!&kUjP6A literal 1055 zcmXAoe@GKy7{_-UO{sgeKdiPha!$(%E4ii?1+AuY!_O zF>++00Ld|UDkqt|LPKLWn{!T)!jXyl#dh1x@n3x_4%}mhgYK>tK12&^hs-1@mwbGP z>l^YYSAG8Y;f9&+@u}gk;T(msYRw57$;gzRwvx=rD4b~X$2X*$7T#OQ*)qDobP#U%nhba`PQRJnu3mM$-oN-e!Hzy!^x5u7PGp%F)4~x|v>R2$|}+ z%38B?I4ED_vsXhtVB>yaK68up)zC$F(j$u#PFaCjEBPMIx*;WLCoI@e87iDq@kcZ^DQm5 zT}8f{zGO0lKqgmD&lkNigy0pI*$Gy>6v8Z3o7ony^hnG7h`$Ms5fVBKA;`)M`Fbnt-|J`gu1i(6c0P8>q=LQvVC7V~23Rld<=mz?RNl_l*>Ai*5pEOtf8zf@`6vhwQJd=88ZRBAIX|;79I^ z1~E(30%QuEVgsP<6!I!oC%6vr*--KR%gG8$rBLymv@og`SCx-##=X$5_CQmr7>Ms_ znCS)V)1AeCtw zY_Z+Wm37-)Ey`gxmZ^2NtBZ83EgMxi7_anjG0y(j%GOZGKc&WEp$bm>yqCgV-pl2E zzt8vid>?Z9(1B{Sf!|=USdhP_>M*P^xa}`-@cDOfpi?|c;O&tgNOHA_NCiuh1dPj%Fmp* z=dYOIf!*zSEn{;Da?h(bynLwT#%1Vjm}hM9e5IqY!FY z+`l{0fk-kkl->f%BF$xPCzSNb@^Da%2ciDjhj|O5jMmG8jcQ(jKBH%?=u7AhBs`Gj z6|mw3RI)W^Q;CD6MixJf+&_9NW~5@q1x7pA*7b#1zZ{XuRKe3!LP#cr=ARg?PEWb@ zR0M`&!N+L>E_-yGGbdw5-h!7}A0h3$QgMmVK7EJ9e@5=Viv=fs4Z<4}0a!U$7ObEG z&hC9nja>+mRh2%tUO3m^@$jqujz{#K+zv^E?wBM~2{izkqd`iMLZ+F3SYPg2IUI(l zJ*Jp?7v$RtuYC@$B+^`$0mO{vrHz|c6kI_dv{5S>Fnfe4m*qMWFfhKld(nv++Vb(n z*~pMdv?kLEu1V!wcazJB2cW26hb-wk2x+FZk+P%~B0(HH8zSvA+}w413+OFXn=?@PnURWI-nDiFk>5X_DOmr36I=FVb1d?)N0xhm z3J`0DCABkGSBa;OAy39h2OGHNN|R)QG}poe|N3v&%B?l_^e_KU)K8td27d<@zxP1Z J*#7rVJ_ArG&-(xX literal 1080 zcmZWpe@qi+7;e+08q-h1{y=)-Z27T8Lnk?|W=^veN~;}a=%2Qr?^o)M#VSP=0U3U4y zr9018x6QpjF;(B)lx5!iw`23|sQj|F(R1F&zgMk%r@0tu|Dax;329-w$;^mase#=@ z)FR?cKjJJav7w*N+^GGkuq`Z^i5mRY$S=G7YQ)I9Y1#p{LWy*c%03aoAS6N96{ zTVk)+Yh(iNpy&ncUS=z^9M{Wx^PNil-nGQ@ipCdzPFXIP$Xj+x%XG-ZIzI19O!2Z?Q?~9HfHn2@oiq$q6=O+5KD zHN#&L+aa#{g)-=nn6&W$FaP$NPHl=E1gHF%b|K(TWpln zFOv(0S~E{J;UZ$YJp#kb34P~8ILEDoxkYYbFcZXQiE*ECWl*STDk6?Rh;8d3NWs0@pE9m z;1Oo}?f3?BQPEn0qdKw)Y*)hzA1Joheu(XQ_DyWp(%ILA9R;@5*-`u>=sd0?a=%2Qr?^o)M#VSP=0U3U4y zr9018x6QpjF;(B)lx5!iw`23|sQj|F(R1F&zgMk%r@0tu|Dax;329-w$;^mase#=@ z)FR?cKjJJav7w*N+^GGkuq`Z^i5mRY$S=G7YQ)I9Y1#p{LWy*c%03aoAS6N96{ zTVk)+Yh(iNpy&ncUS=z^9M{Wx^PNil-nGQ@ipCdzPFXIP$Xj+x%XG-ZIzI19O!2Z?Q?~9HfHn2@oiq$q6=O+5KD zHN#&L+aa#{g)-=nn6&W$FaP$NPHl=E1gHF%b|K(TWpln zFOv(0S~E{J;UZ$YJp#kb34P~8ILEDoxkYYbFcZXQiE*ECWl*STDk6?Rh;8d3NWs0@pE9m z;1Oo}?f3?BQPEn0qdKw)Y*)hzA1Joheu(XQ_DyWp(%ILA9R;@5*-`u>=sd0?uBgaH!qn(! zWFB+S?J!f;h%d;%dUUh*6Ltx=M5oiS6&uScaS!2ZeviTLWKP3JI-TL4in5ZbefsBjYAaXN8q4l{ z;EN^}t;qUn_)@3F%NS{6^;d-wYIO2Mghb4}#IXh?14BonJlUGyule6p02iUemM zn8Bxyh1915xBoo89pR@-12*%kWe5waG`gKZWD_|dwjS%&M>gErSo;2<-s(LIRqQ%^ zY_Yj+8X%nY2MdMkHyE-$oW?dEnCTRE{QJXYFJmG?;qUrL3qvFmZ^LE}Mx6%!Wt~$S z8;;FAj^^m&=Cm3RkjD%G1P9aC$Eu`GQFJc`XCicr9m^%X)DN}WS)v!ve zKlfFTdvRWG;+BGgkO4XweD$t}9Yyh|os))qD4ihr`jsv@$4Vu11fAOF6cb=LP;M@s zCPSJyVY-h|^YZy4SCynUL}nAfXRBnI6xF4x);3 zGI-E;Y1>#=fG#FUHn94??+?Dd`_ta%N3xzyMssZze)+CsH|?UEnz6^PboKgyr%m3(1MiW+irTbX&T$!dfDRxQTLowrcn&;JuJ~@$ zYA<$EO_f<&@pnl03q$&@&40$H$6;g2Xve1p9%5_8yo4ut)U-43!=-}yZ1}MRjs=x` zVgxei>P{)21Xho+SC$qe(4$1+%Qk;|ur@F8X5y`3uI|4JuA2ST_#4nwxV>e4r8^J* E4}nz7(f|Me diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-4-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-4-snap.png index 70836b82f546904fbd3d20da46c64bace44e0262..2c574d447ec46d9a72e4421800f8d6348087b73c 100644 GIT binary patch literal 1069 zcmXApeM}Q)9LL)uBgaH!qn(! zWFB+S?J!f;h%d;%dUUh*6Ltx=M5oiS6&uScaS!2ZeviTLWKP3JI-TL4in5ZbefsBjYAaXN8q4l{ z;EN^}t;qUn_)@3F%NS{6^;d-wYIO2Mghb4}#IXh?14BonJlUGyule6p02iUemM zn8Bxyh1915xBoo89pR@-12*%kWe5waG`gKZWD_|dwjS%&M>gErSo;2<-s(LIRqQ%^ zY_Yj+8X%nY2MdMkHyE-$oW?dEnCTRE{QJXYFJmG?;qUrL3qvFmZ^LE}Mx6%!Wt~$S z8;;FAj^^m&=Cm3RkjD%G1P9aC$Eu`GQFJc`XCicr9m^%X)DN}WS)v!ve zKlfFTdvRWG;+BGgkO4XweD$t}9Yyh|os))qD4ihr`jsv@$4Vu11fAOF6cb=LP;M@s zCPSJyVY-h|^YZy4SCynUL}nAfXRBnI6xF4x);3 zGI-E;Y1>#=fG#FUHn94??+?Dd`_ta%N3xzyMssZze)+CsH|?UEnz6^PboKgyr%m3(1MiW+irTbX&T$!dfDRxQTLowrcn&;JuJ~@$ zYA<$EO_f<&@pnl03q$&@&40$H$6;g2Xve1p9%5_8yo4ut)U-43!=-}yZ1}MRjs=x` zVgxei>P{)21Xho+SC$qe(4$1+%Qk;|ur@F8X5y`3uI|4JuA2ST_#4nwxV>e4r8^J* E4}nz7(f|Me literal 963 zcmY*YZAepL6y91)6K@uhwi~s%*~brS@_MI8sIyH=Y@@Q=#w=Rg=9Xro5oxU&E$ zni|q&_Jz*AOV|%LSjD&*w;cI}VkYMLv7j;o2{M8@ch!&JeeXT@ob%rEoaa2RXP0(6 zmWHSCcs#6Xhk6gZovL|ZR>eF!Nn?d`QB#!Ty*yy<6xFLy6^ej#f(tt$M~fW zYn!T_yk&7O8u;~%&b25LX1ow(Ta^h7#=2=h}K0Y*gb^65;B815sw zEFrxBWj81jTS&|IvCL=0&(V5EJz^y)#*6!kN1W+MMNuQpSOxA2L+Z)(D&|IYQ71aJ@IzQwWV4G1O5 z$|3In{7h+Ka0bhv1kI#s){{A#oW!)cii) zppY!=Pu(OQPl5?rli>0&m6=HAI_ovb{xJdEh`>LVbQXZppnfJ0{bcDCxA>FCEuQ1{ z>~$`}rE;XnfL|ZR>eF!Nn?d`QB#!Ty*yy<6xFLy6^ej#f(tt$M~fW zYn!T_yk&7O8u;~%&b25LX1ow(Ta^h7#=2=h}K0Y*gb^65;B815sw zEFrxBWj81jTS&|IvCL=0&(V5EJz^y)#*6!kN1W+MMNuQpSOxA2L+Z)(D&|IYQ71aJ@IzQwWV4G1O5 z$|3In{7h+Ka0bhv1kI#s){{A#oW!)cii) zppY!=Pu(OQPl5?rli>0&m6=HAI_ovb{xJdEh`>LVbQXZppnfJ0{bcDCxA>FCEuQ1{ z>~$`}rE;Xnf@U;7gtGpGB_VxeC*eM{%g%fCW$-x-X7Iythf`aTKC#f z=yuc*{cGn(2*cW@u=~BsQsS`_l_Vd6&1neZS)) zuaw*gA71{HWo#)KGg6kdO+ItQ;AH(ADYcm^ANHMDE*;}|xVeqpNdKhG)q>@TlV*Y> z60<-mJ=uUt=4V!{dbs@H)DsGyr?pL&dUry>`EW4r|CJA~I2^WDcRoCqEv0T(p(?Mu z|Fh&17aDkYPyEUJ@KVap=)@eUxJi|s&opN)PXQS@X=aMuG@!JN@eZz;^^?y8^Xi-K zaZLl-bWh3H^n%0T;}a@f9d_<&^L*xbSY@-VRF1cFj<;~Ywp8A2OX2A54>sQNlzW#N z&YWVq@5CmVl2Orp=KrM+x_N6BJX9&pa(H&7V3MV&4bZFW-W=PW?U0sLv62z!k1Gvl rfKJ_aus8o=!K9timp@EvyZVP|n(tgm6&H751|aZs^>bP0l+XkKP4dOb diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-6-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-6-snap.png index d764b119d8ccd0257c70cef19c143e18f8a22d97..a979619c9c4711a8a5c9ef3c5826a81d8d533d92 100644 GIT binary patch literal 883 zcmX|=drZ?n9LKwi43#!UP0)2dh9GJ}6uT1CK=$C}bb=zp7eQ+p*7=x{{oyn)5n^?L zggJarpG*{k5CmrwBT=+UMy#?CMVE%7oqR1vo(}zwvFQ z?DWDmAMTLjj*YM)j5{Q1tfOmWbTsFZaHF%}%f6U^5eTL1bm2fJ|Q&1_RZPs_8 za@_1hiNj2lge%>l>EofKJJc4P#7EGKCeI1`Cr6eD595^IDBLmftnDgoPUk5+nj5_+ z)~OI&bZ%r-w^mA&%II*+lanPS=1@HY9dRh}rE}01a_siv{)4NwTTik{WOw0@*4Lkz zrT(_HP@y)EjTz~2`<{?3wUl!sX&{pLC`%0$;Ra-ubx{ruxIk5|A`JvFl{id<6X2oP zcwOJ$Sk_4iXyY?CMRZms_72dm0-ID2z(hrwskxHn$rebe!`!ogI8aZ4WiwOz$^>tb zV7!t4h&G=>f#EC)L0{ULvx(QqICO~I}IP%7}|C%B$N#T{2 z5J_(rsdO`%zJY7An}eNW?3=xfOjV$qjKP`aV4|e=1i&nU09In2nJJoEHDlL@fqQfa z&W`y@D}osy_U)nv`aEB3J48R8zKe>m>{2|3jJ=JHWsv|4O5k32TJ!+@CQ20t3!x17 z2Eju=vi_eH)jM-G^N&rOdKQq5lal1k|P( obi-=R2#Pyy-L4NExO4q3QvR~|1NudN8h$23pOT*3pxavf2VzHixBvhE delta 455 zcmey&_JDbUay{d6PZ!6K3dXkw1M_Y>2)G=)&hq;o`@DWWLk)ZP&e1cTf2IKXeQ$k@t-uAIhV)CdgjZVhr1_cYR)?IrIhKAanK%@v|asE%O_ZR7~Z{n=xWL` zX%C?O{;+$hN59CQoWL|QmMg_BYG>1#P9JZ>zv@Oy9NI)q{K5%|O?>ZTzrGL|s#F z`l6ExKrczAOvuzM1G=XX=oO$3C$5Q6Jemq*#CF93{l&j@#=o40c|bq5r%Z5UlLTp) zr)0dV^}WM0@05RDU24Wsj1T!BLGvcaLFU935p|>8BJ4nHJ@X<5hcd{@Ee5=~i77x! lRzmvv4FO#rP`$`b$p diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-7-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-7-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..70ded082d23c3e157ed04ccda77ff079ef2c2f26 GIT binary patch literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFff&Sx;TbZFupw)9i;8a;Cyf~ zU-p0QYwhb+N@!*9G)meRmM{C^->>4xY-E15;mj3-6F$5rVqBSx!Y>+}ykKy0PKHBU zn`c_ajFh}pj5E()QSK|bqU?DGsKEKKg0YFh=P6PXeg-ic1v49|OHG(5HDTvYwiG)n zk4L`!AcZ!)ZK5+5CQe$I=$e-0kd_fKai)~ti9I}$QWGl6ANU@gEmxS&dxD4e#2TQz z+D6(SbK)lfjhUI!#+DM-2b9@k`N7SN_k_*dHv5H)GgmUs6b5p9n2p|x-8*^V!<3W> zJGje7Au`h;Z7Ji-)j*>J`QFs6Pn@vRz( z&a&`6JpW38FZb@}7Yp*)^)7BuGB#OrVvWh46%Zc+J()ElrS1wSC{JE!IOD}^qz&|# zi4QQmx_EfOfd*o$6n8RD2ZmQz$}%>PSC_Trp9F^d98fSli{=Hz0uOI9&~-pm;|UJC z89+sjAf;?6ejxcj@j&}OEH_msUi5I8)V!mO-Y0o@>p?-b=ER*jXD)p3;Eq;zKHQ&@ zv4C-Ac;SN}-u+6>ha;ubW=?I(H}x?B@l=Y1dE>JrQYHZ7Xr~$DQ%O^W&mq8oQsv(5 zYrWxj2fe%lSYt`0Y+ znckRYhK6=bVw2joKfOSdcX`{}_d7oFO39t@;pIUI^X^2+-^OFnU-frt0RpUe+0rTmOe%#n(lRO$IlbLR3C zkdc#Srr1pbO4}Ik;F>x4Ofav$=^ocKphfqTj7={%96mmw($!(-t~SqSj)zq?+e+nl zOXqkC2W(5_-L@2t?*3roEl;_3so~5iw);+Ok|`M#-Dmz^`k?^21W{l Mr>mdKI;Vst03N8v5&!@I literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-9-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-9-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..d764b119d8ccd0257c70cef19c143e18f8a22d97 GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCnba4!+V0?QpFz>d5fXl(_ zEWiJ;&+F$i?dkJaK)}rN0*I9y@k2p+*+LGE z@(GVz+C+TQcHKL5_k_>?bEnFuB&lBxGMPDT(a9}9@n5MA^MWQk3f7$E<9#tDs%tV( z%qnV!v}B5$*T;aaW|7?@m!F5toBBxA=yI)2jk*#4Nt2m#d5o-QzRY>Jdt#>MtTSIq znGP8T?Qu!l)jzd-f~AMy-OGorrYw{80P61#yQg~ei~Pw6OfzG-QtYC3Hl6A8@izRc zZnVUqP2|L%yoaGimwQ3d?qTaDft=*;S*TFF6X*&Jqxq3Lq-Rb`s@gww^@%;PUCcA5 zJ#u)aaMZI)Z8OlVZW}+W5>eOGo4)9z0?l1bPJMzlm#N6py9?8L?fl zKwt4Mo$)W{VII(j?I{x+*(5<4<|!HPYJKnU%sb_uSC^Wx6yrlaNWi=ak~y(OMBQk& z2s;p4&%DUNp$xKdive$LVhYfX6)Y{85!{zAh%HMoF!r8eRx8oRNI*hhcpv~%_cG@ba=fFD-};q$#8hqKX?BZ&i*xw zGn?5`_@pLC@}9Wk0#wz^17z4rN=^8g`+TN~oD;KAH&7%d?@GfNdF%ca4?l78p7@jd zT<~O1+i6~@36+`8Cz>b}D>yS7ow#6-GGSrj37}ghSZ4f~(&qZ?-HAP}4m;;uJNER7 zncnhkpJk=QW;VCErkU`}yl9Ye?`p%D3=5#m&S{w-s{4%NVWrOt*;4G*GS1{T)iH|S z_&Jmp=w=YQP@rHeH6b#^joE0u$sW&VQ`u7DCQ9-yW}LYchW@W(ocVsk=iromq0B}m zcUs$+LALM#{eS7hx;91U!mdKI;Vst0B!&kUjP6A literal 1038 zcmX9-e@q*76mN5SZj*y88rFV0*B_h2C?m~rtmu}lwY1oEsl$NKXoij7ooz9!4pU1s zSX^=j3+@KX*hRJ!7!qI`B_zrs%q*ASEjvk9tY(aCX-N8q(FB4DDl*?4f86)IeBbxI z_j#Z9xsDUQYHA1Cq0wk4&udk0fQ`dv+D5{;V2M1h(GXcrm7_MM{r&cXGX{UL^Y)Xj z+~cFVBHa)AwZh&+eaF?G4xIYp(Lag(CkF!6`4UQcI~$jS_PmHVIg^t1Fs7DtT+UeW zm9MqJ_cMRm{>xnKJ?|j(NV)j@yn_wd^H)h+h@zNpeMOHp|0>z;`C~Ucdp(<)PtDs2 zs=fk>fc1(Fv5x)-66U4!@~~|)-MIcM<{cb2iTIa;c2Y1qMd;m+_`g4-nT>asY@X>_ zk#DWkEAiMUiElxx&50F1zT)FZ9K|O`10fwHP1h3irwi-jJ^flCfrAZr?=f~*EA)o# z`O}8R8qrTV^CdK6I$HpaQvM9~?K;u6(MZtmRhU+vg$fI^=l*3%>7skf!V?#akA60M z8&2j1xCC;GE{a*a)(&nI1(UgCJBjAPQyzk1(pFRkudZ>INfeyQ&K^L#UqyO}#1~0i z7Pc#+6=F9*dkK1X#iA=;MoE3yh^ZX$H`%3Ki0{uS`R0~7@k`m#QbW+p;VL-xFa^Sx zx&pv-hyuE53`W?DhmtzE=Y)H4*+mcLU|oILl=K@sh8u{LQimufD|M2X2PV#vcrM(4 znP++AH$+Lps_B z0%|rVH`c#-xW00IW@YKE2eAt5VwF)+`z94*1@x-6+@fXmxZ#|o z9362H^i#^1QYk&C70fLPk$#0=VN_#K*b=u`yo54Xsnc4TbQaBhnp(Bz+#6C z4FOT1s@!}C`NFaBt~J24CRKlA|u$>-8yb-TfCtzWV7qw!@(R&GkyD=q6Z9! z!6{nG713^CR1kD>=1D0X=`NsbJ^cX~7Wnvh+Y3i;UAMJ;()5_v8GYuGZ|2x{@Skfu ME??D+SKs;Ue<=65L;wH) diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-2-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-2-snap.png index 5a888cb33e309ca1a3260dee7099e1f46a4ade9b..9699c96b2839603f3336f8c6f7df12e03d3c2a68 100644 GIT binary patch literal 1060 zcmX|Ae@q)y9PfFiE?XZYGXi~((!$u{MjYO*P%{#XrLY^)37J4+6>Bb~g`iC^D2i)c z^cjV@>wd*^l7R#&%&{&F8N~g_b`fvpVkjevL&MS#`-iYG6a$)t_2ydqP+1Q#47YiU9@e>nV3AJ8E((xH->9oEbZ1rGc(Q3~ zBRenu+1bUhw$rD#pRjLV4S%=Z*eo2?i>6U;b!s%|O+-hj|>U6My<)DvwpXkp)>aQ=e+&LE^ z_ezgM>R9g3?Go{Ui_k8nQAXZ7!pM+0Il#zKsmo@>(%necC>iqd=06W3^-*Bq5C_|k z15V8Ea3}>Gjof~umP6CfFY9NuXq)Z4SM@j{Ee&|nA8YE&s8>c9Bb3@CVav!nm!_srW(~vjn zRSi@opoEI)Mm?IfbfX48aQOmuA2cir(19|G=%lx%s`+9x$jF~W-1wQ+CS1jG%QG>) zS1%Gx*-Wj?t#6V0^x`!GUFU0kQP3fB7jP7oj#(((R*Eu*a}eV6MU!uWnSkfW zB5o2*frZz^DkTa|><5^P?DX;Ao(vHt?xFs4V5y57d&Rm0rVciMCc9wU?M5xuJiq}Z zIou$K|HeWCH<*MLAON*qFG+782gG@1W9kxbklz8OC2oFV#~L}K`VMmj;FM9eZ`*NK5-D+iBGLM$EInBRW542|BpAG-9J>5D;0 R^1DmTdWx7Ii za*=qG6s4tZENY2=8RM^&lli0tQn@pnoh0j+pz4q&U-@Whq zJiqsCkL_~3#H?l48Vm-ezOJSjtAw|8jS-)7_P}O?VbzBEnw@(NQHxjR4_aED6s|m$ z`SszB;)0LfD_pvFsOC@m$%CcugdYCYx5?|s4YA$g^V5>v%4o-p;`R&eTDnYJ&xR|# z4v(*xE0~e=rEe#G>wE2f-=@>m9^Sh0IHP4h*2Cs}zhJ?Us1|YqZl@GJgWb3o>H1h z1hvVsL;I3a&Y^y=L?AhW8A*rO6W1jjhu6}QzFXTiU}ChpTDFnqmi%tEmgbu9)Yld7 zZ$`)w#>|EfpE5Ba-3c=do^#0OcjSVW@1hUhW=gi0l#rH|OdM}g3Qz~WevBLrN%t1p z7;OM$1nlg$+>Xt}wX9R^DBLyC(`p&@yTw}d6TP0P;y!PWn33H}b_k4pXDQ_~*_nF| zqWDs-WQ#R{Sn~D8T+&H%4Kyd@-hdbE;Yc!(9F#HwHr51h?TW|%(QgEM&~N?!N?l#| z^R$D8;8KP!Wg2Kk$oYYE`3s{MBL`Kee34Q*W|O0`jpRZ5!svz#5H>zr&Jt;3^|I_l z>$<=#11wR3Wqg13{DQ;7k2QGm%?VCPI_994C+UVM<=vaf4|VT9cMx_-9&X2SIlm;d zlz1P@)8hth-b@P&spFjfDHG z&n>=r>8+5FX!s9WW!^C{bs_H~A!0HBAJ>u}GwsNoA+`x~LA_WJ%f!*5;EgizRwn*T zg1@T`WCAZjw4Kq?fhUv`bIE?p**^R*#zv5E;SAW86GK~ZI~7QvX|hdFp;yuq2euv6 zrvt$3QYYD4*8|OJBiPibJM;BhQ2cbo_T89ht`oxuH8&%~lsD<7fhXlwr_1sk%g$fz zz{5w-$ll1TkLX=lWBJ>TI^~30H-c~zt{hotWL7hR2U?reaO)$cf+qshsh8Dos)+i1 g{?z>+MqgOm_DmTdWx7Ii za*=qG6s4tZENY2=8RM^&lli0tQn@pnoh0j+pz4q&U-@Whq zJiqsCkL_~3#H?l48Vm-ezOJSjtAw|8jS-)7_P}O?VbzBEnw@(NQHxjR4_aED6s|m$ z`SszB;)0LfD_pvFsOC@m$%CcugdYCYx5?|s4YA$g^V5>v%4o-p;`R&eTDnYJ&xR|# z4v(*xE0~e=rEe#G>wE2f-=@>m9^Sh0IHP4h*2Cs}zhJ?Us1|YqZl@GJgWb3o>H1h z1hvVsL;I3a&Y^y=L?AhW8A*rO6W1jjhu6}QzFXTiU}ChpTDFnqmi%tEmgbu9)Yld7 zZ$`)w#>|EfpE5Ba-3c=do^#0OcjSVW@1hUhW=gi0l#rH|OdM}g3Qz~WevBLrN%t1p z7;OM$1nlg$+>Xt}wX9R^DBLyC(`p&@yTw}d6TP0P;y!PWn33H}b_k4pXDQ_~*_nF| zqWDs-WQ#R{Sn~D8T+&H%4Kyd@-hdbE;Yc!(9F#HwHr51h?TW|%(QgEM&~N?!N?l#| z^R$D8;8KP!Wg2Kk$oYYE`3s{MBL`Kee34Q*W|O0`jpRZ5!svz#5H>zr&Jt;3^|I_l z>$<=#11wR3Wqg13{DQ;7k2QGm%?VCPI_994C+UVM<=vaf4|VT9cMx_-9&X2SIlm;d zlz1P@)8hth-b@P&spFjfDHG z&n>=r>8+5FX!s9WW!^C{bs_H~A!0HBAJ>u}GwsNoA+`x~LA_WJ%f!*5;EgizRwn*T zg1@T`WCAZjw4Kq?fhUv`bIE?p**^R*#zv5E;SAW86GK~ZI~7QvX|hdFp;yuq2euv6 zrvt$3QYYD4*8|OJBiPibJM;BhQ2cbo_T89ht`oxuH8&%~lsD<7fhXlwr_1sk%g$fz zz{5w-$ll1TkLX=lWBJ>TI^~30H-c~zt{hotWL7hR2U?reaO)$cf+qshsh8Dos)+i1 g{?z>+MqgOm_5E&TT5bF=p4J?1K*oeBU+#Us z=Y8JieeTo!EiW>gxy=THfoXiH;UM-99$S$a@4MyQ6$XQ8xv`<{(EG;hRNLF7b;a%} zljrq~N59+TjkCXWt9Qmc2R{pwZ#UM|odH)S&ef3nw?le_Q&>hjc{Hhv2-+(M)SF0C zQn?;6i~qd0#!jzYnclg&l|+r|ID&pr)&nj-Z|fNm>83z{JnZ_=MNV; ze&T~%U^v~(0BZOnIhL+Z-gMe>Z-{~Q+3h#@{O$JqvZ&O_a)}cVMpl$944`|ZVWWB& ziN7K-n<`;(tYX}mj7SM3Z)y&PuKZa}d5}%*VL9bQkve{M#HbGFZl{An^mn*2t(!g^ z#J7!7!rOAsvRttm8Jx#)Kdxp|Z;@ByX%A430oBZMvMw=hzvRkXviA&x{#v>L)B`5c zI}_5QJM!xnWlyG(n;b-B;rZGz!QOK;SzZlH#83aX`Iu65rb_hE?=?`(>*pO*JQldK zSGA#cS6FgsE~Jkd)tFJ;{;<@&9Vh2Fjz#!1ITTS7Zy7S9*fkG0?Q%VpIZ z#A!;F=SJnS+-~sZ)z;3JQTeNPR%ivu<(I5fm(v)+M1;;IJR*eWDNYTe1<~L*U?nTj zP~sD`(@emxeaBD*=rV_$6K%$;Ce1NA9D$dzXzU z?#k>2^Zs3@@(b86^d(S&+Qvb6i(2BesLkk|)`);{CDnfx8Dn@x3rQ&c$kQ)Oe!1(^ z$G44UxeTf#cnIlDf;x68KrDUDEXLupGkqVxHcw!B()w0)W~G8Veg{)dAJ}pa z_UlFLXR+&Zflg;}NcUkDz`>99+;VCT4*u=?Agp%LEKc5?I`Y3<0w${6suGJ?F5Y1! xy>>TTB?hb{3h5rky6RjHR^Qyay43dfW3gk|>Fwth#_{(X8a*uy@%q<3{uj`+$Y=ln diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-4-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-4-snap.png index 3c1197313f797d033b671f7625ad20c2afbecd59..477284c08067a9831a7f55977f871972f5a293f9 100644 GIT binary patch literal 1060 zcmXw2e@q)?7;e*~!`Yj2GtfI+EOan6%|bq|3{5r*rBy5E&TT5bF=p4J?1K*oeBU+#Us z=Y8JieeTo!EiW>gxy=THfoXiH;UM-99$S$a@4MyQ6$XQ8xv`<{(EG;hRNLF7b;a%} zljrq~N59+TjkCXWt9Qmc2R{pwZ#UM|odH)S&ef3nw?le_Q&>hjc{Hhv2-+(M)SF0C zQn?;6i~qd0#!jzYnclg&l|+r|ID&pr)&nj-Z|fNm>83z{JnZ_=MNV; ze&T~%U^v~(0BZOnIhL+Z-gMe>Z-{~Q+3h#@{O$JqvZ&O_a)}cVMpl$944`|ZVWWB& ziN7K-n<`;(tYX}mj7SM3Z)y&PuKZa}d5}%*VL9bQkve{M#HbGFZl{An^mn*2t(!g^ z#J7!7!rOAsvRttm8Jx#)Kdxp|Z;@ByX%A430oBZMvMw=hzvRkXviA&x{#v>L)B`5c zI}_5QJM!xnWlyG(n;b-B;rZGz!QOK;SzZlH#83aX`Iu65rb_hE?=?`(>*pO*JQldK zSGA#cS6FgsE~Jkd)tFJ;{;<@&9Vh2Fjz#!1ITTS7Zy7S9*fkG0?Q%VpIZ z#A!;F=SJnS+-~sZ)z;3JQTeNPR%ivu<(I5fm(v)+M1;;IJR*eWDNYTe1<~L*U?nTj zP~sD`(@emxeaBD*=rV_$6K%$;Ce1NA9D$dzXzU z?#k>2^Zs3@@(b86^d(S&+Qvb6i(2BesLkk|)`);{CDnfx8Dn@x3rQ&c$kQ)Oe!1(^ z$G44UxeTf#cnIlDf;x68KrDUDEXLupGkqVxHcw!B()w0)W~G8Veg{)dAJ}pa z_UlFLXR+&Zflg;}NcUkDz`>99+;VCT4*u=?Agp%LEKc5?I`Y3<0w${6suGJ?F5Y1! xy>>TTB?hb{3h5rky6RjHR^Qyay43dfW3gk|>Fwth#_{(X8a*uy@%q<3{uj`+$Y=ln literal 965 zcmZWoZAcSg9N%#=Bzu*6^6x%Gs zdbD1lP!QHa(;--WFtuxy@Sf6DWhfMQi`8U2;>Etdp03c?H_@-nft6orQc_#BezGu_ zaUyh~>f8k0ck8h`O zfK>|y5w{`!ymgiV9C4bhPUa8ibK80d+-`w#>7M;`Ac zEEXG@>hmj^kDiHkH9T{R#N2p;mj!Lst;&}4Nmv+HObX? zRmoKJV1Ls#$ryTLtqq`QCh{whUsf+12~i^<>YN=Xhh5Q=>0w~5330o*Nl>8(adpQu zCqXHz%wCvrl`yP|XqG^**>OFSt)m6b$g*Z<&>?1#Ko&?0@^k%}GL!Yun56;cwD&0s zfkS{ki_8c2AgW>Z3A!9u{OndE){ADi~_g9 zNk^%9aZjN2!sP@gFa*-$rxVSc0~u_BZpoz?hW>7*px?ukHU};A&Se4hyk*L(1OiP? zs?;Rwn>`NnK?{;aLbyIU3YFKjw3dzNnLpg>{}j&MafmYqpxL=P>R*XJk_WtR8n2%) RK7rp;VKv)Ky?akx{0+|9mtFt> diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-5-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-5-snap.png index 4aa28b6bfdc9668cf49edfe790ea290941e99f83..3c1197313f797d033b671f7625ad20c2afbecd59 100644 GIT binary patch literal 965 zcmZWoZAcSg9N%#=Bzu*6^6x%Gs zdbD1lP!QHa(;--WFtuxy@Sf6DWhfMQi`8U2;>Etdp03c?H_@-nft6orQc_#BezGu_ zaUyh~>f8k0ck8h`O zfK>|y5w{`!ymgiV9C4bhPUa8ibK80d+-`w#>7M;`Ac zEEXG@>hmj^kDiHkH9T{R#N2p;mj!Lst;&}4Nmv+HObX? zRmoKJV1Ls#$ryTLtqq`QCh{whUsf+12~i^<>YN=Xhh5Q=>0w~5330o*Nl>8(adpQu zCqXHz%wCvrl`yP|XqG^**>OFSt)m6b$g*Z<&>?1#Ko&?0@^k%}GL!Yun56;cwD&0s zfkS{ki_8c2AgW>Z3A!9u{OndE){ADi~_g9 zNk^%9aZjN2!sP@gFa*-$rxVSc0~u_BZpoz?hW>7*px?ukHU};A&Se4hyk*L(1OiP? zs?;Rwn>`NnK?{;aLbyIU3YFKjw3dzNnLpg>{}j&MafmYqpxL=P>R*XJk_WtR8n2%) RK7rp;VKv)Ky?akx{0+|9mtFt> delta 418 zcmX@gzMFZ1ay?^{r;B4q1>@U;7gtGpGB_VxeC*eM{%g%fCW$-x-X7Iythf`aTKC#f z=yuc*{cGn(2*cW@u=~BsQsS`_l_Vd6&1neZS)) zuaw*gA71{HWo#)KGg6kdO+ItQ;AH(ADYcm^ANHMDE*;}|xVeqpNdKhG)q>@TlV*Y> z60<-mJ=uUt=4V!{dbs@H)DsGyr?pL&dUry>`EW4r|CJA~I2^WDcRoCqEv0T(p(?Mu z|Fh&17aDkYPyEUJ@KVap=)@eUxJi|s&opN)PXQS@X=aMuG@!JN@eZz;^^?y8^Xi-K zaZLl-bWh3H^n%0T;}a@f9d_<&^L*xbSY@-VRF1cFj<;~Ywp8A2OX2A54>sQNlzW#N z&YWVq@5CmVl2Orp=KrM+x_N6BJX9&pa(H&7V3MV&4bZFW-W=PW?U0sLv62z!k1Gvl rfKJ_aus8o=!K9timp@EvyZVP|n(tgm6&H751|aZs^>bP0l+XkKQ8vZP diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-6-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-6-snap.png index d764b119d8ccd0257c70cef19c143e18f8a22d97..a979619c9c4711a8a5c9ef3c5826a81d8d533d92 100644 GIT binary patch literal 883 zcmX|=drZ?n9LKwi43#!UP0)2dh9GJ}6uT1CK=$C}bb=zp7eQ+p*7=x{{oyn)5n^?L zggJarpG*{k5CmrwBT=+UMy#?CMVE%7oqR1vo(}zwvFQ z?DWDmAMTLjj*YM)j5{Q1tfOmWbTsFZaHF%}%f6U^5eTL1bm2fJ|Q&1_RZPs_8 za@_1hiNj2lge%>l>EofKJJc4P#7EGKCeI1`Cr6eD595^IDBLmftnDgoPUk5+nj5_+ z)~OI&bZ%r-w^mA&%II*+lanPS=1@HY9dRh}rE}01a_siv{)4NwTTik{WOw0@*4Lkz zrT(_HP@y)EjTz~2`<{?3wUl!sX&{pLC`%0$;Ra-ubx{ruxIk5|A`JvFl{id<6X2oP zcwOJ$Sk_4iXyY?CMRZms_72dm0-ID2z(hrwskxHn$rebe!`!ogI8aZ4WiwOz$^>tb zV7!t4h&G=>f#EC)L0{ULvx(QqICO~I}IP%7}|C%B$N#T{2 z5J_(rsdO`%zJY7An}eNW?3=xfOjV$qjKP`aV4|e=1i&nU09In2nJJoEHDlL@fqQfa z&W`y@D}osy_U)nv`aEB3J48R8zKe>m>{2|3jJ=JHWsv|4O5k32TJ!+@CQ20t3!x17 z2Eju=vi_eH)jM-G^N&rOdKQq5lal1k|P( obi-=R2#Pyy-L4NExO4q3QvR~|1NudN8h$23pOT*3pxavf2VzHixBvhE delta 455 zcmey&_JDbUay{d6PZ!6K3dXkw1M_Y>2)G=)&hq;o`@DWWLk)ZP&e1cTf2IKXeQ$k@t-uAIhV)CdgjZVhr1_cYR)?IrIhKAanK%@v|asE%O_ZR7~Z{n=xWL` zX%C?O{;+$hN59CQoWL|QmMg_BYG>1#P9JZ>zv@Oy9NI)q{K5%|O?>ZTzrGL|s#F z`l6ExKrczAOvuzM1G=XX=oO$3C$5Q6Jemq*#CF93{l&j@#=o40c|bq5r%Z5UlLTp) zr)0dV^}WM0@05RDU24Wsj1T!BLGvcaLFU935p|>8BJ4nHJ@X<5hcd{@Ee5=~i77x! lRzmvv4FO#rP`$`b$p diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-7-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-7-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..70ded082d23c3e157ed04ccda77ff079ef2c2f26 GIT binary patch literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFff&Sx;TbZFupw)9i;8a;Cyf~ zU-p0QYwhb+N@!*9G)meRmM{C^->>4xY-E15;mj3-6F$5rVqBSx!Y>+}ykKy0PKHBU zn`c_ajFh}pj5E()QSK|bqU?DGsKEKKg0YFh=P6PXeg-ic1v49|OHG(5HDTvYwiG)n zk4L`!AcZ!)ZK5+5CQe$I=$e-0kd_fKai)~ti9I}$QWGl6ANU@gEmxS&dxD4e#2TQz z+D6(SbK)lfjhUI!#+DM-2b9@k`N7SN_k_*dHv5H)GgmUs6b5p9n2p|x-8*^V!<3W> zJGje7Au`h;Z7Ji-)j*>J`QFs6Pn@vRz( z&a&`6JpW38FZb@}7Yp*)^)7BuGB#OrVvWh46%Zc+J()ElrS1wSC{JE!IOD}^qz&|# zi4QQmx_EfOfd*o$6n8RD2ZmQz$}%>PSC_Trp9F^d98fSli{=Hz0uOI9&~-pm;|UJC z89+sjAf;?6ejxcj@j&}OEH_msUi5I8)V!mO-Y0o@>p?-b=ER*jXD)p3;Eq;zKHQ&@ zv4C-Ac;SN}-u+6>ha;ubW=?I(H}x?B@l=Y1dE>JrQYHZ7Xr~$DQ%O^W&mq8oQsv(5 zYrWxj2fe%lSYt`0Y+ znckRYhK6=bVw2joKfOSdcX`{}_d7oFO39t@;pIUI^X^2+-^OFnU-frt0RpUe+0rTmOe%#n(lRO$IlbLR3C zkdc#Srr1pbO4}Ik;F>x4Ofav$=^ocKphfqTj7={%96mmw($!(-t~SqSj)zq?+e+nl zOXqkC2W(5_-L@2t?*3roEl;_3so~5iw);+Ok|`M#-Dmz^`k?^21W{l Mr>mdKI;Vst03N8v5&!@I literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-9-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-9-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..d764b119d8ccd0257c70cef19c143e18f8a22d97 GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCnba4!+V0?QpFz>d5fXl(_ zEWiJ;&+F$i?dkJaK)}rN0*I9y@k2p+*+LGE z@(GVz+C+TQcHKL5_k_>?bEnFuB&lBxGMPDT(a9}9@n5MA^MWQk3f7$E<9#tDs%tV( z%qnV!v}B5$*T;aaW|7?@m!F5toBBxA=yI)2jk*#4Nt2m#d5o-QzRY>Jdt#>MtTSIq znGP8T?Qu!l)jzd-f~AMy-OGorrYw{80P61#yQg~ei~Pw6OfzG-QtYC3Hl6A8@izRc zZnVUqP2|L%yoaGimwQ3d?qTaDft=*;S*TFF6X*&Jqxq3Lq-Rb`s@gww^@%;PUCcA5 zJ#u)aaMZI)Z8OlVZW}+W5>eOGo4)9z0?l1bPJMzlm#N6py9?8L?fl zKwt4Mo$)W{VII(j?I{x+*(5<4<|!HPYJKnU%sb_uSC^Wx6yrlaNWi=ak~y(OMBQk& z2s;p4&%DUNp$xKdive$LVhYfX6)Y{85!{zAh%H expect(image).toMatchImageSnapshot()); - + const resp = await respRequest; - console.log(resp); expect(resp.returnCode).toEqual(0x9000); expect(resp.errorMessage).toEqual("No errors"); - const expected_address_string = "04d7482bbaff7827035d5b238df318b10604673dc613808723efbd23fbc4b9fad34a415828d924ec7b83ac0eddf22ef115b7c203ee39fb080572d7e51775ee54be"; + const expected_address_string = "0123456789abcdef"; const expected_pk = "04d7482bbaff7827035d5b238df318b10604673dc613808723efbd23fbc4b9fad34a415828d924ec7b83ac0eddf22ef115b7c203ee39fb080572d7e51775ee54be"; expect(resp.address).toEqual(expected_address_string); @@ -329,14 +336,16 @@ describe("Basic checks", function () { const scheme = FlowApp.Signature.P256 | FlowApp.Hash.SHA2_256; const path = `m/44'/539'/${scheme}'/0/0`; - const resp = await app.getAddressAndPubKey(path); + const address = "0123456789abcdef" - console.log(resp) + await prepareSlot(sim, app, 0, address, path) + + const resp = await app.getAddressAndPubKey(0); expect(resp.returnCode).toEqual(0x9000); expect(resp.errorMessage).toEqual("No errors"); - const expected_address_string = "04db0a14364e5bf43a7ddda603522ddfee95c5ff12b48c49480f062e7aa9d20e84215eef9b8b76175f32802f75ed54110e29c7dc76054f24c028c312098e7177a3"; + const expected_address_string = "0123456789abcdef"; const expected_pk = "04db0a14364e5bf43a7ddda603522ddfee95c5ff12b48c49480f062e7aa9d20e84215eef9b8b76175f32802f75ed54110e29c7dc76054f24c028c312098e7177a3"; expect(resp.address).toEqual(expected_address_string); @@ -356,22 +365,26 @@ describe("Basic checks", function () { // Derivation path. First 3 items are automatically hardened! const scheme = FlowApp.Signature.P256 | FlowApp.Hash.SHA2_256; const path = `m/44'/539'/${scheme}'/0/0`; + const address = "0123456789abcdef" + const fakeAddress = "0000000000000000" + + await prepareSlot(sim, app, 1, address, path) + await prepareSlot(sim, app, 0, fakeAddress, path) - const respRequest = app.showAddressAndPubKey(path); + const respRequest = app.showAddressAndPubKey(1); // Wait until we are not in the main menu await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); // Now navigate the address / path - const snapshots = await verifyAndAccept(sim, 4); + const snapshots = await verifyAndAccept(sim, 7); snapshots.forEach((image) => expect(image).toMatchImageSnapshot()); const resp = await respRequest; - console.log(resp); expect(resp.returnCode).toEqual(0x9000); expect(resp.errorMessage).toEqual("No errors"); - const expected_address_string = "04db0a14364e5bf43a7ddda603522ddfee95c5ff12b48c49480f062e7aa9d20e84215eef9b8b76175f32802f75ed54110e29c7dc76054f24c028c312098e7177a3"; + const expected_address_string = "0123456789abcdef"; const expected_pk = "04db0a14364e5bf43a7ddda603522ddfee95c5ff12b48c49480f062e7aa9d20e84215eef9b8b76175f32802f75ed54110e29c7dc76054f24c028c312098e7177a3"; expect(resp.address).toEqual(expected_address_string); @@ -395,22 +408,24 @@ describe("Basic checks", function () { // Derivation path. First 3 items are automatically hardened! const scheme = FlowApp.Signature.SECP256K1 | FlowApp.Hash.SHA2_256; const path = `m/44'/539'/${scheme}'/0/0`; + const address = "0123456789abcdef" + + await prepareSlot(sim, app, 1, address, path) - const respRequest = app.showAddressAndPubKey(path); + const respRequest = app.showAddressAndPubKey(1); // Wait until we are not in the main menu await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); // Now navigate the address / path - const snapshots = await verifyAndAccept(sim, 5); + const snapshots = await verifyAndAccept(sim, 8); snapshots.forEach((image) => expect(image).toMatchImageSnapshot()); const resp = await respRequest; - console.log(resp); expect(resp.returnCode).toEqual(0x9000); expect(resp.errorMessage).toEqual("No errors"); - const expected_address_string = "04d7482bbaff7827035d5b238df318b10604673dc613808723efbd23fbc4b9fad34a415828d924ec7b83ac0eddf22ef115b7c203ee39fb080572d7e51775ee54be"; + const expected_address_string = "0123456789abcdef"; const expected_pk = "04d7482bbaff7827035d5b238df318b10604673dc613808723efbd23fbc4b9fad34a415828d924ec7b83ac0eddf22ef115b7c203ee39fb080572d7e51775ee54be"; expect(resp.address).toEqual(expected_address_string); @@ -419,4 +434,27 @@ describe("Basic checks", function () { await sim.close(); } }); + + test("get address - empty slot", async function () { + const sim = new Zemu(APP_PATH); + try { + await sim.start(simOptions); + const app = new FlowApp(sim.getTransport()); + + const scheme = FlowApp.Signature.P256 | FlowApp.Hash.SHA2_256; + const path = `m/0/0/0/0/0`; + const address = "0000000000000000" + + await prepareSlot(sim, app, 0, address, path) + + const resp = await app.getAddressAndPubKey(0); + + console.log(resp); + + expect(resp.returnCode).toEqual(0x6984); + expect(resp.errorMessage).toEqual("Data is invalid"); + } finally { + await sim.close(); + } + }); }); diff --git a/tests_zemu/tests/setup.js b/tests_zemu/tests/setup.js index 1be7c518..ddd93c7a 100644 --- a/tests_zemu/tests/setup.js +++ b/tests_zemu/tests/setup.js @@ -65,3 +65,15 @@ export async function verifyAndAccept(sim, pageCount) { return snapshots; } + +export async function prepareSlot(sim, app, slot, address = "0000000000000000", path = `m/0/0/0/0/0`) { + const respRequest = app.setSlot(slot, address, path); + await sim.waitUntilScreenIsNot(sim.getMainMenuSnapshot()); + await sim.clickRight(); + await sim.clickRight(); + await sim.clickRight(); + await sim.clickBoth(); + return await respRequest; +} + + diff --git a/tests_zemu/tests/transactions.spec.js b/tests_zemu/tests/transactions.spec.js index 27e44fe4..36c29a46 100644 --- a/tests_zemu/tests/transactions.spec.js +++ b/tests_zemu/tests/transactions.spec.js @@ -20,7 +20,7 @@ import jsSHA from "jssha"; import {ec as EC} from "elliptic"; import fs from "fs"; -import { APP_PATH, simOptions, verifyAndAccept } from "./setup"; +import { APP_PATH, simOptions, verifyAndAccept, prepareSlot } from "./setup"; const CHAIN_ID_PAGE_COUNT = 1; const REF_BLOCK_PAGE_COUNT = 2; @@ -88,8 +88,10 @@ async function transactionTest(txHexBlob, txExpectedPageCount, sigAlgo, hashAlgo const txBlob = Buffer.from(txHexBlob, "hex"); const path = getKeyPath(sigAlgo.code, hashAlgo.code); + const address = "0123456789abcdef" + await prepareSlot(sim, app, 1, address, path) - const pkResponse = await app.getAddressAndPubKey(path); + const pkResponse = await app.getAddressAndPubKey(1); expect(pkResponse.returnCode).toEqual(0x9000); expect(pkResponse.errorMessage).toEqual("No errors"); From 2d99c395905cb43e9c39f9adbcb24804347c6bf9 Mon Sep 17 00:00:00 2001 From: Robert Lukotka Date: Wed, 15 Sep 2021 15:21:09 +0200 Subject: [PATCH 05/10] Show pubkey refactor --- .circleci/config.yml | 19 ++---- app/src/addr.c | 25 +++++-- app/src/apdu_handler.c | 12 +--- app/src/common/actions.h | 17 +++-- app/src/crypto.c | 24 ------- tests_zemu/package.json | 2 +- ...asic-checks-show-address-expert-6-snap.png | Bin 883 -> 878 bytes ...hecks-show-address-secp-256-k-1-6-snap.png | Bin 883 -> 878 bytes ...hecks-show-address-secp-256-r-1-6-snap.png | Bin 883 -> 878 bytes tests_zemu/yarn.lock | 62 ++++++++++++++++-- 10 files changed, 97 insertions(+), 64 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index d4753581..9f41aa1a 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -64,29 +64,22 @@ jobs: command: | make - run: - name: Install node + yarn + name: Install node + yarn command: | - nvm install 14.4.0 - nvm use 14.4.0 + nvm install 12.16.2 + nvm use 12.16.2 npm install -g yarn - run: name: Build/Install build js deps command: | - nvm use 14.4.0 + nvm use 12.16.2 make zemu_install - cd js - yarn link - yarn build - cd .. - cd zemu_build - yarn link @onflow/ledger - cd .. - run: name: Run zemu tests command: | - nvm use 14.4.0 + nvm use 12.16.2 make zemu_test - no_output_timeout: 20m + no_output_timeout: 30m build_package: docker: diff --git a/app/src/addr.c b/app/src/addr.c index 5b2ce788..d8aaec35 100644 --- a/app/src/addr.c +++ b/app/src/addr.c @@ -25,14 +25,27 @@ zxerr_t addr_getNumItems(uint8_t *num_items) { zemu_log_stack("addr_getNumItems"); - if (app_mode_expert()) { - *num_items = 4; - return zxerr_ok; - } + if (app_mode_expert()) { + *num_items = 4; + return zxerr_ok; + } *num_items = 3; return zxerr_ok; } +//To add to zxlib after fork +__Z_INLINE void pageHexStringFromBuf(char *outValue, uint16_t outValueLen, + uint8_t *inValue, uint16_t inValueLen, + uint8_t pageIdx, uint8_t *pageCount) { + char buf[2*inValueLen+1]; + uint_fast32_t len = array_to_hexstr(buf, sizeof(buf), inValue, inValueLen); + if (len == 0) { + return; + } + pageString(outValue, outValueLen, buf, pageIdx, pageCount); +} + + zxerr_t addr_getItem(int8_t displayIdx, char *outKey, uint16_t outKeyLen, char *outVal, uint16_t outValLen, @@ -46,12 +59,12 @@ zxerr_t addr_getItem(int8_t displayIdx, } case 1: { snprintf(outKey, outKeyLen, "Pub Key"); - pageString(outVal, outValLen, (char *) (G_io_apdu_buffer + sizeof(flow_account_t) + VIEW_ADDRESS_OFFSET_SECP256K1), pageIdx, pageCount); + pageHexStringFromBuf(outVal, outValLen, G_io_apdu_buffer + sizeof(flow_account_t), SECP256K1_PK_LEN, pageIdx, pageCount); return zxerr_ok; } case 2: { snprintf(outKey, outKeyLen, "Warning"); - pageString(outVal, outValLen, "Ledger does not verify if acoount and pub key match!!!", pageIdx, pageCount); + pageString(outVal, outValLen, "Ledger does not verify if account and pub key match!!!", pageIdx, pageCount); return zxerr_ok; } case 3: { diff --git a/app/src/apdu_handler.c b/app/src/apdu_handler.c index a4a2e2a4..0ceecbba 100644 --- a/app/src/apdu_handler.c +++ b/app/src/apdu_handler.c @@ -60,17 +60,11 @@ __Z_INLINE void handleGetPubkey(volatile uint32_t *flags, volatile uint32_t *tx, MEMCPY(G_io_apdu_buffer, &slot.path, sizeof(slot.path)); rx = sizeof(slot.path); extractHDPath(rx, 0); //this puts hdPath into hdPath global variable - *tx = app_fill_address(); //Computes pubkey, the new pubkey is in G_io_apdu_buffer - //We shift G_io_apdu_buffer to make space for account - if (*tx + sizeof(slot.account) > IO_APDU_BUFFER_SIZE) { - THROW(APDU_CODE_UNKNOWN); //this should not happen - } - MEMMOVE(G_io_apdu_buffer + sizeof(slot.account), G_io_apdu_buffer, *tx); //buffers overlap, we have to use MEMMOVE - *tx += sizeof(slot.account); - - //we fill the account + //We fill account and pubkey MEMCPY(G_io_apdu_buffer, &slot.account, sizeof(slot.account)); + *tx = sizeof(slot.account); + *tx += app_fill_pubkey(G_io_apdu_buffer + sizeof(slot.account), IO_APDU_BUFFER_SIZE - sizeof(slot.account)); //Display or return the buffer if (requireConfirmation) { diff --git a/app/src/common/actions.h b/app/src/common/actions.h index 357e212c..a83896f5 100644 --- a/app/src/common/actions.h +++ b/app/src/common/actions.h @@ -21,6 +21,7 @@ #include "apdu_codes.h" #include #include "coin.h" +#include "zxformat.h" extern uint16_t action_addr_len; @@ -45,18 +46,20 @@ __Z_INLINE void app_reject() { io_exchange(CHANNEL_APDU | IO_RETURN_AFTER_TX, 2); } -__Z_INLINE uint8_t app_fill_address() { - // Put data directly in the apdu buffer - MEMZERO(G_io_apdu_buffer, IO_APDU_BUFFER_SIZE); +__Z_INLINE uint8_t app_fill_pubkey(unsigned char *buffer, uint16_t buffer_len) { + if (buffer_len < SECP256K1_PK_LEN) { + zemu_log_stack("crypto_fillAddress: zxerr_buffer_too_small"); + return zxerr_buffer_too_small; + } - action_addr_len = 0; - zxerr_t err = crypto_fillAddress(hdPath, G_io_apdu_buffer, IO_APDU_BUFFER_SIZE - 2, &action_addr_len); + MEMZERO(buffer, SECP256K1_PK_LEN); + zxerr_t err = crypto_extractPublicKey(hdPath, buffer, SECP256K1_PK_LEN); - if (err != zxerr_ok || action_addr_len == 0) { + if (err != zxerr_ok) { THROW(APDU_CODE_EXECUTION_ERROR); } - return action_addr_len; + return SECP256K1_PK_LEN; } __Z_INLINE void app_reply_address() { diff --git a/app/src/crypto.c b/app/src/crypto.c index 3bdf8fc6..b15b2f5e 100644 --- a/app/src/crypto.c +++ b/app/src/crypto.c @@ -227,28 +227,4 @@ zxerr_t crypto_sign(const uint32_t path[HDPATH_LEN_DEFAULT], const uint8_t *mess return zxerr_ok; } -typedef struct { - uint8_t publicKey[SECP256K1_PK_LEN]; - char addrStr[SECP256K1_PK_LEN*2]; - uint8_t padding[4]; -} __attribute__((packed)) answer_t; - -zxerr_t crypto_fillAddress(const uint32_t path[HDPATH_LEN_DEFAULT], uint8_t *buffer, uint16_t buffer_len, uint16_t *addrLen) { - MEMZERO(buffer, buffer_len); - - if (buffer_len < sizeof(answer_t)) { - zemu_log_stack("crypto_fillAddress: zxerr_buffer_too_small"); - return zxerr_buffer_too_small; - } - - answer_t *const answer = (answer_t *) buffer; - - CHECK_ZXERR(crypto_extractPublicKey(path, answer->publicKey, sizeof_field(answer_t, publicKey))); - - array_to_hexstr(answer->addrStr, sizeof_field(answer_t, addrStr) + 2, answer->publicKey, sizeof_field(answer_t, publicKey) ); - - *addrLen = sizeof(answer_t) - sizeof_field(answer_t, padding); - return zxerr_ok; -} - #endif diff --git a/tests_zemu/package.json b/tests_zemu/package.json index 513f6704..0685581d 100644 --- a/tests_zemu/package.json +++ b/tests_zemu/package.json @@ -16,7 +16,7 @@ "zondax" ], "dependencies": { - "@onflow/ledger": "0.1.0", + "@onflow/ledger": "file:../js", "@zondax/zemu": "^0.7.0" }, "devDependencies": { diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-6-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-6-snap.png index a979619c9c4711a8a5c9ef3c5826a81d8d533d92..8cab1041585ba1363e433fa382c76bfab67f2772 100644 GIT binary patch delta 442 zcmey&_Kt0WiiWADi(^Oy!?&-{_Wbn5Q(uLo33_jn&xlzR8?+vFLH$&Aw{|6$Z%+P`+P8k4c`{z(fTh8mgp z7)|EkoqXnk!O1^jlXIBl>o0D|SnzPWiH=mpj_TPBMcGmlDyOrh*iB_i=~Gz{6Mb04 z7^ufY!TGRL8(WGP?+G2L2@4Yyi!5s3t8V;)G1%<6BY_B&EcR z(o-@V(k3lroC!qcCoeRdnVqt%Z6(YP%h*!>38&0l$tVd__RK@tJ!6L@Z~2BomYK7G zmezzy&u``7Z9a21H78~^$jxUnER=!vH3Qi^Adhsn*-)q6X>R$yXUaK+qY#u YgX-pnCwGpdtYiQJPgg&ebxsLQ00d>Y!~g&Q delta 447 zcmaFI_L*&hiiVY^i(^Oy~(6B?HR?Lt{z*TlIM3gQA%y*|0Rqwjd>@ZS(p;1yx@)_vr#u&iWu*Sm=I09R$$uC%nCjO|R%0?2wx6`{VW^Rb zkI`fvpm7%rPW};`oWmqve_=z$f`|PkI#L-se%mrWod$G=9`A`7FWwU}t`0kwwRxsx z%t*;_XlrZb;XR=vH6hYO!TGS$GoQmwX<0K;+JN#G4Nm&-o&X{qUhbI-6BUbdrLSLU zICEjc1WRRSW{`bAnG<_F+t^a>sTi9A6#|W!DK$Y7L}pI-8J@C?EoH(&#+i$AVxkY9 z&D`-j@A0jayh&#+e3+VB!)9c{V^ltUbD=ND@#c#k_5j__1NX?HhxVBgDeHV4e)337 i*tvTR`@4Nx_A~U~Y!?&-{_Wbn5Q(uLo33_jn&xlzR8?+vFLH$&Aw{|6$Z%+P`+P8k4c`{z(fTh8mgp z7)|EkoqXnk!O1^jlXIBl>o0D|SnzPWiH=mpj_TPBMcGmlDyOrh*iB_i=~Gz{6Mb04 z7^ufY!TGRL8(WGP?+G2L2@4Yyi!5s3t8V;)G1%<6BY_B&EcR z(o-@V(k3lroC!qcCoeRdnVqt%Z6(YP%h*!>38&0l$tVd__RK@tJ!6L@Z~2BomYK7G zmezzy&u``7Z9a21H78~^$jxUnER=!vH3Qi^Adhsn*-)q6X>R$yXUaK+qY#u YgX-pnCwGpdtYiQJPgg&ebxsLQ00d>Y!~g&Q delta 447 zcmaFI_L*&hiiVY^i(^Oy~(6B?HR?Lt{z*TlIM3gQA%y*|0Rqwjd>@ZS(p;1yx@)_vr#u&iWu*Sm=I09R$$uC%nCjO|R%0?2wx6`{VW^Rb zkI`fvpm7%rPW};`oWmqve_=z$f`|PkI#L-se%mrWod$G=9`A`7FWwU}t`0kwwRxsx z%t*;_XlrZb;XR=vH6hYO!TGS$GoQmwX<0K;+JN#G4Nm&-o&X{qUhbI-6BUbdrLSLU zICEjc1WRRSW{`bAnG<_F+t^a>sTi9A6#|W!DK$Y7L}pI-8J@C?EoH(&#+i$AVxkY9 z&D`-j@A0jayh&#+e3+VB!)9c{V^ltUbD=ND@#c#k_5j__1NX?HhxVBgDeHV4e)337 i*tvTR`@4Nx_A~U~Y!?&-{_Wbn5Q(uLo33_jn&xlzR8?+vFLH$&Aw{|6$Z%+P`+P8k4c`{z(fTh8mgp z7)|EkoqXnk!O1^jlXIBl>o0D|SnzPWiH=mpj_TPBMcGmlDyOrh*iB_i=~Gz{6Mb04 z7^ufY!TGRL8(WGP?+G2L2@4Yyi!5s3t8V;)G1%<6BY_B&EcR z(o-@V(k3lroC!qcCoeRdnVqt%Z6(YP%h*!>38&0l$tVd__RK@tJ!6L@Z~2BomYK7G zmezzy&u``7Z9a21H78~^$jxUnER=!vH3Qi^Adhsn*-)q6X>R$yXUaK+qY#u YgX-pnCwGpdtYiQJPgg&ebxsLQ00d>Y!~g&Q delta 447 zcmaFI_L*&hiiVY^i(^Oy~(6B?HR?Lt{z*TlIM3gQA%y*|0Rqwjd>@ZS(p;1yx@)_vr#u&iWu*Sm=I09R$$uC%nCjO|R%0?2wx6`{VW^Rb zkI`fvpm7%rPW};`oWmqve_=z$f`|PkI#L-se%mrWod$G=9`A`7FWwU}t`0kwwRxsx z%t*;_XlrZb;XR=vH6hYO!TGS$GoQmwX<0K;+JN#G4Nm&-o&X{qUhbI-6BUbdrLSLU zICEjc1WRRSW{`bAnG<_F+t^a>sTi9A6#|W!DK$Y7L}pI-8J@C?EoH(&#+i$AVxkY9 z&D`-j@A0jayh&#+e3+VB!)9c{V^ltUbD=ND@#c#k_5j__1NX?HhxVBgDeHV4e)337 i*tvTR`@4Nx_A~U~Y Date: Wed, 22 Sep 2021 13:26:35 +0200 Subject: [PATCH 06/10] hdPath variable and hdPath checking refactor --- app/src/account.c | 8 +++----- app/src/account.h | 4 ---- app/src/addr.c | 4 ++-- app/src/apdu_handler.c | 13 +++++-------- app/src/coin.h | 19 +++++++++++++++++-- app/src/common/actions.h | 12 +++--------- app/src/common/app_main.c | 11 +++-------- app/src/crypto.c | 17 ++++++++--------- app/src/crypto.h | 6 ++---- tests/testvectors.cpp | 8 ++++---- 10 files changed, 47 insertions(+), 55 deletions(-) diff --git a/app/src/account.c b/app/src/account.c index dfcd34ef..fd00f3ad 100644 --- a/app/src/account.c +++ b/app/src/account.c @@ -14,6 +14,7 @@ * limitations under the License. ********************************************************************************/ #include "account.h" +#include "coin.h" #include "zxmacros.h" #include "stdbool.h" #include "apdu_codes.h" @@ -204,13 +205,10 @@ zxerr_t slot_parseSlot(uint8_t *buffer, uint16_t bufferLen) { return zxerr_out_of_bounds; } + //We copy account and path. Note that path is copied in app_main.c:extractHDPath (for sign transaction call). MEMCPY(&tmp_slot, buffer + 1, sizeof(account_slot_t)); - const bool mainnet = tmp_slot.path.data[0] == HDPATH_0_DEFAULT && tmp_slot.path.data[1] == HDPATH_1_DEFAULT; - const bool testnet = tmp_slot.path.data[0] == HDPATH_0_TESTNET && tmp_slot.path.data[1] == HDPATH_1_TESTNET; - const bool empty = tmp_slot.path.data[0] == 0 && tmp_slot.path.data[1] == 0; - - if (!mainnet && !testnet && !empty) { + if (!path_is_mainnet_or_testnet(tmp_slot.path) && !path_is_empty(tmp_slot.path)) { array_to_hexstr(bufferUI, sizeof(bufferUI), tmp_slot.account.data, 8); zemu_log(bufferUI); zemu_log("\n"); diff --git a/app/src/account.h b/app/src/account.h index 6034014a..86c716ca 100644 --- a/app/src/account.h +++ b/app/src/account.h @@ -30,10 +30,6 @@ typedef struct { uint8_t data[SLOT_ACCOUNT_SIZE]; } flow_account_t; -typedef struct { - uint32_t data[HDPATH_LEN_DEFAULT]; -} flow_path_t; - typedef struct { flow_account_t account; flow_path_t path; diff --git a/app/src/addr.c b/app/src/addr.c index d8aaec35..f1b34858 100644 --- a/app/src/addr.c +++ b/app/src/addr.c @@ -59,7 +59,7 @@ zxerr_t addr_getItem(int8_t displayIdx, } case 1: { snprintf(outKey, outKeyLen, "Pub Key"); - pageHexStringFromBuf(outVal, outValLen, G_io_apdu_buffer + sizeof(flow_account_t), SECP256K1_PK_LEN, pageIdx, pageCount); + pageHexStringFromBuf(outVal, outValLen, G_io_apdu_buffer + sizeof(flow_account_t), PUBLIC_KEY_LEN, pageIdx, pageCount); return zxerr_ok; } case 2: { @@ -74,7 +74,7 @@ zxerr_t addr_getItem(int8_t displayIdx, snprintf(outKey, outKeyLen, "Your Path"); char buffer[300]; - bip32_to_str(buffer, sizeof(buffer), hdPath, HDPATH_LEN_DEFAULT); + bip32_to_str(buffer, sizeof(buffer), hdPath.data, HDPATH_LEN_DEFAULT); pageString(outVal, outValLen, buffer, pageIdx, pageCount); return zxerr_ok; } diff --git a/app/src/apdu_handler.c b/app/src/apdu_handler.c index 0ceecbba..8cb05f76 100644 --- a/app/src/apdu_handler.c +++ b/app/src/apdu_handler.c @@ -35,7 +35,7 @@ __Z_INLINE void handleGetPubkey(volatile uint32_t *flags, volatile uint32_t *tx, THROW(APDU_CODE_DATA_INVALID); } - uint8_t requireConfirmation = G_io_apdu_buffer[OFFSET_P1]; + uint8_t displayAndConfirm = G_io_apdu_buffer[OFFSET_P1]; const uint8_t slotIdx = G_io_apdu_buffer[OFFSET_DATA]; char buffer[20]; @@ -47,27 +47,24 @@ __Z_INLINE void handleGetPubkey(volatile uint32_t *flags, volatile uint32_t *tx, snprintf(buffer, sizeof(buffer), "err: %d", err); zemu_log_stack(buffer); - if (err == zxerr_no_data) { + if (err == zxerr_no_data) { zemu_log_stack("Empty slot"); THROW(APDU_CODE_DATA_INVALID); } - if (err != zxerr_ok) { THROW(APDU_CODE_EXECUTION_ERROR); } - //We want to reuse extractHDPath, as it works on G_io_apdu_buffer we have to follow - MEMCPY(G_io_apdu_buffer, &slot.path, sizeof(slot.path)); - rx = sizeof(slot.path); - extractHDPath(rx, 0); //this puts hdPath into hdPath global variable + MEMCPY(&hdPath, slot.path.data, sizeof(hdPath)); //We fill account and pubkey MEMCPY(G_io_apdu_buffer, &slot.account, sizeof(slot.account)); + *tx = sizeof(slot.account); *tx += app_fill_pubkey(G_io_apdu_buffer + sizeof(slot.account), IO_APDU_BUFFER_SIZE - sizeof(slot.account)); //Display or return the buffer - if (requireConfirmation) { + if (displayAndConfirm) { //we set the returning length for app_reply_address action_addr_len = *tx; diff --git a/app/src/coin.h b/app/src/coin.h index f9e3940d..0857aab5 100644 --- a/app/src/coin.h +++ b/app/src/coin.h @@ -23,6 +23,8 @@ extern "C" { #include #include +#include +#include "zxmacros.h" #define HDPATH_LEN_DEFAULT 5 @@ -35,8 +37,21 @@ extern "C" { #define HDPATH_0_TESTNET (0x80000000u | 0x2cu) #define HDPATH_1_TESTNET (0x80000000u | 0x1u) -#define SECP256K1_PK_LEN 65u -#define SECP256R1_PK_LEN 65u +typedef struct { + uint32_t data[HDPATH_LEN_DEFAULT]; +} flow_path_t; + + +__Z_INLINE bool path_is_mainnet_or_testnet(const flow_path_t path) { + return (path.data[0] == HDPATH_0_DEFAULT && path.data[1] == HDPATH_1_DEFAULT) || + (path.data[0] == HDPATH_0_TESTNET && path.data[1] == HDPATH_1_TESTNET); +} + +__Z_INLINE bool path_is_empty(const flow_path_t path) { + return path.data[0] == 0 && path.data[1] == 0; +} + +#define PUBLIC_KEY_LEN 65u typedef enum { ADDR_SECP256K1 = 0, diff --git a/app/src/common/actions.h b/app/src/common/actions.h index a83896f5..e29616b3 100644 --- a/app/src/common/actions.h +++ b/app/src/common/actions.h @@ -30,7 +30,7 @@ __Z_INLINE void app_sign() { const uint16_t messageLength = get_signable_length(); uint16_t replyLen = 0; - zxerr_t err = crypto_sign(hdPath, message, messageLength, G_io_apdu_buffer, IO_APDU_BUFFER_SIZE - 3, &replyLen); + zxerr_t err = crypto_sign(hdPath.data, message, messageLength, G_io_apdu_buffer, IO_APDU_BUFFER_SIZE - 3, &replyLen); if (err != zxerr_ok || replyLen == 0) { set_code(G_io_apdu_buffer, 0, APDU_CODE_SIGN_VERIFY_ERROR); @@ -47,19 +47,13 @@ __Z_INLINE void app_reject() { } __Z_INLINE uint8_t app_fill_pubkey(unsigned char *buffer, uint16_t buffer_len) { - if (buffer_len < SECP256K1_PK_LEN) { - zemu_log_stack("crypto_fillAddress: zxerr_buffer_too_small"); - return zxerr_buffer_too_small; - } - - MEMZERO(buffer, SECP256K1_PK_LEN); - zxerr_t err = crypto_extractPublicKey(hdPath, buffer, SECP256K1_PK_LEN); + zxerr_t err = crypto_extractPublicKey(&hdPath, buffer, buffer_len); if (err != zxerr_ok) { THROW(APDU_CODE_EXECUTION_ERROR); } - return SECP256K1_PK_LEN; + return PUBLIC_KEY_LEN; } __Z_INLINE void app_reply_address() { diff --git a/app/src/common/app_main.c b/app/src/common/app_main.c index 692a10c0..d16ebc4d 100644 --- a/app/src/common/app_main.c +++ b/app/src/common/app_main.c @@ -95,15 +95,10 @@ void extractHDPath(uint32_t rx, uint32_t offset) { THROW(APDU_CODE_WRONG_LENGTH); } - MEMCPY(hdPath, G_io_apdu_buffer + offset, sizeof(uint32_t) * HDPATH_LEN_DEFAULT); + //HD path is extracted also in account.c:slot_parseSlot. + MEMCPY(&hdPath, G_io_apdu_buffer + offset, sizeof(uint32_t) * HDPATH_LEN_DEFAULT); - const bool mainnet = hdPath[0] == HDPATH_0_DEFAULT && - hdPath[1] == HDPATH_1_DEFAULT; - - const bool testnet = hdPath[0] == HDPATH_0_TESTNET && - hdPath[1] == HDPATH_1_TESTNET; - - if (!mainnet && !testnet) { + if (!path_is_mainnet_or_testnet(hdPath)) { THROW(APDU_CODE_DATA_INVALID); } } diff --git a/app/src/crypto.c b/app/src/crypto.c index b15b2f5e..11ebd8e7 100644 --- a/app/src/crypto.c +++ b/app/src/crypto.c @@ -18,7 +18,7 @@ #include "coin.h" #include "zxmacros.h" -uint32_t hdPath[HDPATH_LEN_DEFAULT]; +flow_path_t hdPath; #if defined(TARGET_NANOS) || defined(TARGET_NANOX) #include "cx.h" @@ -62,23 +62,22 @@ __Z_INLINE cx_curve_t get_cx_curve(const uint32_t path[HDPATH_LEN_DEFAULT]) { } } -zxerr_t crypto_extractPublicKey(const uint32_t path[HDPATH_LEN_DEFAULT], uint8_t *pubKey, uint16_t pubKeyLen) { +zxerr_t crypto_extractPublicKey(const flow_path_t *path, uint8_t *pubKey, uint16_t pubKeyLen) { zemu_log_stack("crypto_extractPublicKey"); MEMZERO(pubKey, pubKeyLen); - cx_curve_t curve = get_cx_curve(path); + cx_curve_t curve = get_cx_curve(path->data); if (curve!=CX_CURVE_SECP256K1 && curve!=CX_CURVE_SECP256R1 ) { zemu_log_stack("extractPublicKey: invalid_crypto_settings"); return zxerr_invalid_crypto_settings; } - const uint32_t domainSize = 32; - const uint32_t pkSize = 1 + 2 * domainSize; - if (pubKeyLen < pkSize) { + if (pubKeyLen < PUBLIC_KEY_LEN) { zemu_log_stack("extractPublicKey: zxerr_buffer_too_small"); return zxerr_buffer_too_small; } + cx_ecfp_public_key_t cx_publicKey; cx_ecfp_private_key_t cx_privateKey; uint8_t privateKeyData[32]; @@ -88,7 +87,7 @@ zxerr_t crypto_extractPublicKey(const uint32_t path[HDPATH_LEN_DEFAULT], uint8_t TRY { zemu_log_stack("extractPublicKey: derive_node_bip32"); os_perso_derive_node_bip32(curve, - path, + path->data, HDPATH_LEN_DEFAULT, privateKeyData, NULL); @@ -101,12 +100,12 @@ zxerr_t crypto_extractPublicKey(const uint32_t path[HDPATH_LEN_DEFAULT], uint8_t } FINALLY { MEMZERO(&cx_privateKey, sizeof(cx_privateKey)); - MEMZERO(privateKeyData, domainSize); + MEMZERO(privateKeyData, PUBLIC_KEY_LEN); } } END_TRY; - memcpy(pubKey, cx_publicKey.W, pkSize); + memcpy(pubKey, cx_publicKey.W, PUBLIC_KEY_LEN); return zxerr_ok; } diff --git a/app/src/crypto.h b/app/src/crypto.h index a8952a03..09e0233d 100644 --- a/app/src/crypto.h +++ b/app/src/crypto.h @@ -45,11 +45,9 @@ typedef enum { void sha256(const uint8_t *message, uint16_t messageLen, uint8_t message_digest[CX_SHA256_SIZE]); -extern uint32_t hdPath[HDPATH_LEN_DEFAULT]; +extern flow_path_t hdPath; -zxerr_t crypto_extractPublicKey(const uint32_t path[HDPATH_LEN_DEFAULT], uint8_t *pubKey, uint16_t pubKeyLen); - -zxerr_t crypto_fillAddress(const uint32_t path[HDPATH_LEN_DEFAULT], uint8_t *buffer, uint16_t bufferLen, uint16_t *addrLen); +zxerr_t crypto_extractPublicKey(const flow_path_t *path, uint8_t *pubKey, uint16_t pubKeyLen); zxerr_t crypto_sign( const uint32_t path[HDPATH_LEN_DEFAULT], diff --git a/tests/testvectors.cpp b/tests/testvectors.cpp index 9f76f79a..433a0bbf 100644 --- a/tests/testvectors.cpp +++ b/tests/testvectors.cpp @@ -34,12 +34,12 @@ void check_testcase(const testcase_t &testcase) { parser_error_t err; // Define mainnet or testnet through derivation path - hdPath[0] = HDPATH_0_DEFAULT; - hdPath[1] = HDPATH_1_DEFAULT; + hdPath.data[0] = HDPATH_0_DEFAULT; + hdPath.data[1] = HDPATH_1_DEFAULT; if (tc.chainID == "Testnet" || tc.chainID == "Emulator") { - hdPath[0] = HDPATH_0_TESTNET; - hdPath[1] = HDPATH_1_TESTNET; + hdPath.data[0] = HDPATH_0_TESTNET; + hdPath.data[1] = HDPATH_1_TESTNET; } app_mode_set_expert(tc.expert); From 6524139552a1c1ac685e940cdcb9cc46f7cb5167 Mon Sep 17 00:00:00 2001 From: Robert Lukotka Date: Wed, 22 Sep 2021 21:54:11 +0200 Subject: [PATCH 07/10] Add address validation in set slot call Add 0x prefix for displayed adresses in slot and pubkey calls --- CMakeLists.txt | 1 + app/src/account.c | 33 +++++- app/src/account.h | 14 +++ app/src/addr.c | 2 +- app/src/coin.c | 58 ++++++++++ app/src/coin.h | 18 ++- app/src/common/app_main.c | 2 +- app/src/crypto.c | 2 +- app/src/parser.c | 50 +-------- js/test/transactions.spec.js | 12 +- ...asic-checks-show-address-expert-1-snap.png | Bin 633 -> 636 bytes ...hecks-show-address-secp-256-k-1-1-snap.png | Bin 633 -> 636 bytes ...hecks-show-address-secp-256-r-1-1-snap.png | Bin 633 -> 636 bytes ...basic-checks-slot-status-delete-2-snap.png | Bin 669 -> 694 bytes ...s-basic-checks-slot-status-full-2-snap.png | Bin 628 -> 656 bytes ...js-basic-checks-slot-status-set-2-snap.png | Bin 628 -> 0 bytes ...checks-slot-status-set-mainnet-1-snap.png} | Bin ...-checks-slot-status-set-mainnet-2-snap.png | Bin 0 -> 656 bytes ...checks-slot-status-set-mainnet-3-snap.png} | Bin ...checks-slot-status-set-mainnet-4-snap.png} | Bin ...checks-slot-status-set-mainnet-5-snap.png} | Bin ...-checks-slot-status-set-testnet-1-snap.png | Bin 0 -> 438 bytes ...-checks-slot-status-set-testnet-2-snap.png | Bin 0 -> 697 bytes ...-checks-slot-status-set-testnet-3-snap.png | Bin 0 -> 523 bytes ...-checks-slot-status-set-testnet-4-snap.png | Bin 0 -> 443 bytes ...-checks-slot-status-set-testnet-5-snap.png | Bin 0 -> 480 bytes ...basic-checks-slot-status-update-2-snap.png | Bin 669 -> 694 bytes ...basic-checks-slot-status-update-4-snap.png | Bin 697 -> 722 bytes tests_zemu/tests/basic.spec.js | 103 ++++++++++++++---- tests_zemu/tests/setup.js | 2 +- tests_zemu/tests/transactions.spec.js | 2 +- 31 files changed, 211 insertions(+), 88 deletions(-) create mode 100644 app/src/coin.c delete mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-2-snap.png rename tests_zemu/tests/__image_snapshots__/{basic-spec-js-basic-checks-slot-status-set-1-snap.png => basic-spec-js-basic-checks-slot-status-set-mainnet-1-snap.png} (100%) create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-2-snap.png rename tests_zemu/tests/__image_snapshots__/{basic-spec-js-basic-checks-slot-status-set-3-snap.png => basic-spec-js-basic-checks-slot-status-set-mainnet-3-snap.png} (100%) rename tests_zemu/tests/__image_snapshots__/{basic-spec-js-basic-checks-slot-status-set-4-snap.png => basic-spec-js-basic-checks-slot-status-set-mainnet-4-snap.png} (100%) rename tests_zemu/tests/__image_snapshots__/{basic-spec-js-basic-checks-slot-status-set-5-snap.png => basic-spec-js-basic-checks-slot-status-set-mainnet-5-snap.png} (100%) create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-1-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-2-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-3-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-4-snap.png create mode 100644 tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-5-snap.png diff --git a/CMakeLists.txt b/CMakeLists.txt index 12ff14ab..4daca0f8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -89,6 +89,7 @@ file(GLOB_RECURSE LIB_SRC ${CMAKE_CURRENT_SOURCE_DIR}/app/src/uint256.c ${CMAKE_CURRENT_SOURCE_DIR}/app/src/parser.c ${CMAKE_CURRENT_SOURCE_DIR}/app/src/parser_impl.c + ${CMAKE_CURRENT_SOURCE_DIR}/app/src/coin.c ${CMAKE_CURRENT_SOURCE_DIR}/app/src/json/json_parser.c app/src/base32.c app/src/crypto.c diff --git a/app/src/account.c b/app/src/account.c index fd00f3ad..b72505db 100644 --- a/app/src/account.c +++ b/app/src/account.c @@ -33,6 +33,9 @@ slot_store_t NV_CONST N_slot_store_impl __attribute__ ((aligned(64))); #define N_slot_store (*(NV_VOLATILE slot_store_t *)PIC(&N_slot_store_impl)) + + + uint8_t slot_is_empty(const account_slot_t *tmp) { return tmp->path.data[0] == 0; } @@ -73,7 +76,7 @@ zxerr_t slot_getItem(int8_t displayIdx, } case 1: { snprintf(outKey, outKeyLen, "Account"); - array_to_hexstr(outVal, outValLen, tmp_slot.account.data, 8); + array_to_hexstr_with_0x(outVal, outValLen, tmp_slot.account.data, 8); return zxerr_ok; } case 2: { @@ -97,7 +100,7 @@ zxerr_t slot_getItem(int8_t displayIdx, } case 1: { snprintf(outKey, outKeyLen, "Old Account"); - array_to_hexstr(outVal, outValLen, oldSlot->account.data, 8); + array_to_hexstr_with_0x(outVal, outValLen, oldSlot->account.data, 8); return zxerr_ok; } case 2: { @@ -109,7 +112,7 @@ zxerr_t slot_getItem(int8_t displayIdx, } case 3: { snprintf(outKey, outKeyLen, "New Account"); - array_to_hexstr(outVal, outValLen, tmp_slot.account.data, 8); + array_to_hexstr_with_0x(outVal, outValLen, tmp_slot.account.data, 8); return zxerr_ok; } case 4: { @@ -134,7 +137,7 @@ zxerr_t slot_getItem(int8_t displayIdx, } case 1: { snprintf(outKey, outKeyLen, "Old Account"); - array_to_hexstr(outVal, outValLen, oldSlot->account.data, 8); + array_to_hexstr_with_0x(outVal, outValLen, oldSlot->account.data, 8); return zxerr_ok; } case 2: { @@ -208,7 +211,7 @@ zxerr_t slot_parseSlot(uint8_t *buffer, uint16_t bufferLen) { //We copy account and path. Note that path is copied in app_main.c:extractHDPath (for sign transaction call). MEMCPY(&tmp_slot, buffer + 1, sizeof(account_slot_t)); - if (!path_is_mainnet_or_testnet(tmp_slot.path) && !path_is_empty(tmp_slot.path)) { + if (!path_is_mainnet(tmp_slot.path) && !path_is_testnet(tmp_slot.path) && !path_is_empty(tmp_slot.path)) { array_to_hexstr(bufferUI, sizeof(bufferUI), tmp_slot.account.data, 8); zemu_log(bufferUI); zemu_log("\n"); @@ -221,6 +224,26 @@ zxerr_t slot_parseSlot(uint8_t *buffer, uint16_t bufferLen) { return zxerr_out_of_bounds; } + if (!path_is_empty(tmp_slot.path)) { + uint64_t account = 0; + //LE <-> BE conversion necessary to validate account + for(int i=0; i>= 1; + } + + return parity == 0; +} + diff --git a/app/src/coin.h b/app/src/coin.h index 0857aab5..b5594658 100644 --- a/app/src/coin.h +++ b/app/src/coin.h @@ -42,22 +42,30 @@ typedef struct { } flow_path_t; -__Z_INLINE bool path_is_mainnet_or_testnet(const flow_path_t path) { - return (path.data[0] == HDPATH_0_DEFAULT && path.data[1] == HDPATH_1_DEFAULT) || - (path.data[0] == HDPATH_0_TESTNET && path.data[1] == HDPATH_1_TESTNET); +__Z_INLINE bool path_is_mainnet(const flow_path_t path) { + return (path.data[0] == HDPATH_0_DEFAULT && path.data[1] == HDPATH_1_DEFAULT); +} + +__Z_INLINE bool path_is_testnet(const flow_path_t path) { //or emulatornet + return (path.data[0] == HDPATH_0_TESTNET && path.data[1] == HDPATH_1_TESTNET); } __Z_INLINE bool path_is_empty(const flow_path_t path) { return path.data[0] == 0 && path.data[1] == 0; } -#define PUBLIC_KEY_LEN 65u +#define PUBLIC_KEY_LEN 65u typedef enum { ADDR_SECP256K1 = 0, } address_kind_e; -#define VIEW_ADDRESS_OFFSET_SECP256K1 (SECP256K1_PK_LEN ) +#define CODEWORD_MAINNET ((uint64_t) 0x0000000000000000) +#define CODEWORD_TESTNET ((uint64_t) 0x6834ba37b3980209) +#define CODEWORD_EMULATORNET ((uint64_t) 0x1cb159857af02018) + +bool validateChainAddress(uint64_t chainCodeWord, uint64_t address); + #define COIN_AMOUNT_DECIMAL_PLACES 0 // FIXME: Adjust this #define COIN_SUPPORTED_TX_VERSION 0 diff --git a/app/src/common/app_main.c b/app/src/common/app_main.c index d16ebc4d..b312956b 100644 --- a/app/src/common/app_main.c +++ b/app/src/common/app_main.c @@ -98,7 +98,7 @@ void extractHDPath(uint32_t rx, uint32_t offset) { //HD path is extracted also in account.c:slot_parseSlot. MEMCPY(&hdPath, G_io_apdu_buffer + offset, sizeof(uint32_t) * HDPATH_LEN_DEFAULT); - if (!path_is_mainnet_or_testnet(hdPath)) { + if (!path_is_mainnet(hdPath) && !path_is_testnet(hdPath)) { THROW(APDU_CODE_DATA_INVALID); } } diff --git a/app/src/crypto.c b/app/src/crypto.c index 11ebd8e7..6b72a4f7 100644 --- a/app/src/crypto.c +++ b/app/src/crypto.c @@ -100,7 +100,7 @@ zxerr_t crypto_extractPublicKey(const flow_path_t *path, uint8_t *pubKey, uint16 } FINALLY { MEMZERO(&cx_privateKey, sizeof(cx_privateKey)); - MEMZERO(privateKeyData, PUBLIC_KEY_LEN); + MEMZERO(privateKeyData, sizeof(privateKeyData)); } } END_TRY; diff --git a/app/src/parser.c b/app/src/parser.c index 41f7beed..8afc39d4 100644 --- a/app/src/parser.c +++ b/app/src/parser.c @@ -76,50 +76,6 @@ parser_error_t parser_getNumItems(const parser_context_t *ctx, uint8_t *num_item return PARSER_OK; } -// based on Dapper provided code at https://github.com/onflow/flow-go-sdk/blob/96796f0cabc1847d7879a5230ab55fd3cdd41ae8/address.go#L286 - -const uint16_t linearCodeN = 64; -const uint64_t codeword_mainnet = 0; -const uint64_t codeword_testnet = 0x6834ba37b3980209; -const uint64_t codeword_emulatornet = 0x1cb159857af02018; - -const uint32_t parityCheckMatrixColumns[] = { - 0x00001, 0x00002, 0x00004, 0x00008, - 0x00010, 0x00020, 0x00040, 0x00080, - 0x00100, 0x00200, 0x00400, 0x00800, - 0x01000, 0x02000, 0x04000, 0x08000, - 0x10000, 0x20000, 0x40000, 0x7328d, - 0x6689a, 0x6112f, 0x6084b, 0x433fd, - 0x42aab, 0x41951, 0x233ce, 0x22a81, - 0x21948, 0x1ef60, 0x1deca, 0x1c639, - 0x1bdd8, 0x1a535, 0x194ac, 0x18c46, - 0x1632b, 0x1529b, 0x14a43, 0x13184, - 0x12942, 0x118c1, 0x0f812, 0x0e027, - 0x0d00e, 0x0c83c, 0x0b01d, 0x0a831, - 0x0982b, 0x07034, 0x0682a, 0x05819, - 0x03807, 0x007d2, 0x00727, 0x0068e, - 0x0067c, 0x0059d, 0x004eb, 0x003b4, - 0x0036a, 0x002d9, 0x001c7, 0x0003f, -}; - -bool validateChainAddress(uint64_t chainCodeWord, uint64_t address) { - uint64_t codeWord = address ^chainCodeWord; - - if (codeWord == 0) { - return false; - } - - uint64_t parity = 0; - for (uint16_t i = 0; i < linearCodeN; i++) { - if ((codeWord & 1) == 1) { - parity ^= parityCheckMatrixColumns[i]; - } - codeWord >>= 1; - } - - return parity == 0; -} - parser_error_t chainIDFromPayer(const flow_payer_t *v, chain_id_e *chainID) { if (v->ctx.bufferLen != 8) { return PARSER_INVALID_ADDRESS; @@ -131,17 +87,17 @@ parser_error_t chainIDFromPayer(const flow_payer_t *v, chain_id_e *chainID) { address += v->ctx.buffer[i]; } - if (validateChainAddress(codeword_mainnet, address)) { + if (validateChainAddress(CODEWORD_MAINNET, address)) { *chainID = CHAIN_ID_MAINNET; return PARSER_OK; } - if (validateChainAddress(codeword_testnet, address)) { + if (validateChainAddress(CODEWORD_TESTNET, address)) { *chainID = CHAIN_ID_TESTNET; return PARSER_OK; } - if (validateChainAddress(codeword_emulatornet, address)) { + if (validateChainAddress(CODEWORD_EMULATORNET, address)) { *chainID = CHAIN_ID_EMULATOR; return PARSER_OK; } diff --git a/js/test/transactions.spec.js b/js/test/transactions.spec.js index 75172703..0a44a7b7 100644 --- a/js/test/transactions.spec.js +++ b/js/test/transactions.spec.js @@ -88,9 +88,11 @@ async function transactionTest(txHexBlob, txExpectedPageCount, sigAlgo, hashAlgo const path = getKeyPath(sigAlgo.code, hashAlgo.code); - const pkResponse = await app.getAddressAndPubKey(path); - expect(pkResponse.returnCode).equal(0x9000); - expect(pkResponse.errorMessage).equal("No errors"); + const res1 = await app.setSlot(5, "e467b9dd11fa00df", path) + expect(res1.returnCode).equal(0x9000) + const res2 = await app.getAddressAndPubKey(5) + expect(res2.returnCode).equal(0x9000) + expect(res2.errorMessage).equal("No errors"); let resp = await app.sign(path, txBlob); @@ -111,7 +113,7 @@ async function transactionTest(txHexBlob, txExpectedPageCount, sigAlgo, hashAlgo // Verify transaction signature against the digest const ec = new EC(sigAlgo.name); const sig = resp.signatureDER.toString("hex"); - const pk = pkResponse.publicKey.toString("hex"); + const pk = res2.publicKey.toString("hex"); const signatureOk = ec.verify(digest, sig, pk, 'hex'); expect(signatureOk).equal(true); @@ -157,7 +159,7 @@ describe("Show address", () => { test("Test", async () => { const transport = await TransportNodeHid.create(); const app = new FlowApp(transport); - const res1 = await app.setSlot(0, "0123456789ABCDEF", "m/44\'/539\'/512\'/0/0") + const res1 = await app.setSlot(0, "e467b9dd11fa00df", "m/44\'/539\'/512\'/0/0") console.log(res1) const res2 = await app.showAddressAndPubKey(0) console.log(res2) diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-1-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-1-snap.png index a906325c9d7f56c8e74efbddc2232674afe2ec9d..8d670681c66facb8fc01c755ae4f76ac48baaac9 100644 GIT binary patch delta 611 zcmey#@`q)DO1-nEi(^OySsuCA=SjE`H$H*B-nJR#g zNzMr#UgyIKpQof`I6Rv^_5PQp@M{fc+?b7|c~AK8o_JHQ1XR|{!+XNUR#Ixh&&;R2 zDsfKCMj(+nWmzCC;a3WFIWrsWkFInz3O=0K4st@JD({J$6BinIjDWVCxL|Nn0chps ziv`o$9G|^BQRCuZDSPeE%L`(D?b{0a*`(xFJ@jJcHSys!x!`d4Ns>H>O zZQAv`CNY@{5~s6Ctuwh$5PUd%O-(4X5zxN-*9w+0&eR54smBZS!-*PiW+Rgv6QD&v z$L}@)dJT#`b7=QpYB+PD;mj3-lVAngO?`kWYF0gTHjDkuCfAYeIaMPHH3u6)|%uLCUNKuoNdZ)Tz4qx`e zk__(U&e0aT*rfWho}Q4JU}?nov_r})rO(5`aur)jUk*%#>@8prvrM_1s5^)6EqnGm V?KKh4+@>=Cfv2mV%Q~loCIEw+2hacj literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfciIx;TbZFupw)nRh2Z#QC7J zMoF!r8eRx8oRNI*hhcpv~%_cG@ba=fFD-};q$#8hqKX?BZ&i*xw zGn?5`_@pLC@}9Wk0#wz^17z4rN=^8g`+TN~oD;KAH&7%d?@GfNdF%ca4?l78p7@jd zT<~O1+i6~@36+`8Cz>b}D>yS7ow#6-GGSrj37}ghSZ4f~(&qZ?-HAP}4m;;uJNER7 zncnhkpJk=QW;VCErkU`}yl9Ye?`p%D3=5#m&S{w-s{4%NVWrOt*;4G*GS1{T)iH|S z_&Jmp=w=YQP@rHeH6b#^joE0u$sW&VQ`u7DCQ9-yW}LYchW@W(ocVsk=iromq0B}m zcUs$+LALM#{eS7hx;91U!mdKI;Vst0B!&kUjP6A diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-1-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-1-snap.png index a906325c9d7f56c8e74efbddc2232674afe2ec9d..8d670681c66facb8fc01c755ae4f76ac48baaac9 100644 GIT binary patch delta 611 zcmey#@`q)DO1-nEi(^OySsuCA=SjE`H$H*B-nJR#g zNzMr#UgyIKpQof`I6Rv^_5PQp@M{fc+?b7|c~AK8o_JHQ1XR|{!+XNUR#Ixh&&;R2 zDsfKCMj(+nWmzCC;a3WFIWrsWkFInz3O=0K4st@JD({J$6BinIjDWVCxL|Nn0chps ziv`o$9G|^BQRCuZDSPeE%L`(D?b{0a*`(xFJ@jJcHSys!x!`d4Ns>H>O zZQAv`CNY@{5~s6Ctuwh$5PUd%O-(4X5zxN-*9w+0&eR54smBZS!-*PiW+Rgv6QD&v z$L}@)dJT#`b7=QpYB+PD;mj3-lVAngO?`kWYF0gTHjDkuCfAYeIaMPHH3u6)|%uLCUNKuoNdZ)Tz4qx`e zk__(U&e0aT*rfWho}Q4JU}?nov_r})rO(5`aur)jUk*%#>@8prvrM_1s5^)6EqnGm V?KKh4+@>=Cfv2mV%Q~loCIEw+2hacj literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfciIx;TbZFupw)nRh2Z#QC7J zMoF!r8eRx8oRNI*hhcpv~%_cG@ba=fFD-};q$#8hqKX?BZ&i*xw zGn?5`_@pLC@}9Wk0#wz^17z4rN=^8g`+TN~oD;KAH&7%d?@GfNdF%ca4?l78p7@jd zT<~O1+i6~@36+`8Cz>b}D>yS7ow#6-GGSrj37}ghSZ4f~(&qZ?-HAP}4m;;uJNER7 zncnhkpJk=QW;VCErkU`}yl9Ye?`p%D3=5#m&S{w-s{4%NVWrOt*;4G*GS1{T)iH|S z_&Jmp=w=YQP@rHeH6b#^joE0u$sW&VQ`u7DCQ9-yW}LYchW@W(ocVsk=iromq0B}m zcUs$+LALM#{eS7hx;91U!mdKI;Vst0B!&kUjP6A diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-1-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-1-snap.png index a906325c9d7f56c8e74efbddc2232674afe2ec9d..8d670681c66facb8fc01c755ae4f76ac48baaac9 100644 GIT binary patch delta 611 zcmey#@`q)DO1-nEi(^OySsuCA=SjE`H$H*B-nJR#g zNzMr#UgyIKpQof`I6Rv^_5PQp@M{fc+?b7|c~AK8o_JHQ1XR|{!+XNUR#Ixh&&;R2 zDsfKCMj(+nWmzCC;a3WFIWrsWkFInz3O=0K4st@JD({J$6BinIjDWVCxL|Nn0chps ziv`o$9G|^BQRCuZDSPeE%L`(D?b{0a*`(xFJ@jJcHSys!x!`d4Ns>H>O zZQAv`CNY@{5~s6Ctuwh$5PUd%O-(4X5zxN-*9w+0&eR54smBZS!-*PiW+Rgv6QD&v z$L}@)dJT#`b7=QpYB+PD;mj3-lVAngO?`kWYF0gTHjDkuCfAYeIaMPHH3u6)|%uLCUNKuoNdZ)Tz4qx`e zk__(U&e0aT*rfWho}Q4JU}?nov_r})rO(5`aur)jUk*%#>@8prvrM_1s5^)6EqnGm V?KKh4+@>=Cfv2mV%Q~loCIEw+2hacj literal 633 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfciIx;TbZFupw)nRh2Z#QC7J zMoF!r8eRx8oRNI*hhcpv~%_cG@ba=fFD-};q$#8hqKX?BZ&i*xw zGn?5`_@pLC@}9Wk0#wz^17z4rN=^8g`+TN~oD;KAH&7%d?@GfNdF%ca4?l78p7@jd zT<~O1+i6~@36+`8Cz>b}D>yS7ow#6-GGSrj37}ghSZ4f~(&qZ?-HAP}4m;;uJNER7 zncnhkpJk=QW;VCErkU`}yl9Ye?`p%D3=5#m&S{w-s{4%NVWrOt*;4G*GS1{T)iH|S z_&Jmp=w=YQP@rHeH6b#^joE0u$sW&VQ`u7DCQ9-yW}LYchW@W(ocVsk=iromq0B}m zcUs$+LALM#{eS7hx;91U!mdKI;Vst0B!&kUjP6A diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-delete-2-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-delete-2-snap.png index a44bc277d1874b192bf609be78203a9f8d85b997..50060e766c9bc3ac89d9cca79fee0918afcc94d4 100644 GIT binary patch literal 694 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi46x;TbZFupw)7<4;|!R4T_ z*4cmJHu9g(tS!)XI%e2rVY4Lfqqn|_BeRkJ^$p6#rV7QO%tr6C9G+c}noybjmQ{S$ zi&m9+>lkOwWlOPJ$|xx{;ini-MhnEatJNvK_kydw%Ez~+HBpCEj7@xuoPm_70tlJp zoZ#VgKCJNB#K=V9bJkPW!`*Qo>Mt~$x$+^A_e73~!sd%WcEg$2lx1uw6BaVgtaoZ- zONm>vXF?#ek-ZnQQ8N$k37IHnqxE5NCxP1fFBSY+$~g1B?jOIlHhEVz$rQe|j5D`~ z-J4WtB`H;wvToAChd`6eQZgLaB&F0OQ!-`%jZK_%Go!)-=n4^|>l_-(4@X(Z-a7R1 zf|%Szhr`peZe%WKY+KpLCY3QmDlcon!)0ydra2}THe7Z%?8nSop1B}#d1KpbDZ8Yn zi=`%jyu76i7!GAA%i4CE0DY+NS(Ep~g$)-QczC6GPuu~z4(JUCTEF2_C|Ju(DYcos zY$+K(wzPRZ)8l=gwZrR~*37wW3lo6`nx)8H`>usy zT>0=e(ENW>r>?)$a0VE9z94hw%*%edI3+_O<)23z$TdbLJVxc2Gk_+0rU63_7^(kO zwaH3KvCZ^sYjXq%1u~s_xk1dYeOrOmme$4D3m&cr>s!M(Q&~8mZ$+Z>vksOii-Bq7 p1Wd){g}QV2d>t%huK~mOA9MF{Pk-p%le8W`x!>xHIMdH8u37IH-ekLV%LWlRnpAcrF{Z|^!tTa{lyg2&( zj?1y{RX#qGnoxP6;Y_g9goTVV%YoQj)tTAo{%+4luJ22(TYK)Q=Jn5xNO3!?WGp2% zb15STUEDBHl6P_9i9M2%QWJhYJJ#JMzW1?mhC^EBk6hjpIZ_jDnkZ}r+N)*c&1`f6 zX!?JrHnxzEU-PE?z;k+km-an`|GO5urI-yXU z1$6FK*Wm{C&749saebE)AB(3?Q{lxa}8ne4p$V8uE{5E`gS4q||j_uI-ed`OfqN$mCbks5^^7x5H%m>Z%zdf9E0f!({dxlrZ~Mi9 z3?q|0+q@pFGvD>HSEX)En`c_ajFdJYmE{0J88;?KO0~5)KAVt|;qdI}so2A@`9Drd zO}LrikhYj{=1Rty?I(PAPbfGu8?~zgiE{07qb!GKAEYKof;4Oj5d8^a>3#76$fTs6CYmrtOXC9dEaN<$XJlLys>RAo0Qxohr@o%K#3nc zQ_q9^;PC9UR2k5ci8Fz64QDPioSAN-;C$GP*~lcvMB(!Uwv;v)+IRR=Imj(Q&(BCP zlbW#b;b|$gne8TfRzLJL%Aa&IQ$mUj=ql%DnY`zte%=OpQwpf6GW@X0=8Fwy+Rj{Q zIMXgQVW!kFHlQz-p8#3~6#K9R#5*7HQ_skR$4Hvjf1;$+zBLa6r1}z`#smE>0aE^N z1u!g6`tY_Z8k_uy58LO>Yy=EX`ANW#e)cJUZOt?u-sUs%CodSBv~dANh$8RgGgk~w z`T*n4v#o9aszi67XxgNOi4$g~WK>LRD6(AJdU_=|+}=oKSgf9EobB-J49gVbtQ!+7 yl^LI|k(yw+8KwdlveScw1N4?}EwJ4BpTXR~VpZVejSGP(jlt8^&t;ucLK6Uf02%%O literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfdtrx;TbZFupx_F;Ci4#QEUi z#vlLX&#)ic=OLBJeK70#H>XoRQ-7??S8-%E@?Xz5^K`S+gr6^7_*Y#POPLqPY-D27 z+qPWI`LMgW=bqQndtXX>?pf33nr5P7v^a5Mq|^i;lH`@1dC@?s?M(2bg^V-f^Y&y{ zTsPmdi7my9_e2g@MP)TT0!|kKH`H zCv5h%ovy#oaOOQwC6BjmsYzDe^8e57RSY8oqFG%iA=8nr?#S?czXcL9vGkUvXSSc{VN2Q9dgjsx zfteRS)LU1i@}8*aZoBAkIHQ6K$ZVBfzlw2YzVhZwhiCc93u?j+Pq=BqGt>9*1dyFT zpXvakU@3^|2J!v`G6OvYbfONJ0((&rq*t3mWBO&Q9dm9Se0qgXZ+TgP<<{oYD`jK+ g-aFVdQ&MBb@025viy8r+H diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-2-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-2-snap.png deleted file mode 100644 index 377a5aeea62c8fb2029c66ca6dfed877c32a1201..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 628 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfdtrx;TbZFupx_F;Ci4#QEUi z#vlLX&#)ic=OLBJeK70#H>XoRQ-7??S8-%E@?Xz5^K`S+gr6^7_*Y#POPLqPY-D27 z+qPWI`LMgW=bqQndtXX>?pf33nr5P7v^a5Mq|^i;lH`@1dC@?s?M(2bg^V-f^Y&y{ zTsPmdi7my9_e2g@MP)TT0!|kKH`H zCv5h%ovy#oaOOQwC6BjmsYzDe^8e57RSY8oqFG%iA=8nr?#S?czXcL9vGkUvXSSc{VN2Q9dgjsx zfteRS)LU1i@}8*aZoBAkIHQ6K$ZVBfzlw2YzVhZwhiCc93u?j+Pq=BqGt>9*1dyFT zpXvakU@3^|2J!v`G6OvYbfONJ0((&rq*t3mWBO&Q9dm9Se0qgXZ+TgP<<{oYD`jK+ g-aFVdQ&MBb@025viy8r+H diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-1-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-1-snap.png similarity index 100% rename from tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-1-snap.png rename to tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-1-snap.png diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-2-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-2-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..d10da903e89c92845de3253ac11cb2f359dea9d0 GIT binary patch literal 656 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFffICx;TbZFupw)7<9*j!R25$ z*VVuLG4flDWtSaxYG`MycJ-L~X!<>mCbks5^^7x5H%m>Z%zdf9E0f!({dxlrZ~Mi9 z3?q|0+q@pFGvD>HSEX)En`c_ajFdJYmE{0J88;?KO0~5)KAVt|;qdI}so2A@`9Drd zO}LrikhYj{=1Rty?I(PAPbfGu8?~zgiE{07qb!GKAEYKof;4Oj5d8^a>3#76$fTs6CYmrtOXC9dEaN<$XJlLys>RAo0Qxohr@o%K#3nc zQ_q9^;PC9UR2k5ci8Fz64QDPioSAN-;C$GP*~lcvMB(!Uwv;v)+IRR=Imj(Q&(BCP zlbW#b;b|$gne8TfRzLJL%Aa&IQ$mUj=ql%DnY`zte%=OpQwpf6GW@X0=8Fwy+Rj{Q zIMXgQVW!kFHlQz-p8#3~6#K9R#5*7HQ_skR$4Hvjf1;$+zBLa6r1}z`#smE>0aE^N z1u!g6`tY_Z8k_uy58LO>Yy=EX`ANW#e)cJUZOt?u-sUs%CodSBv~dANh$8RgGgk~w z`T*n4v#o9aszi67XxgNOi4$g~WK>LRD6(AJdU_=|+}=oKSgf9EobB-J49gVbtQ!+7 yl^LI|k(yw+8KwdlveScw1N4?}EwJ4BpTXR~VpZVejSGP(jlt8^&t;ucLK6Uf02%%O literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-3-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-3-snap.png similarity index 100% rename from tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-3-snap.png rename to tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-3-snap.png diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-4-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-4-snap.png similarity index 100% rename from tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-4-snap.png rename to tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-4-snap.png diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-5-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-5-snap.png similarity index 100% rename from tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-5-snap.png rename to tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-5-snap.png diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-1-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..3e4f7ec12c2f27dc74b30749576b570c8fd9284e GIT binary patch literal 438 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi77x;TbZFupx_G3%~@h|5LW zuIJmm&-{J!*}zmuu<+8Q0FEC~QQmt_Itp!{^2jC4N^`=`H>&N|oB2HBzSll4i>q(s z`OW-|{r{AvzX#X8;rBTB?}0Mo!wD?1MH7y!UE=VpKZwU@iN(a7Q$QvCGma_Gmnl&UEPR zQj3X_K$Bv-9G{(IX-SRhP0a!!ZSRjEK@)%`F4?i@Sm;uRHj(KQAFT(P;>wjWLGkF- z9Gk@=%|6qUCcFe{cIHZH6FE_$>6fxgB(}@%naeZDT$|YzIc)I$ztaD0e0stS%v(5kj literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-2-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-2-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..445abc15b82188782c423e4863553dfa6284d646 GIT binary patch literal 697 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcWEx;TbZFupw)7^EC2;(Soq zJ@Y^Jwf19sGV)3i7s$%JFbtlmS@&|PN`}L;m!=BEyMmdG@?(E>ue;TB=5n?}Tif!B zAFiZiRAf&+(jE75RrsVI8>QOLTrx3R zL)Y~`PD)L5shhH-Cp7`_b(0ibjRYoVE?%~w1cV#v*mzofXWOp9W<`X?^AcuSo=FnJvcvped z7VhQFw||&RiOt+?qGL2a>&8To4!^@n#z1O%wuF&2uX9=^i0VF*Az>t+69|a z;0ZrNn2o%d!D7K6UxCmaV5r$Zh<16{2r3&;j8lJTsRj zx~FB{nE3O&X-#YIe%H1(*EAD_;>C$4dfHr{>49u?0ND)|*bP*#f3@LEM#Yt5;gc68 zP6P+!i5ibIlQ$rX|4ck{2`Ibc;)iu@{-z3>l{cG!+>*z8qNcrf@ubS>XD)33ioF3^ zu$?XC-L-}@LHzroLG!$8_0fy>sVBq#D14Gb#OJNA_37NaCmlx*BL>``Cxrp0c vt@+HvSPR)(Krv1Y_p2LD$V`Q5`_29&M6Zf%Wq%YfNiul4`njxgN@xNAYc?@b literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-3-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-3-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..6d3222aaa70447c9f1eee2ff33ef31d0c19d372d GIT binary patch literal 523 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfd;7ba4!+V0?SfyXdw9gY!Z5 zX$Ak8lN&vP4YiX`?{8h(F(>b1_<9vbW+VT#iAtYyc~8i=F&nMV{p%f`>-bC{WrAZ{ zo4={dEFRwVu_}d^wPU|}3AJA}n7A-8Ln5WEZSI-NlNU116c^8v%Bwnh@#GsRHc6=o zGf%vcnowC~WTH@9{Lsw}WaeSNwCe>~yeIbT_~6vWmcr-wEY`^R@JbVf&+B{ZPhQv{ z69BX|w!-(>2dQ^i5-EJ{&*T_WE!Xxwy<#>k_;$sXHhxndDK*~RY(Qdi+rmaRsf-yW z7Ys5NG`4vjUXpm-;czTSQtsg)Wz(7!51n~W@bI3v@L?TWN|{lfbImMpT5%lmm1FO2D;bzncmFZDf?WXMW@WW+3KF*@GO@1#Gf5NKQ5PIo4I($ zhc!Uun?MHcZquI#@+Q#rE7?;1iA(Qao0zd6G2@0Q53dOi@9Fb9KHN@G1KI*2bnG7= zGR|^%b{eGNO^V&s4U>Tyje#KuvVZ1@3kE0tm?8N!!Y?=3ax2v1SUC3CAMZUBQTQzl PjARB+S3j3^P62fe%lSYt`0Y+ znckRYhK6=bVw2joKfOSdcX`{}_d7oFO39t@;pIUI^X^2+-^OFnU-frt0RpUe+0rTmOe%#n(lRO$IlbLR3C zkdc#Srr1pbO4}Ik;F>x4Ofav$=^ocKphfqTj7={%96mmw($!(-t~SqSj)zq?+e+nl zOXqkC2W(5_-L@2t?*3roEl;_3so~5iw);+Ok|`M#-Dmz^`k?^21W{l Mr>mdKI;Vst03N8v5&!@I literal 0 HcmV?d00001 diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-5-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-5-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..d764b119d8ccd0257c70cef19c143e18f8a22d97 GIT binary patch literal 480 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcCnba4!+V0?QpFz>d5fXl(_ zEWiJ;&+F$i?dkJaK)}rN0*I9y@k2p+*+LGE z@(GVz+C+TQcHKL5_k_>?bEnFuB&lBxGMPDT(a9}9@n5MA^MWQk3f7$E<9#tDs%tV( z%qnV!v}B5$*T;aaW|7?@m!F5toBBxA=yI)2jk*#4Nt2m#d5o-QzRY>Jdt#>MtTSIq znGP8T?Qu!l)jzd-f~AMy-OGorrYw{80P61#yQg~ei~Pw6OfzG-QtYC3Hl6A8@izRc zZnVUqP2|L%yoaGimwQ3d?qTaDft=*;S*TFF6X*&Jqxq3Lq-Rb`s@gww^@%;PUCcA5 zJ#u)aaMZI)Z8OlVZW}+W5>eOGo4)9z0?l1bPJMzlm#N6py9?8L?fl zKwt4Mo$)W{VII(j?I{x+*(5<4<|!HPYJKnU%sb_uSC^Wx6yrlaNWi=ak~y(OMBQk& z2s;p4&%DUNp$xKdive$LVhYfX6)Y{85!{zAh%HlkOwWlOPJ$|xx{;ini-MhnEatJNvK_kydw%Ez~+HBpCEj7@xuoPm_70tlJp zoZ#VgKCJNB#K=V9bJkPW!`*Qo>Mt~$x$+^A_e73~!sd%WcEg$2lx1uw6BaVgtaoZ- zONm>vXF?#ek-ZnQQ8N$k37IHnqxE5NCxP1fFBSY+$~g1B?jOIlHhEVz$rQe|j5D`~ z-J4WtB`H;wvToAChd`6eQZgLaB&F0OQ!-`%jZK_%Go!)-=n4^|>l_-(4@X(Z-a7R1 zf|%Szhr`peZe%WKY+KpLCY3QmDlcon!)0ydra2}THe7Z%?8nSop1B}#d1KpbDZ8Yn zi=`%jyu76i7!GAA%i4CE0DY+NS(Ep~g$)-QczC6GPuu~z4(JUCTEF2_C|Ju(DYcos zY$+K(wzPRZ)8l=gwZrR~*37wW3lo6`nx)8H`>usy zT>0=e(ENW>r>?)$a0VE9z94hw%*%edI3+_O<)23z$TdbLJVxc2Gk_+0rU63_7^(kO zwaH3KvCZ^sYjXq%1u~s_xk1dYeOrOmme$4D3m&cr>s!M(Q&~8mZ$+Z>vksOii-Bq7 p1Wd){g}QV2d>t%huK~mOA9MF{Pk-p%le8W`x!>xHIMdH8u37IH-ekLV%LWlRnpAcrF{Z|^!tTa{lyg2&( zj?1y{RX#qGnoxP6;Y_g9goTVV%YoQj)tTAo{%+4luJ22(TYK)Q=Jn5xNO3!?WGp2% zb15STUEDBHl6P_9i9M2%QWJhYJJ#JMzW1?mhC^EBk6hjpIZ_jDnkZ}r+N)*c&1`f6 zX!?JrHnxzEU-PE?z;k+km-an`|GO5urI-yXU z1$6FK*Wm{C&749saebE)AB(3?Q{lxa}8ne4p$V8uE{5E`gS4q||j_uI-ed`OfqN$==l#CxC%)BN%yw*S%p1q*4ZDk{y)G{`yj2oFZ zGG|C-fJ72A7Ccl;$*6dJWOZA3?Lp&AhqMfdlnjS9HVCoqQo|WPW+Q9f6F$5rVqDU) z9M~j*F3|uHrH`ie0G%UhWTH^K?BQ*x36elPX`Z|%{uDow2Px1pD!;g44_nH;TNU1I zZSjiEhh0G`CM;x}>3>q8`OGAsn)gSljrO~>wRr;3vn<{dZ%$lj;4w1sF*(*+I-ed#*H`xl$kuvCS3UlsG)|2E~Dl-0LG-Q-Bfl4;Y@F&yBa=TX+KfS>lX-ZX&!{*bUduA&@Fp`p@7oqSxyhxxCTm_DIVCkA za%RJ(MQyS(ML9KAXE~&$O1Ce~m6^7!Fyhv+#7w4BiIG5ozl=+aN_?N#E;|5Bs|=p5 KelF{r5}E)P^fY7u literal 697 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfcWEx;TbZFupx_(ND!w#QEUk zpx^)PZ}7+MnC0nvXi+Px)QnXeAHC&0n%Gj_En=MM%WO0sNCjs(JX^VV{|m?H2|HJ} z?apv$Ys+8!FfS#e;?;x}m0u40w~E4zO!lm3WRr3`ye#qZhcsT33mZ%>I2^v@z|1?l z%@<6Y=7w*E;O7m=6!#y;S5j@*k#+L_n!m`ZddxODCM`Fai+cOAJ4Wn zeMRTPt3irE%EV79G@sElRrq|RcX`Ub9vja)od*j= zrp$xMRxShSIs>%s-s=auC;XfyHQ{IUU5m+Wil4Q3Pwa_2tn_(4&_Usu4$t=H{V4$o zb)5kQTJQ-S-t|hxQt#eAP|pT(O?p5vv>g~K?mIpP1H&T|6yASwS*Co?k^p-kQ^E*n z`DP&Heb_AxOeukQ`dJQXmkofv0)~(QP?Ix+I#I*I__QdBeR{C expect(image).toMatchImageSnapshot()); + + const resp = await respRequest; + console.log(resp); + expect(resp.returnCode).toEqual(0x9000); + + // Set slot 10, testnet, wrong account + const wrongAccount = "d60262a2ea03538c" + let respRequest2 = app.setSlot(10, wrongAccount, expectedPath); + const resp2 = await respRequest2; + console.log(resp2); + expect(resp2.returnCode).toEqual(0x6984); + + } finally { + await sim.close(); + } + }); + + test("slot status - set - bad net", async function () { + const sim = new Zemu(APP_PATH); + try { + await sim.start(simOptions); + const app = new FlowApp(sim.getTransport()); + + const expectedAccount = "8c5303eaa26202d6" + const scheme = FlowApp.Signature.SECP256K1 | FlowApp.Hash.SHA2_256; + const expectedPath = `m/44'/2'/${scheme}'/0/0`; + let respRequest = app.setSlot(10, expectedAccount, expectedPath); + const resp = await respRequest; + console.log(resp); + expect(resp.returnCode).toEqual(0x6984); + } finally { await sim.close(); } @@ -123,7 +183,7 @@ describe("Basic checks", function () { const app = new FlowApp(sim.getTransport()); // Set slot 10 - const expectedAccount = "0001020304050607" + const expectedAccount = "e467b9dd11fa00df" const scheme = FlowApp.Signature.SECP256K1 | FlowApp.Hash.SHA2_256; let expectedPath = `m/44'/539'/${scheme}'/0/0`; let respRequest = app.setSlot(10, expectedAccount, expectedPath); @@ -165,7 +225,7 @@ describe("Basic checks", function () { const app = new FlowApp(sim.getTransport()); // Set slot 10 - const expectedAccount = "0001020304050607" + const expectedAccount = "e467b9dd11fa00df" const scheme = FlowApp.Signature.SECP256K1 | FlowApp.Hash.SHA2_256; let expectedPath = `m/44'/539'/${scheme}'/0/0`; let respRequest = app.setSlot(10, expectedAccount, expectedPath); @@ -224,7 +284,7 @@ describe("Basic checks", function () { expect(respSlot.errorMessage).toEqual("Empty Buffer"); // Set slot 10 - const expectedAccount = "0001020304050607" + const expectedAccount = "e467b9dd11fa00df" const scheme = FlowApp.Signature.SECP256K1 | FlowApp.Hash.SHA2_256; const expectedPath = `m/44'/539'/${scheme}'/0/0`; let respSetRequest = app.setSlot(10, expectedAccount, expectedPath); @@ -272,7 +332,7 @@ describe("Basic checks", function () { const scheme = FlowApp.Signature.SECP256K1 | FlowApp.Hash.SHA2_256; const path = `m/44'/539'/${scheme}'/0/0`; - const address = "0123456789abcdef" + const address = "e467b9dd11fa00df" await prepareSlot(sim, app, 0, address, path) @@ -283,7 +343,7 @@ describe("Basic checks", function () { expect(resp.returnCode).toEqual(0x9000); expect(resp.errorMessage).toEqual("No errors"); - const expected_address_string = "0123456789abcdef"; + const expected_address_string = "e467b9dd11fa00df"; const expected_pk = "04d7482bbaff7827035d5b238df318b10604673dc613808723efbd23fbc4b9fad34a415828d924ec7b83ac0eddf22ef115b7c203ee39fb080572d7e51775ee54be"; expect(resp.address).toEqual(expected_address_string); @@ -294,7 +354,7 @@ describe("Basic checks", function () { } }); - test("show address - secp256k1", async function () { + test("show address - secp256k1", async function () { const sim = new Zemu(APP_PATH); try { await sim.start(simOptions); @@ -303,7 +363,7 @@ describe("Basic checks", function () { // Derivation path. First 3 items are automatically hardened! const scheme = FlowApp.Signature.SECP256K1 | FlowApp.Hash.SHA2_256; const path = `m/44'/539'/${scheme}'/0/0`; - const address = "0123456789abcdef" + const address = "e467b9dd11fa00df" await prepareSlot(sim, app, 63, address, path) @@ -316,7 +376,7 @@ describe("Basic checks", function () { expect(resp.returnCode).toEqual(0x9000); expect(resp.errorMessage).toEqual("No errors"); - const expected_address_string = "0123456789abcdef"; + const expected_address_string = "e467b9dd11fa00df"; const expected_pk = "04d7482bbaff7827035d5b238df318b10604673dc613808723efbd23fbc4b9fad34a415828d924ec7b83ac0eddf22ef115b7c203ee39fb080572d7e51775ee54be"; expect(resp.address).toEqual(expected_address_string); @@ -336,7 +396,7 @@ describe("Basic checks", function () { const scheme = FlowApp.Signature.P256 | FlowApp.Hash.SHA2_256; const path = `m/44'/539'/${scheme}'/0/0`; - const address = "0123456789abcdef" + const address = "e467b9dd11fa00df" await prepareSlot(sim, app, 0, address, path) @@ -345,7 +405,7 @@ describe("Basic checks", function () { expect(resp.returnCode).toEqual(0x9000); expect(resp.errorMessage).toEqual("No errors"); - const expected_address_string = "0123456789abcdef"; + const expected_address_string = "e467b9dd11fa00df"; const expected_pk = "04db0a14364e5bf43a7ddda603522ddfee95c5ff12b48c49480f062e7aa9d20e84215eef9b8b76175f32802f75ed54110e29c7dc76054f24c028c312098e7177a3"; expect(resp.address).toEqual(expected_address_string); @@ -365,11 +425,12 @@ describe("Basic checks", function () { // Derivation path. First 3 items are automatically hardened! const scheme = FlowApp.Signature.P256 | FlowApp.Hash.SHA2_256; const path = `m/44'/539'/${scheme}'/0/0`; - const address = "0123456789abcdef" - const fakeAddress = "0000000000000000" + const address = "e467b9dd11fa00df" + const fakepath = `m/44'/1'/${scheme}'/0/0`; + const fakeAddress = "8c5303eaa26202d6"; await prepareSlot(sim, app, 1, address, path) - await prepareSlot(sim, app, 0, fakeAddress, path) + await prepareSlot(sim, app, 0, fakeAddress, fakepath) const respRequest = app.showAddressAndPubKey(1); // Wait until we are not in the main menu @@ -384,7 +445,7 @@ describe("Basic checks", function () { expect(resp.returnCode).toEqual(0x9000); expect(resp.errorMessage).toEqual("No errors"); - const expected_address_string = "0123456789abcdef"; + const expected_address_string = "e467b9dd11fa00df"; const expected_pk = "04db0a14364e5bf43a7ddda603522ddfee95c5ff12b48c49480f062e7aa9d20e84215eef9b8b76175f32802f75ed54110e29c7dc76054f24c028c312098e7177a3"; expect(resp.address).toEqual(expected_address_string); @@ -408,7 +469,7 @@ describe("Basic checks", function () { // Derivation path. First 3 items are automatically hardened! const scheme = FlowApp.Signature.SECP256K1 | FlowApp.Hash.SHA2_256; const path = `m/44'/539'/${scheme}'/0/0`; - const address = "0123456789abcdef" + const address = "e467b9dd11fa00df" await prepareSlot(sim, app, 1, address, path) @@ -425,7 +486,7 @@ describe("Basic checks", function () { expect(resp.returnCode).toEqual(0x9000); expect(resp.errorMessage).toEqual("No errors"); - const expected_address_string = "0123456789abcdef"; + const expected_address_string = "e467b9dd11fa00df"; const expected_pk = "04d7482bbaff7827035d5b238df318b10604673dc613808723efbd23fbc4b9fad34a415828d924ec7b83ac0eddf22ef115b7c203ee39fb080572d7e51775ee54be"; expect(resp.address).toEqual(expected_address_string); diff --git a/tests_zemu/tests/setup.js b/tests_zemu/tests/setup.js index ddd93c7a..82b1994b 100644 --- a/tests_zemu/tests/setup.js +++ b/tests_zemu/tests/setup.js @@ -24,7 +24,7 @@ export const APP_PATH = Resolve("../app/bin/app.elf"); const APP_SEED = "equip will roof matter pink blind book anxiety banner elbow sun young" export const simOptions = { - // logging: true, + //logging: true, start_delay: 1500, custom: `-s "${APP_SEED}"`, // X11: true, diff --git a/tests_zemu/tests/transactions.spec.js b/tests_zemu/tests/transactions.spec.js index 36c29a46..de52d610 100644 --- a/tests_zemu/tests/transactions.spec.js +++ b/tests_zemu/tests/transactions.spec.js @@ -88,7 +88,7 @@ async function transactionTest(txHexBlob, txExpectedPageCount, sigAlgo, hashAlgo const txBlob = Buffer.from(txHexBlob, "hex"); const path = getKeyPath(sigAlgo.code, hashAlgo.code); - const address = "0123456789abcdef" + const address = "e467b9dd11fa00df" await prepareSlot(sim, app, 1, address, path) const pkResponse = await app.getAddressAndPubKey(1); From aa6f0924c3800049c085d834e9e51ce8b8c8a4c5 Mon Sep 17 00:00:00 2001 From: Robert Lukotka Date: Fri, 24 Sep 2021 20:17:07 +0200 Subject: [PATCH 08/10] Disable showing 0x in addresses --- app/src/account.h | 6 ++++-- ...-basic-checks-show-address-expert-1-snap.png | Bin 636 -> 603 bytes ...-checks-show-address-secp-256-k-1-1-snap.png | Bin 636 -> 603 bytes ...-checks-show-address-secp-256-r-1-1-snap.png | Bin 636 -> 603 bytes ...s-basic-checks-slot-status-delete-2-snap.png | Bin 694 -> 661 bytes ...-js-basic-checks-slot-status-full-2-snap.png | Bin 656 -> 621 bytes ...ic-checks-slot-status-set-mainnet-2-snap.png | Bin 656 -> 621 bytes ...ic-checks-slot-status-set-testnet-2-snap.png | Bin 697 -> 660 bytes ...s-basic-checks-slot-status-update-2-snap.png | Bin 694 -> 661 bytes ...s-basic-checks-slot-status-update-4-snap.png | Bin 722 -> 690 bytes 10 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/account.h b/app/src/account.h index 5477ab9d..9e2f6f15 100644 --- a/app/src/account.h +++ b/app/src/account.h @@ -58,8 +58,9 @@ zxerr_t slot_parseSlot(uint8_t *buffer, uint16_t bufferLen); void app_slot_setSlot(); //To add to zxlib after fork +//For now just plain display __Z_INLINE uint32_t array_to_hexstr_with_0x(char *dst, uint16_t dstLen, const uint8_t *src, uint8_t count) { - if (dstLen < 2) { +/* if (dstLen < 2) { return 0; } dst[0]='0'; @@ -68,7 +69,8 @@ __Z_INLINE uint32_t array_to_hexstr_with_0x(char *dst, uint16_t dstLen, const ui if (res == 0) { return 0; } - return res; + return res;*/ + return array_to_hexstr(dst, dstLen, src, count); } #ifdef __cplusplus diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-1-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-1-snap.png index 8d670681c66facb8fc01c755ae4f76ac48baaac9..a29dc08a9f3653c6d81151ff822a748c6e415f39 100644 GIT binary patch delta 555 zcmeyva+_s>il36Fi(^OyQNp2}O`wW`IjVG)+l3zRF z$n6Y=XJrA*M)JCUefe`Mxp_}q_+TUzH;ac?e(j_mOZlr_G^^a3SSVFLDFvvqf9n1( zjpf%G&bTofN%NlY;XNUvWNfO?%)@(PkBy|%grBKT%{}+DvZb&AIXh*qG@Oywe!t@3 zw-&aPf7?Fwr7UZ^&B%MAX3Hl(sR=hHEM$~S$(WHcVPWDV$F?@lw8alKd7ICip7^t; zp=kG-*4s;U@95<|{C{D?We4VZ-e6{4lM4o>HLDxj@=a@2CN6Glo69CuCY52a1kBoZ zb;Cu6!;;$eYZI3<&Xk?G^5F!wls2{$zf6a=wqCZBj2l1?K!kvzK=f}V`=d%fI`ldBr&w`Dtd7Td{7@OprumPHum?4o;KW}Rh(9_O`fkZq+%gqTh zfj$mnHVQrr^yrljB0xWb#O49R=Ze9J3k_!?wbM;)T+=cv);?TnvZs6M=9Dt2wl<)( z^;r(j41g|7J;B4fKIf_Wi5wG!;%Zy%^b;2hPRb|&?Jo8>tYU2HV>FqEcmAY>58Z=I z-vH%K_!yb+fW+)Q9d^cEJM{LFSl;w)1-rMv0;?>Od%Jh^j@Vl$Qh(V`9T3}Kc9^-0 P0SG)@{an^LB{Ts5VUGL= delta 611 zcmcc3@`q)DO1-nEi(^OySsuCA=SjE`H$H*B-nJR#g zNzMr#UgyIKpQof`I6Rv^_5PQp@M{fc+?b7|c~AK8o_JHQ1XR|{!+XNUR#Ixh&&;R2 zDsfKCMj(+nWmzCC;a3WFIWrsWkFInz3O=0K4st@JD({J$6BinIjDWVCxL|Nn0chps ziv`o$9G|^BQRCuZDSPeE%L`(D?b{0a*`(xFJ@jJcHSys!x!`d4Ns>H>O zZQAv`CNY@{5~s6Ctuwh$5PUd%O-(4X5zxN-*9w+0&eR54smBZS!-*PiW+Rgv6QD&v z$L}@)dJT#`b7=QpYB+PD;mj3-lVAngO?`kWYF0gTHjDkuCfAYeIaMPHH3u6)|%uLCUNKuoNdZ)Tz4qx`e zk__(U&e0aT*rfWho}Q4JU}?nov_r})rO(5`aur)jUk*%#>@8prvrM_1s5^)6EqnGm V?KKh4+@>=Cfv2mV%Q~loCICDF2eJSF diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-1-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-1-snap.png index 8d670681c66facb8fc01c755ae4f76ac48baaac9..a29dc08a9f3653c6d81151ff822a748c6e415f39 100644 GIT binary patch delta 555 zcmeyva+_s>il36Fi(^OyQNp2}O`wW`IjVG)+l3zRF z$n6Y=XJrA*M)JCUefe`Mxp_}q_+TUzH;ac?e(j_mOZlr_G^^a3SSVFLDFvvqf9n1( zjpf%G&bTofN%NlY;XNUvWNfO?%)@(PkBy|%grBKT%{}+DvZb&AIXh*qG@Oywe!t@3 zw-&aPf7?Fwr7UZ^&B%MAX3Hl(sR=hHEM$~S$(WHcVPWDV$F?@lw8alKd7ICip7^t; zp=kG-*4s;U@95<|{C{D?We4VZ-e6{4lM4o>HLDxj@=a@2CN6Glo69CuCY52a1kBoZ zb;Cu6!;;$eYZI3<&Xk?G^5F!wls2{$zf6a=wqCZBj2l1?K!kvzK=f}V`=d%fI`ldBr&w`Dtd7Td{7@OprumPHum?4o;KW}Rh(9_O`fkZq+%gqTh zfj$mnHVQrr^yrljB0xWb#O49R=Ze9J3k_!?wbM;)T+=cv);?TnvZs6M=9Dt2wl<)( z^;r(j41g|7J;B4fKIf_Wi5wG!;%Zy%^b;2hPRb|&?Jo8>tYU2HV>FqEcmAY>58Z=I z-vH%K_!yb+fW+)Q9d^cEJM{LFSl;w)1-rMv0;?>Od%Jh^j@Vl$Qh(V`9T3}Kc9^-0 P0SG)@{an^LB{Ts5VUGL= delta 611 zcmcc3@`q)DO1-nEi(^OySsuCA=SjE`H$H*B-nJR#g zNzMr#UgyIKpQof`I6Rv^_5PQp@M{fc+?b7|c~AK8o_JHQ1XR|{!+XNUR#Ixh&&;R2 zDsfKCMj(+nWmzCC;a3WFIWrsWkFInz3O=0K4st@JD({J$6BinIjDWVCxL|Nn0chps ziv`o$9G|^BQRCuZDSPeE%L`(D?b{0a*`(xFJ@jJcHSys!x!`d4Ns>H>O zZQAv`CNY@{5~s6Ctuwh$5PUd%O-(4X5zxN-*9w+0&eR54smBZS!-*PiW+Rgv6QD&v z$L}@)dJT#`b7=QpYB+PD;mj3-lVAngO?`kWYF0gTHjDkuCfAYeIaMPHH3u6)|%uLCUNKuoNdZ)Tz4qx`e zk__(U&e0aT*rfWho}Q4JU}?nov_r})rO(5`aur)jUk*%#>@8prvrM_1s5^)6EqnGm V?KKh4+@>=Cfv2mV%Q~loCICDF2eJSF diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-1-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-1-snap.png index 8d670681c66facb8fc01c755ae4f76ac48baaac9..a29dc08a9f3653c6d81151ff822a748c6e415f39 100644 GIT binary patch delta 555 zcmeyva+_s>il36Fi(^OyQNp2}O`wW`IjVG)+l3zRF z$n6Y=XJrA*M)JCUefe`Mxp_}q_+TUzH;ac?e(j_mOZlr_G^^a3SSVFLDFvvqf9n1( zjpf%G&bTofN%NlY;XNUvWNfO?%)@(PkBy|%grBKT%{}+DvZb&AIXh*qG@Oywe!t@3 zw-&aPf7?Fwr7UZ^&B%MAX3Hl(sR=hHEM$~S$(WHcVPWDV$F?@lw8alKd7ICip7^t; zp=kG-*4s;U@95<|{C{D?We4VZ-e6{4lM4o>HLDxj@=a@2CN6Glo69CuCY52a1kBoZ zb;Cu6!;;$eYZI3<&Xk?G^5F!wls2{$zf6a=wqCZBj2l1?K!kvzK=f}V`=d%fI`ldBr&w`Dtd7Td{7@OprumPHum?4o;KW}Rh(9_O`fkZq+%gqTh zfj$mnHVQrr^yrljB0xWb#O49R=Ze9J3k_!?wbM;)T+=cv);?TnvZs6M=9Dt2wl<)( z^;r(j41g|7J;B4fKIf_Wi5wG!;%Zy%^b;2hPRb|&?Jo8>tYU2HV>FqEcmAY>58Z=I z-vH%K_!yb+fW+)Q9d^cEJM{LFSl;w)1-rMv0;?>Od%Jh^j@Vl$Qh(V`9T3}Kc9^-0 P0SG)@{an^LB{Ts5VUGL= delta 611 zcmcc3@`q)DO1-nEi(^OySsuCA=SjE`H$H*B-nJR#g zNzMr#UgyIKpQof`I6Rv^_5PQp@M{fc+?b7|c~AK8o_JHQ1XR|{!+XNUR#Ixh&&;R2 zDsfKCMj(+nWmzCC;a3WFIWrsWkFInz3O=0K4st@JD({J$6BinIjDWVCxL|Nn0chps ziv`o$9G|^BQRCuZDSPeE%L`(D?b{0a*`(xFJ@jJcHSys!x!`d4Ns>H>O zZQAv`CNY@{5~s6Ctuwh$5PUd%O-(4X5zxN-*9w+0&eR54smBZS!-*PiW+Rgv6QD&v z$L}@)dJT#`b7=QpYB+PD;mj3-lVAngO?`kWYF0gTHjDkuCfAYeIaMPHH3u6)|%uLCUNKuoNdZ)Tz4qx`e zk__(U&e0aT*rfWho}Q4JU}?nov_r})rO(5`aur)jUk*%#>@8prvrM_1s5^)6EqnGm V?KKh4+@>=Cfv2mV%Q~loCICDF2eJSF diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-delete-2-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-delete-2-snap.png index 50060e766c9bc3ac89d9cca79fee0918afcc94d4..4415316cd33344e0e86374de3533195dce3fc39b 100644 GIT binary patch literal 661 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfheE zEN}VAJF1&68<_AIIUjC2v)uHJ2@h}cne??X7l9f#0EyjFYBPamnSsL2?n=X%D+Z>( z;Hl{X26PV4+WA1gUNJZUv?fs79VmR}LP5mg?Uz2RkFfMgTb`IPLu$g$)j+4H0rf}& z?I_>&Ni@YwYQoMMdu{g<7l5vCX#<9WBG6q|3{LtOncPuzK0H0^#>9n*6K19Wqe)Ft zYTu-WBFnX)(24QOeOQ#mJv}&j$DCV-o?a2tTfPk%aB!*Ltgq(k-{Z=C#|cbs44$rj JF6*2UngD9u9D)D< literal 694 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi46x;TbZFupw)7<4;|!R4T_ z*4cmJHu9g(tS!)XI%e2rVY4Lfqqn|_BeRkJ^$p6#rV7QO%tr6C9G+c}noybjmQ{S$ zi&m9+>lkOwWlOPJ$|xx{;ini-MhnEatJNvK_kydw%Ez~+HBpCEj7@xuoPm_70tlJp zoZ#VgKCJNB#K=V9bJkPW!`*Qo>Mt~$x$+^A_e73~!sd%WcEg$2lx1uw6BaVgtaoZ- zONm>vXF?#ek-ZnQQ8N$k37IHnqxE5NCxP1fFBSY+$~g1B?jOIlHhEVz$rQe|j5D`~ z-J4WtB`H;wvToAChd`6eQZgLaB&F0OQ!-`%jZK_%Go!)-=n4^|>l_-(4@X(Z-a7R1 zf|%Szhr`peZe%WKY+KpLCY3QmDlcon!)0ydra2}THe7Z%?8nSop1B}#d1KpbDZ8Yn zi=`%jyu76i7!GAA%i4CE0DY+NS(Ep~g$)-QczC6GPuu~z4(JUCTEF2_C|Ju(DYcos zY$+K(wzPRZ)8l=gwZrR~*37wW3lo6`nx)8H`>usy zT>0=e(ENW>r>?)$a0VE9z94hw%*%edI3+_O<)23z$TdbLJVxc2Gk_+0rU63_7^(kO zwaH3KvCZ^sYjXq%1u~s_xk1dYeOrOmme$4D3m&cr>s!M(Q&~8mZ$+Z>vksOii-Bq7 p1Wd){g}QV2d>t%huK~mOA9MF>fv-0*>sp)LV)dAc09BShD=q|6~ z$ZWLydc&Ew3)oWZqJFi@-D*1X(p16uaHh$eSv?!#8VTDFvBZ7UgPu6(Eo3>J`>%~~KY5#;0WwR=_pg`E$dmhxNraC=1M z)H8mEFBkxI`2*deW^6jA?aYOOG;Mpww8g;i`MG9~Qyb6~X#$c`Y%`su)PTlJnwgUE zV+s$i{i;Owwl>GKNedGvfP_4mPQBeEmN$J{!R{@sx0k{KYrA*!j@Vm=-d;kHdTT$8 WNqOCFk6qgsfWXt$&t;ucLK6TPDf>kL delta 605 zcmaFMGJ$o1N`1Jei(^OyhFUH!`+Bfr&HcG+R4hIYnkSC5&Grr+~u zVoTv$&p7jRv($vj+?V>hGP#Y~uQ%}UwqGpBFf!S*&Fj%R^Ib1{RqEEXd8TE|NNEF7 zSq>nSabtp{R9lv&x4%m@a(iy8PI7HX9DFK&Rl3XGu=eN`LG+akx7n;!siKWDQz&c z@9?SeOpunetQje0QWF+FtUoQKHnZJi&+3Q1M){L&W=cr0&0Lu1{4A6AeALg|K;K9K zl~slxR@r>9;Y{0^D-CDbr6$ajTE>>LtZn%Tpj|+*4_iRI^ASJwj7)fpqEAmc0bH(7K4=|!U+uHW8N^}Q`rcGLyIALZ=M#Z#-BFnX{r&oeQ?u}H2 z#pwVJd)OJ3Ux9KyUfh0?V!c8O#kVRs~MpxR8N? Pi-Ez@)z4*}Q$iB}{I3lF diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-2-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-mainnet-2-snap.png index d10da903e89c92845de3253ac11cb2f359dea9d0..5b1f31011bfbd115ac85c5f6a6021fe0de581b38 100644 GIT binary patch delta 569 zcmbQh`j%yaO1+7vi(^Oy>fv-0*>sp)LV)dAc09BShD=q|6~ z$ZWLydc&Ew3)oWZqJFi@-D*1X(p16uaHh$eSv?!#8VTDFvBZ7UgPu6(Eo3>J`>%~~KY5#;0WwR=_pg`E$dmhxNraC=1M z)H8mEFBkxI`2*deW^6jA?aYOOG;Mpww8g;i`MG9~Qyb6~X#$c`Y%`su)PTlJnwgUE zV+s$i{i;Owwl>GKNedGvfP_4mPQBeEmN$J{!R{@sx0k{KYrA*!j@Vm=-d;kHdTT$8 WNqOCFk6qgsfWXt$&t;ucLK6TPDf>kL delta 605 zcmaFMGJ$o1N`1Jei(^OyhFUH!`+Bfr&HcG+R4hIYnkSC5&Grr+~u zVoTv$&p7jRv($vj+?V>hGP#Y~uQ%}UwqGpBFf!S*&Fj%R^Ib1{RqEEXd8TE|NNEF7 zSq>nSabtp{R9lv&x4%m@a(iy8PI7HX9DFK&Rl3XGu=eN`LG+akx7n;!siKWDQz&c z@9?SeOpunetQje0QWF+FtUoQKHnZJi&+3Q1M){L&W=cr0&0Lu1{4A6AeALg|K;K9K zl~slxR@r>9;Y{0^D-CDbr6$ajTE>>LtZn%Tpj|+*4_iRI^ASJwj7)fpqEAmc0bH(7K4=|!U+uHW8N^}Q`rcGLyIALZ=M#Z#-BFnX{r&oeQ?u}H2 z#pwVJd)OJ3Ux9KyUfh0?V!c8O#kVRs~MpxR8N? Pi-Ez@)z4*}Q$iB}{I3lF diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-2-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-set-testnet-2-snap.png index 445abc15b82188782c423e4863553dfa6284d646..d052f95ac926158a85c5d856ef9e346f2e09ddeb 100644 GIT binary patch literal 660 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfc`Xx;TbZFupw)7^EC2;(Ty1 zSN4DIYwgGOWaO13Cdf4JHVmGsS@&|PN`}L;m!=BEyMmdG@^k;XhUYqh_|AtfXH;Yv znd~W@c%(b-<*M*WKQ>CWow;O?GObO~SZabK?+G1VYa{Q&mo}WRQI(XMP+9uW^>BCG z$H}G&n=dz<@nbex%s6xRi5|9;2@4r#E?0MEHqzJIGa-=K$bUWKOxHHH6u@$rMvrsa^2CV{3K~;=XD)3}HU=uWh(wj8xE)sd z%)xZ(uR`?w?n8mz}&UOx~X{u1XE120RKlWGmx?4?WE@wNmwJpE+;YvzIMfT*0dFu6BKQ4Ocy8g#WsR=hT z9nzLF&b-)gCN{;5+33WDhBKEZFJzo4F0G$(1<1~JNSg@cUY;v8p>pd-uQs-nd2xqd zGV-4I^X|}lpm|kBC!m&bYS_Cn8<|T@h?HtObIBlOTAQM=RNe_4-V;4+AkODt4vpo9 zcNJJ|;SOHzeEWyFl-SJOCOSs*vu;cTY4JO(WDKOHXG<7a^E#(xf~f8@84^bFSq{$x znNBH#OrG#FgxScO87vme3o;yt?g0IKdvXG!SiRiFk5?he76UB|H{qGNG|@dR^Tx!V z=S^!`d-uDxwYjF5C=@SFJkitU`b-aGfdj}Yu)uDhdi|>nXEG|T91EYkFma+J*!UWc zG?ObP0l+XkKv3VI% diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-update-2-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-slot-status-update-2-snap.png index 50060e766c9bc3ac89d9cca79fee0918afcc94d4..4415316cd33344e0e86374de3533195dce3fc39b 100644 GIT binary patch literal 661 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfheE zEN}VAJF1&68<_AIIUjC2v)uHJ2@h}cne??X7l9f#0EyjFYBPamnSsL2?n=X%D+Z>( z;Hl{X26PV4+WA1gUNJZUv?fs79VmR}LP5mg?Uz2RkFfMgTb`IPLu$g$)j+4H0rf}& z?I_>&Ni@YwYQoMMdu{g<7l5vCX#<9WBG6q|3{LtOncPuzK0H0^#>9n*6K19Wqe)Ft zYTu-WBFnX)(24QOeOQ#mJv}&j$DCV-o?a2tTfPk%aB!*Ltgq(k-{Z=C#|cbs44$rj JF6*2UngD9u9D)D< literal 694 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfi46x;TbZFupw)7<4;|!R4T_ z*4cmJHu9g(tS!)XI%e2rVY4Lfqqn|_BeRkJ^$p6#rV7QO%tr6C9G+c}noybjmQ{S$ zi&m9+>lkOwWlOPJ$|xx{;ini-MhnEatJNvK_kydw%Ez~+HBpCEj7@xuoPm_70tlJp zoZ#VgKCJNB#K=V9bJkPW!`*Qo>Mt~$x$+^A_e73~!sd%WcEg$2lx1uw6BaVgtaoZ- zONm>vXF?#ek-ZnQQ8N$k37IHnqxE5NCxP1fFBSY+$~g1B?jOIlHhEVz$rQe|j5D`~ z-J4WtB`H;wvToAChd`6eQZgLaB&F0OQ!-`%jZK_%Go!)-=n4^|>l_-(4@X(Z-a7R1 zf|%Szhr`peZe%WKY+KpLCY3QmDlcon!)0ydra2}THe7Z%?8nSop1B}#d1KpbDZ8Yn zi=`%jyu76i7!GAA%i4CE0DY+NS(Ep~g$)-QczC6GPuu~z4(JUCTEF2_C|Ju(DYcos zY$+K(wzPRZ)8l=gwZrR~*37wW3lo6`nx)8H`>usy zT>0=e(ENW>r>?)$a0VE9z94hw%*%edI3+_O<)23z$TdbLJVxc2Gk_+0rU63_7^(kO zwaH3KvCZ^sYjXq%1u~s_xk1dYeOrOmme$4D3m&cr>s!M(Q&~8mZ$+Z>vksOii-Bq7 p1Wd){g}QV2d>t%huK~mOA9MFsf-1Qi-9m} z0Z626VPjkSgoO{+P7UW>|EnqeQp1@G1}82w@bE&28gFJJX|T1%rV7QPGgmT7rerug zTL>bqp3;^yRrst7Vmlqq<2}J+1azGT?}RNbs z!zV6eoaxxcmSU&c%wyDkrQuAq_WP56BqXKOfM{lZwnLgTP$FL#c%kiB(C*(4@oL1WuWpeKNS+IPj_@N_A=s~avl9ByTk(lfbG zFcnOFSlZUhCiN|1=k_*k-V-qsW=gFCd9mS)9?*juE&}}t^j*wS#+g8OLD2pzhqU!m z_kt{DOUbygHgVEUufxlw>{LE0&gABGKCEDDl5^tDnukt@fdO?VE4803r449DirrO% zlfc;7tOyLK&r8`-mbI;9oVoI$8Zb;iVt3X6d5IH%cI*xNmbIhv%!Linhl4YJ#IJdy zTD&k3=!XeESF@$8Q!_TT;hnkg;moynn$Nf~8!dmnc@r=&C!YyT$&g4{cgf(S50Inc ze7HR&W5?>B YnT6v69oE_22Bt*@Pgg&ebxsLQ03XdADgXcg literal 722 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFfh&Zba4!+V0?Qp&`;Ts!TI3x zz?%QezYlY-y({M2;OoROv1-+k_*z9ysR@-GY$;_@6MhQvp3qszIP?3qe@n%49iJ_f zl3T==l#CxC%)BN%yw*S%p1q*4ZDk{y)G{`yj2oFZ zGG|C-fJ72A7Ccl;$*6dJWOZA3?Lp&AhqMfdlnjS9HVCoqQo|WPW+Q9f6F$5rVqDU) z9M~j*F3|uHrH`ie0G%UhWTH^K?BQ*x36elPX`Z|%{uDow2Px1pD!;g44_nH;TNU1I zZSjiEhh0G`CM;x}>3>q8`OGAsn)gSljrO~>wRr;3vn<{dZ%$lj;4w1sF*(*+I-ed#*H`xl$kuvCS3UlsG)|2E~Dl-0LG-Q-Bfl4;Y@F&yBa=TX+KfS>lX-ZX&!{*bUduA&@Fp`p@7oqSxyhxxCTm_DIVCkA za%RJ(MQyS(ML9KAXE~&$O1Ce~m6^7!Fyhv+#7w4BiIG5ozl=+aN_?N#E;|5Bs|=p5 KelF{r5}E)P^fY7u From 0709580455522efab516697a96a0ac7a53b767cc Mon Sep 17 00:00:00 2001 From: Robert Lukotka Date: Mon, 27 Sep 2021 14:42:48 +0200 Subject: [PATCH 09/10] Tests refactor: slot prep + minor review issues --- app/src/account.c | 3 +- app/src/addr.c | 2 +- js/test/transactions.spec.js | 78 ++++++++++-------- ...asic-checks-show-address-expert-6-snap.png | Bin 878 -> 887 bytes ...asic-checks-show-address-expert-7-snap.png | Bin 688 -> 823 bytes ...hecks-show-address-secp-256-k-1-6-snap.png | Bin 878 -> 887 bytes ...hecks-show-address-secp-256-k-1-7-snap.png | Bin 688 -> 823 bytes ...hecks-show-address-secp-256-r-1-6-snap.png | Bin 878 -> 887 bytes ...hecks-show-address-secp-256-r-1-7-snap.png | Bin 688 -> 823 bytes tests_zemu/tests/basic.spec.js | 64 +++++--------- 10 files changed, 69 insertions(+), 78 deletions(-) diff --git a/app/src/account.c b/app/src/account.c index b72505db..435e195a 100644 --- a/app/src/account.c +++ b/app/src/account.c @@ -224,7 +224,8 @@ zxerr_t slot_parseSlot(uint8_t *buffer, uint16_t bufferLen) { return zxerr_out_of_bounds; } - if (!path_is_empty(tmp_slot.path)) { + //account validation + if (!path_is_empty(tmp_slot.path)) { //no validation required if the new slot should be empty uint64_t account = 0; //LE <-> BE conversion necessary to validate account for(int i=0; i setTimeout(resolve, ms)); +} + describe("Staking transactions", () => { const transactions = JSON.parse(fs.readFileSync("../tests/testvectors/manifestEnvelopeCases.json")); //set of encodedTransactionEnvelope to test const to_test = new Set([ - "f9029ef9029ab90226696d706f727420466c6f7749445461626c655374616b696e672066726f6d203078383632346235326639646463643034610a0a7472616e73616374696f6e286e6577416464726573733a20537472696e6729207b0a0a202020202f2f204c6f63616c207661726961626c6520666f722061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020206c6574207374616b65725265663a2026466c6f7749445461626c655374616b696e672e4e6f64655374616b65720a0a202020207072657061726528616363743a20417574684163636f756e7429207b0a20202020202020202f2f20626f72726f772061207265666572656e636520746f20746865206e6f6465206f626a6563740a202020202020202073656c662e7374616b6572526566203d20616363742e626f72726f773c26466c6f7749445461626c655374616b696e672e4e6f64655374616b65723e2866726f6d3a20466c6f7749445461626c655374616b696e672e4e6f64655374616b657253746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f207374616b696e672061646d696e22290a202020207d0a0a2020202065786563757465207b0a0a202020202020202073656c662e7374616b65725265662e7570646174654e6574776f726b696e6741646472657373286e657741646472657373290a0a202020207d0a7df0af7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", - "f90343f9033fb9026c696d706f727420466c6f775374616b696e67436f6c6c656374696f6e2066726f6d203078386430653837623635313539616536330a0a2f2f2f204368616e67657320746865206e6574776f726b696e67206164647265737320666f722074686520737065636966696564206e6f64650a0a7472616e73616374696f6e286e6f646549443a20537472696e672c206e6577416464726573733a20537472696e6729207b0a202020200a202020206c6574207374616b696e67436f6c6c656374696f6e5265663a2026466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e0a0a2020202070726570617265286163636f756e743a20417574684163636f756e7429207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e526566203d206163636f756e742e626f72726f773c26466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e3e2866726f6d3a20466c6f775374616b696e67436f6c6c656374696f6e2e5374616b696e67436f6c6c656374696f6e53746f7261676550617468290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f772072656620746f205374616b696e67436f6c6c656374696f6e22290a202020207d0a0a2020202065786563757465207b0a202020202020202073656c662e7374616b696e67436f6c6c656374696f6e5265662e7570646174654e6574776f726b696e6741646472657373286e6f646549443a206e6f646549442c206e6577416464726573733a206e657741646472657373290a202020207d0a7d0af88eb85c7b2274797065223a22537472696e67222c2276616c7565223a2238383534393333356531646237623562343663326164353864646237306237613435653737306363356665373739363530626132366631306536626165356536227daf7b2274797065223a22537472696e67222c2276616c7565223a22666c6f772d6e6f64652e746573743a33353639227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0" + "f9075cf90758b906b32f2f2054686973207472616e73616374696f6e2077697468647261777320465553442066726f6d20746865207369676e65722773206163636f756e7420616e64206465706f7369747320697420696e746f206120726563697069656e74206163636f756e742e200a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c2069662074686520726563697069656e7420646f6573206e6f74206861766520616e20465553442072656365697665722e200a2f2f204e6f2066756e647320617265207472616e73666572726564206f72206c6f737420696620746865207472616e73616374696f6e206661696c732e0a2f2f0a2f2f20506172616d65746572733a0a2f2f202d20616d6f756e743a2054686520616d6f756e74206f66204655534420746f207472616e736665722028652e672e2031302e30290a2f2f202d20746f3a2054686520726563697069656e74206163636f756e7420616464726573732e0a2f2f0a2f2f2054686973207472616e73616374696f6e2077696c6c206661696c20696620656974686572207468652073656e646572206f7220726563697069656e7420646f6573206e6f7420686176650a2f2f20616e2046555344207661756c742073746f72656420696e207468656972206163636f756e742e20546f20636865636b20696620616e206163636f756e74206861732061207661756c740a2f2f206f7220696e697469616c697a652061206e6577207661756c742c2075736520636865636b5f667573645f7661756c745f73657475702e63646320616e642073657475705f667573645f7661756c742e6364630a2f2f20726573706563746976656c792e0a0a696d706f72742046756e6769626c65546f6b656e2066726f6d203078663233336463656538386665306162650a696d706f727420465553442066726f6d203078336335393539623536383839363339330a0a7472616e73616374696f6e28616d6f756e743a205546697836342c20746f3a204164647265737329207b0a0a202020202f2f20546865205661756c74207265736f75726365207468617420686f6c64732074686520746f6b656e73207468617420617265206265696e67207472616e736665727265640a202020206c65742073656e745661756c743a204046756e6769626c65546f6b656e2e5661756c740a0a2020202070726570617265287369676e65723a20417574684163636f756e7429207b0a20202020202020202f2f204765742061207265666572656e636520746f20746865207369676e657227732073746f726564207661756c740a20202020202020206c6574207661756c74526566203d207369676e65722e626f72726f773c26465553442e5661756c743e2866726f6d3a202f73746f726167652f667573645661756c74290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265666572656e636520746f20746865206f776e65722773205661756c742122290a0a20202020202020202f2f20576974686472617720746f6b656e732066726f6d20746865207369676e657227732073746f726564207661756c740a202020202020202073656c662e73656e745661756c74203c2d207661756c745265662e776974686472617728616d6f756e743a20616d6f756e74290a202020207d0a0a2020202065786563757465207b0a20202020202020202f2f204765742074686520726563697069656e742773207075626c6963206163636f756e74206f626a6563740a20202020202020206c657420726563697069656e74203d206765744163636f756e7428746f290a0a20202020202020202f2f204765742061207265666572656e636520746f2074686520726563697069656e7427732052656365697665720a20202020202020206c6574207265636569766572526566203d20726563697069656e742e6765744361706162696c697479282f7075626c69632f66757364526563656976657229212e626f72726f773c267b46756e6769626c65546f6b656e2e52656365697665727d3e28290a2020202020202020202020203f3f2070616e69632822436f756c64206e6f7420626f72726f77207265636569766572207265666572656e636520746f2074686520726563697069656e742773205661756c7422290a0a20202020202020202f2f204465706f736974207468652077697468647261776e20746f6b656e7320696e2074686520726563697069656e7427732072656365697665720a202020202020202072656365697665725265662e6465706f7369742866726f6d3a203c2d73656c662e73656e745661756c74290a202020207d0a7d0af860b07b2274797065223a22554669783634222c2276616c7565223a2239323233333732303336382e3534373735383038227dae7b2274797065223a22537472696e67222c2276616c7565223a22307865343637623964643131666130306466227da0f0e4c2f76c58916ec258f246851bea091d14d4247a2fc3e18694461b1816e13b2a88f19c161bc24cf4b4040a88f19c161bc24cf4b4c988f19c161bc24cf4b4c0", ]); - transactions - .filter((tx) => to_test.has(tx.encodedTransactionEnvelopeHex)) - .forEach((tx) => { - test(`sign transaction (${tx.title}) - ${ECDSA_P256.name} / ${SHA3_256.name}`, async () => { - const txExpectedPageCount = getTransactionPageCount(tx.envelopeMessage); - - await transactionTest( - tx.encodedTransactionEnvelopeHex, - txExpectedPageCount, - ECDSA_P256, - SHA3_256, - ); - }); - }, 100000); + test(`sign transaction`, async () => { + const transport = await TransportNodeHid.create(); + const app = new FlowApp(transport); + + const sigAlgo = ECDSA_P256; + const hashAlgo = SHA3_256; + + const path = getKeyPath(sigAlgo.code, hashAlgo.code); + console.log(path) + + const res1 = await app.setSlot(5, "e467b9dd11fa00df", path) + console.log(res1) + expect(res1.returnCode).equal(0x9000) + + const res2 = await app.getAddressAndPubKey(5) + console.log(res2) + expect(res2.returnCode).equal(0x9000) + expect(res2.errorMessage).equal("No errors"); + + for(const tx of transactions.filter((tx) => to_test.has(tx.encodedTransactionEnvelopeHex))) { + console.log("${tx.title} - ${ECDSA_P256.name} / ${SHA3_256.name}") + const txExpectedPageCount = getTransactionPageCount(tx.envelopeMessage); + + await transactionTest( + app, + path, + res2.publicKey, + tx.encodedTransactionEnvelopeHex, + txExpectedPageCount, + sigAlgo, + hashAlgo + ); + } + + await transport.close(); + }, 1000000); + }); describe("Show address", () => { diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-6-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-6-snap.png index 8cab1041585ba1363e433fa382c76bfab67f2772..db7d045345372516441bc737520709862b1f37f9 100644 GIT binary patch literal 887 zcmXw&dq`7J9LKko*RY+EByzWq;d~H=j_a11rppIw`J~j;MY_1jlzcGBEH#GaWJR=1 z$S#Js3QHZ+v=Y-&xe#|aWAhOqCg~r7Ol@S8i(bDw3C=x_-}!OR_w)UoqtD5bBR|}a z!{H#s>D03@YT*;^!JuCVt`6mJc!`SCQ@M5Ajmc%rfkMtLXTS00Ms9cA`X6Wdrgiwp zTu^yVE4FUWHL z+%=`|D9Un7XjYVR#n>A4{zjO-)j1FxEy*Ax7A6BRd=vpHe5h--hCo6h+?qGWpsE}1 zmT-drHxwEvJfF-byD`#gqHqI6>M-)p2{vz)IV_M0x2o~PCm0zi5!S>Yrs3-62mu~s z;uE9lE-p1K-HEy;hDr6u7CvI&PzVvs6)Tq-Et9R*%io5>FKTDSwqH?*xd7y~p*454 zU%?)WL^uRQ;KE3&D0{qLW$=j5kFc(U#vvVtX=Vjk}tg4cKpAp+K(0SLHfGyP*yQu^EIicCZx#mwUKWk1DMc>||Skaio_Gl*>w? z?L@A(+vl`)hZcH1t3HoMDB}m)b<>jd?&V&LOnfb>H+m|da<}c3WF+{>G?2bQ6rb3i zuG8IHXFkB$22dm*)!SyBqLiI`jtX$A2`1G4Vh=M8vCSgk6A=U}&p#(9lSf1#CZWPL zG5d6fy3(u)KuPlhGcr1=tgZmn$GV+B&44I+cEPADd*FraQJD(C+hiUgVK3Af+93v2 zUN0aqBwA`=#`-`H_@Ru|K=pY<3N#up^AIzZ4kZR{Tsn}nq)w9G-6QfT&AS>G#z--F-p_kDaGcjnY&9qNPmh(sb( zpA?@4y9uV;8-aCl%c)S2ND`%wk3Cc*o*#0i1?oic&NoG#p6%UB6Tcj1^?PPJ2F(|` z&Nmf2R{t<;P{|9@QOqSc%8%`f!<0?}UV%9z-ZDeBAEUDbTVNGXP^ z5;K+)8aE3iZ>}v@#IeC7r8!;$`RhX}`6p5GMFO*apBNq`jma#5g)!Ic{*M9WiT|Ve?J?HEvzgLPR~;@lfws~g58yl z=8~)Oy-@YriJDB60gq!91uaByCs3y8X2Qw#e6*RX;!+HO_3q2ksIeSx}<8ns=D^-0u8mr16>* z<+86!!RT8jvk$XcLX*xQ}fLBVv^nsdYS2_+jYlV{|a^z=#5R$;k3%ta$<0^S4 zrExFZ-`wjN^SaU(F?Tl0*-kaNdQ{;U)qBQfI(-7%s6)toR}u1}qA5FzRVbmFN)BWI zbO6eQW7cLOSkOQTO+gOfeU+i`DP(X##LT2%cmSUJ-z6X#JpwFjWD5-r|1$#=Sn+4< zVi`oalR&`UU1(u@z87PInx*N1ja35C>0>9eZ33C+R7?o86KF~Wh89{q7Rd$0YQ6)c g2Yn4|7an#Eh(bF}@24JJDAILp((f|Me diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-7-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-expert-7-snap.png index 70ded082d23c3e157ed04ccda77ff079ef2c2f26..e024f746f2264f07bad564c5ec902bc1966366ea 100644 GIT binary patch literal 823 zcmXw2e@GKi9N$`-nr>6)Of3tO6dfG8Wx~)%b5g6|L?}52 z3YS5esFnBwMN}M;+&=@4a??`FH2?5GNRbA{VrlOg!F%uS-S_*x-_MVCErt2nXebsc z5{Xb#j^R3ZI>E$`BVhfaw4W1+j_jKZ88;fl+q2hdv654U*`lN42gjDO(Z)+N8(NR6 z24nD|;BbPgOU#yO@MP>X>vi%sNxUus)zh@1u1_q-Xx^u$?tgOf!;9hh_k7`|RfB{u zbILIi_cItX^+pU2u?UqVA*QQ!LRGfOz15Q6sBCHWjwr@RsT|Y7n3t&U{#xw8a zPiC)??yVCOpPjtV$%DW$v%<(xPib5-#>fe?gjjEtq8@k3&#WxellGEM>i*wmr%%kD zl?8D;3(G9X={2cJ|=`F;)V??xzit~@r-&U3a& zmR9)B1BwXsft0eHt|^1=!DEEdV$2FC_YSaXRwX?eva|&f&|mRg?zBP4#NzI@COA&t zPPLnf^-OM>nsKQd0Cx!nhL%davkVC6D{WDLDWviYp*m=k?X}o$!NM>{3&aFU^oZH& z)X@;uyPF85le1p+VdF{=0Q-J;6cQ+C17$9vp4G2y>163uZtkJ%hY?{1m<(a_x6GY3 zu5#EWU(m?}(3rAD5uSN9XtAHmDgDK8Uxn@c!=6;I{eG?})qVjjUb07`uYC3h)RD5= zPP$8%+R`=d0SjoOuk3+PJ7~q2R}FNz3t>RC7EcrOSWQ`V5Mg@k3b3cgLgHf}r!)?z z91SV;g0WEs-wtuR2M)>jMxfom9ysmE}EM_W_O@>w<~p#vtXGtJjtLAR)E?fIHh@rP hawWt>?f1>Me?p{oYkzrdg#dmCk;#~E7|N`8@)wMBS%v@r literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFff&Sx;TbZFupw)9i;8a;Cyf~ zU-p0QYwhb+N@!*9G)meRmM{C^->>4xY-E15;mj3-6F$5rVqBSx!Y>+}ykKy0PKHBU zn`c_ajFh}pj5E()QSK|bqU?DGsKEKKg0YFh=P6PXeg-ic1v49|OHG(5HDTvYwiG)n zk4L`!AcZ!)ZK5+5CQe$I=$e-0kd_fKai)~ti9I}$QWGl6ANU@gEmxS&dxD4e#2TQz z+D6(SbK)lfjhUI!#+DM-2b9@k`N7SN_k_*dHv5H)GgmUs6b5p9n2p|x-8*^V!<3W> zJGje7Au`h;Z7Ji-)j*>J`QFs6Pn@vRz( z&a&`6JpW38FZb@}7Yp*)^)7BuGB#OrVvWh46%Zc+J()ElrS1wSC{JE!IOD}^qz&|# zi4QQmx_EfOfd*o$6n8RD2ZmQz$}%>PSC_Trp9F^d98fSli{=Hz0uOI9&~-pm;|UJC z89+sjAf;?6ejxcj@j&}OEH_msUi5I8)V!mO-Y0o@>p?-b=ER*jXD)p3;Eq;zKHQ&@ zv4C-Ac;SN}-u+6>ha;ubW=?I(H}x?B@l=Y1dE>JrQYHZ7Xr~$DQ%O^W&mq8oQsv(5 zYrWxjD03@YT*;^!JuCVt`6mJc!`SCQ@M5Ajmc%rfkMtLXTS00Ms9cA`X6Wdrgiwp zTu^yVE4FUWHL z+%=`|D9Un7XjYVR#n>A4{zjO-)j1FxEy*Ax7A6BRd=vpHe5h--hCo6h+?qGWpsE}1 zmT-drHxwEvJfF-byD`#gqHqI6>M-)p2{vz)IV_M0x2o~PCm0zi5!S>Yrs3-62mu~s z;uE9lE-p1K-HEy;hDr6u7CvI&PzVvs6)Tq-Et9R*%io5>FKTDSwqH?*xd7y~p*454 zU%?)WL^uRQ;KE3&D0{qLW$=j5kFc(U#vvVtX=Vjk}tg4cKpAp+K(0SLHfGyP*yQu^EIicCZx#mwUKWk1DMc>||Skaio_Gl*>w? z?L@A(+vl`)hZcH1t3HoMDB}m)b<>jd?&V&LOnfb>H+m|da<}c3WF+{>G?2bQ6rb3i zuG8IHXFkB$22dm*)!SyBqLiI`jtX$A2`1G4Vh=M8vCSgk6A=U}&p#(9lSf1#CZWPL zG5d6fy3(u)KuPlhGcr1=tgZmn$GV+B&44I+cEPADd*FraQJD(C+hiUgVK3Af+93v2 zUN0aqBwA`=#`-`H_@Ru|K=pY<3N#up^AIzZ4kZR{Tsn}nq)w9G-6QfT&AS>G#z--F-p_kDaGcjnY&9qNPmh(sb( zpA?@4y9uV;8-aCl%c)S2ND`%wk3Cc*o*#0i1?oic&NoG#p6%UB6Tcj1^?PPJ2F(|` z&Nmf2R{t<;P{|9@QOqSc%8%`f!<0?}UV%9z-ZDeBAEUDbTVNGXP^ z5;K+)8aE3iZ>}v@#IeC7r8!;$`RhX}`6p5GMFO*apBNq`jma#5g)!Ic{*M9WiT|Ve?J?HEvzgLPR~;@lfws~g58yl z=8~)Oy-@YriJDB60gq!91uaByCs3y8X2Qw#e6*RX;!+HO_3q2ksIeSx}<8ns=D^-0u8mr16>* z<+86!!RT8jvk$XcLX*xQ}fLBVv^nsdYS2_+jYlV{|a^z=#5R$;k3%ta$<0^S4 zrExFZ-`wjN^SaU(F?Tl0*-kaNdQ{;U)qBQfI(-7%s6)toR}u1}qA5FzRVbmFN)BWI zbO6eQW7cLOSkOQTO+gOfeU+i`DP(X##LT2%cmSUJ-z6X#JpwFjWD5-r|1$#=Sn+4< zVi`oalR&`UU1(u@z87PInx*N1ja35C>0>9eZ33C+R7?o86KF~Wh89{q7Rd$0YQ6)c g2Yn4|7an#Eh(bF}@24JJDAILp((f|Me diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-7-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-k-1-7-snap.png index 70ded082d23c3e157ed04ccda77ff079ef2c2f26..e024f746f2264f07bad564c5ec902bc1966366ea 100644 GIT binary patch literal 823 zcmXw2e@GKi9N$`-nr>6)Of3tO6dfG8Wx~)%b5g6|L?}52 z3YS5esFnBwMN}M;+&=@4a??`FH2?5GNRbA{VrlOg!F%uS-S_*x-_MVCErt2nXebsc z5{Xb#j^R3ZI>E$`BVhfaw4W1+j_jKZ88;fl+q2hdv654U*`lN42gjDO(Z)+N8(NR6 z24nD|;BbPgOU#yO@MP>X>vi%sNxUus)zh@1u1_q-Xx^u$?tgOf!;9hh_k7`|RfB{u zbILIi_cItX^+pU2u?UqVA*QQ!LRGfOz15Q6sBCHWjwr@RsT|Y7n3t&U{#xw8a zPiC)??yVCOpPjtV$%DW$v%<(xPib5-#>fe?gjjEtq8@k3&#WxellGEM>i*wmr%%kD zl?8D;3(G9X={2cJ|=`F;)V??xzit~@r-&U3a& zmR9)B1BwXsft0eHt|^1=!DEEdV$2FC_YSaXRwX?eva|&f&|mRg?zBP4#NzI@COA&t zPPLnf^-OM>nsKQd0Cx!nhL%davkVC6D{WDLDWviYp*m=k?X}o$!NM>{3&aFU^oZH& z)X@;uyPF85le1p+VdF{=0Q-J;6cQ+C17$9vp4G2y>163uZtkJ%hY?{1m<(a_x6GY3 zu5#EWU(m?}(3rAD5uSN9XtAHmDgDK8Uxn@c!=6;I{eG?})qVjjUb07`uYC3h)RD5= zPP$8%+R`=d0SjoOuk3+PJ7~q2R}FNz3t>RC7EcrOSWQ`V5Mg@k3b3cgLgHf}r!)?z z91SV;g0WEs-wtuR2M)>jMxfom9ysmE}EM_W_O@>w<~p#vtXGtJjtLAR)E?fIHh@rP hawWt>?f1>Me?p{oYkzrdg#dmCk;#~E7|N`8@)wMBS%v@r literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFff&Sx;TbZFupw)9i;8a;Cyf~ zU-p0QYwhb+N@!*9G)meRmM{C^->>4xY-E15;mj3-6F$5rVqBSx!Y>+}ykKy0PKHBU zn`c_ajFh}pj5E()QSK|bqU?DGsKEKKg0YFh=P6PXeg-ic1v49|OHG(5HDTvYwiG)n zk4L`!AcZ!)ZK5+5CQe$I=$e-0kd_fKai)~ti9I}$QWGl6ANU@gEmxS&dxD4e#2TQz z+D6(SbK)lfjhUI!#+DM-2b9@k`N7SN_k_*dHv5H)GgmUs6b5p9n2p|x-8*^V!<3W> zJGje7Au`h;Z7Ji-)j*>J`QFs6Pn@vRz( z&a&`6JpW38FZb@}7Yp*)^)7BuGB#OrVvWh46%Zc+J()ElrS1wSC{JE!IOD}^qz&|# zi4QQmx_EfOfd*o$6n8RD2ZmQz$}%>PSC_Trp9F^d98fSli{=Hz0uOI9&~-pm;|UJC z89+sjAf;?6ejxcj@j&}OEH_msUi5I8)V!mO-Y0o@>p?-b=ER*jXD)p3;Eq;zKHQ&@ zv4C-Ac;SN}-u+6>ha;ubW=?I(H}x?B@l=Y1dE>JrQYHZ7Xr~$DQ%O^W&mq8oQsv(5 zYrWxjD03@YT*;^!JuCVt`6mJc!`SCQ@M5Ajmc%rfkMtLXTS00Ms9cA`X6Wdrgiwp zTu^yVE4FUWHL z+%=`|D9Un7XjYVR#n>A4{zjO-)j1FxEy*Ax7A6BRd=vpHe5h--hCo6h+?qGWpsE}1 zmT-drHxwEvJfF-byD`#gqHqI6>M-)p2{vz)IV_M0x2o~PCm0zi5!S>Yrs3-62mu~s z;uE9lE-p1K-HEy;hDr6u7CvI&PzVvs6)Tq-Et9R*%io5>FKTDSwqH?*xd7y~p*454 zU%?)WL^uRQ;KE3&D0{qLW$=j5kFc(U#vvVtX=Vjk}tg4cKpAp+K(0SLHfGyP*yQu^EIicCZx#mwUKWk1DMc>||Skaio_Gl*>w? z?L@A(+vl`)hZcH1t3HoMDB}m)b<>jd?&V&LOnfb>H+m|da<}c3WF+{>G?2bQ6rb3i zuG8IHXFkB$22dm*)!SyBqLiI`jtX$A2`1G4Vh=M8vCSgk6A=U}&p#(9lSf1#CZWPL zG5d6fy3(u)KuPlhGcr1=tgZmn$GV+B&44I+cEPADd*FraQJD(C+hiUgVK3Af+93v2 zUN0aqBwA`=#`-`H_@Ru|K=pY<3N#up^AIzZ4kZR{Tsn}nq)w9G-6QfT&AS>G#z--F-p_kDaGcjnY&9qNPmh(sb( zpA?@4y9uV;8-aCl%c)S2ND`%wk3Cc*o*#0i1?oic&NoG#p6%UB6Tcj1^?PPJ2F(|` z&Nmf2R{t<;P{|9@QOqSc%8%`f!<0?}UV%9z-ZDeBAEUDbTVNGXP^ z5;K+)8aE3iZ>}v@#IeC7r8!;$`RhX}`6p5GMFO*apBNq`jma#5g)!Ic{*M9WiT|Ve?J?HEvzgLPR~;@lfws~g58yl z=8~)Oy-@YriJDB60gq!91uaByCs3y8X2Qw#e6*RX;!+HO_3q2ksIeSx}<8ns=D^-0u8mr16>* z<+86!!RT8jvk$XcLX*xQ}fLBVv^nsdYS2_+jYlV{|a^z=#5R$;k3%ta$<0^S4 zrExFZ-`wjN^SaU(F?Tl0*-kaNdQ{;U)qBQfI(-7%s6)toR}u1}qA5FzRVbmFN)BWI zbO6eQW7cLOSkOQTO+gOfeU+i`DP(X##LT2%cmSUJ-z6X#JpwFjWD5-r|1$#=Sn+4< zVi`oalR&`UU1(u@z87PInx*N1ja35C>0>9eZ33C+R7?o86KF~Wh89{q7Rd$0YQ6)c g2Yn4|7an#Eh(bF}@24JJDAILp((f|Me diff --git a/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-7-snap.png b/tests_zemu/tests/__image_snapshots__/basic-spec-js-basic-checks-show-address-secp-256-r-1-7-snap.png index 70ded082d23c3e157ed04ccda77ff079ef2c2f26..e024f746f2264f07bad564c5ec902bc1966366ea 100644 GIT binary patch literal 823 zcmXw2e@GKi9N$`-nr>6)Of3tO6dfG8Wx~)%b5g6|L?}52 z3YS5esFnBwMN}M;+&=@4a??`FH2?5GNRbA{VrlOg!F%uS-S_*x-_MVCErt2nXebsc z5{Xb#j^R3ZI>E$`BVhfaw4W1+j_jKZ88;fl+q2hdv654U*`lN42gjDO(Z)+N8(NR6 z24nD|;BbPgOU#yO@MP>X>vi%sNxUus)zh@1u1_q-Xx^u$?tgOf!;9hh_k7`|RfB{u zbILIi_cItX^+pU2u?UqVA*QQ!LRGfOz15Q6sBCHWjwr@RsT|Y7n3t&U{#xw8a zPiC)??yVCOpPjtV$%DW$v%<(xPib5-#>fe?gjjEtq8@k3&#WxellGEM>i*wmr%%kD zl?8D;3(G9X={2cJ|=`F;)V??xzit~@r-&U3a& zmR9)B1BwXsft0eHt|^1=!DEEdV$2FC_YSaXRwX?eva|&f&|mRg?zBP4#NzI@COA&t zPPLnf^-OM>nsKQd0Cx!nhL%davkVC6D{WDLDWviYp*m=k?X}o$!NM>{3&aFU^oZH& z)X@;uyPF85le1p+VdF{=0Q-J;6cQ+C17$9vp4G2y>163uZtkJ%hY?{1m<(a_x6GY3 zu5#EWU(m?}(3rAD5uSN9XtAHmDgDK8Uxn@c!=6;I{eG?})qVjjUb07`uYC3h)RD5= zPP$8%+R`=d0SjoOuk3+PJ7~q2R}FNz3t>RC7EcrOSWQ`V5Mg@k3b3cgLgHf}r!)?z z91SV;g0WEs-wtuR2M)>jMxfom9ysmE}EM_W_O@>w<~p#vtXGtJjtLAR)E?fIHh@rP hawWt>?f1>Me?p{oYkzrdg#dmCk;#~E7|N`8@)wMBS%v@r literal 688 zcmeAS@N?(olHy`uVBq!ia0vp^4M42G!3HF6DHW(PFff&Sx;TbZFupw)9i;8a;Cyf~ zU-p0QYwhb+N@!*9G)meRmM{C^->>4xY-E15;mj3-6F$5rVqBSx!Y>+}ykKy0PKHBU zn`c_ajFh}pj5E()QSK|bqU?DGsKEKKg0YFh=P6PXeg-ic1v49|OHG(5HDTvYwiG)n zk4L`!AcZ!)ZK5+5CQe$I=$e-0kd_fKai)~ti9I}$QWGl6ANU@gEmxS&dxD4e#2TQz z+D6(SbK)lfjhUI!#+DM-2b9@k`N7SN_k_*dHv5H)GgmUs6b5p9n2p|x-8*^V!<3W> zJGje7Au`h;Z7Ji-)j*>J`QFs6Pn@vRz( z&a&`6JpW38FZb@}7Yp*)^)7BuGB#OrVvWh46%Zc+J()ElrS1wSC{JE!IOD}^qz&|# zi4QQmx_EfOfd*o$6n8RD2ZmQz$}%>PSC_Trp9F^d98fSli{=Hz0uOI9&~-pm;|UJC z89+sjAf;?6ejxcj@j&}OEH_msUi5I8)V!mO-Y0o@>p?-b=ER*jXD)p3;Eq;zKHQ&@ zv4C-Ac;SN}-u+6>ha;ubW=?I(H}x?B@l=Y1dE>JrQYHZ7Xr~$DQ%O^W&mq8oQsv(5 zYrWxj Date: Mon, 27 Sep 2021 20:44:40 +0200 Subject: [PATCH 10/10] Bump version to 0.9.11 --- app/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/Makefile b/app/Makefile index 5dc88473..3fe457d5 100755 --- a/app/Makefile +++ b/app/Makefile @@ -48,7 +48,7 @@ endif APPVERSION_M=0 APPVERSION_N=9 -APPVERSION_P=10 +APPVERSION_P=11 $(info COIN = [$(COIN)]) ifeq ($(COIN),FLOW)