diff --git a/contracts/v0.7/bridge/README.md b/contracts/v0.7/bridge/README.md index 1bd3b31..467f650 100644 --- a/contracts/v0.7/bridge/README.md +++ b/contracts/v0.7/bridge/README.md @@ -1,7 +1,6 @@ # LINK Token Bridge v0.7 - `./LinkTokenChild.sol`: A mintable & burnable child LinkToken contract to be used on child networks. -- `./utils/OpUnsafe.sol`: Contract module that used to mark and check safe/unsafe calls to a function. ## Optimism L2 bridge diff --git a/contracts/v0.7/bridge/optimism/OVM_EOACodeHashSet.sol b/contracts/v0.7/bridge/optimism/OVM_EOACodeHashSet.sol index 8f4c03f..4fb464c 100644 --- a/contracts/v0.7/bridge/optimism/OVM_EOACodeHashSet.sol +++ b/contracts/v0.7/bridge/optimism/OVM_EOACodeHashSet.sol @@ -29,6 +29,8 @@ abstract contract OVM_EOACodeHashSet is /* Initializable ,*/ OwnableUpgradeable // Declare the genesis OVM_ProxyEOA.sol EXTCODEHASH bytes32 constant OVM_EOA_CODE_HASH_V0 = 0x93bb081a7dd92bde63b4d0aa9b8612352b2ec585176a80efc0a2a277ecfc010e; bytes32 constant OVM_EOA_CODE_HASH_V1 = 0x8b4ea2cb36c232a7bab9d385b7054ff04752ec4c0fad5dc2ed4b1c18d982154c; + bytes32 constant OVM_EOA_CODE_HASH_V2 = 0xb6268ee2707994607682cc0e3b288cdd71acc63df8de0e6baa39a31a2b91d0ad; + bytes32 constant OVM_EOA_CODE_HASH_V3 = 0x93fae832274ff6aa942fa0c287fc0d8fe180f26b36c92e83d9be7e39309d3464; function __OVM_EOACodeHashSet_init() internal @@ -46,6 +48,8 @@ abstract contract OVM_EOACodeHashSet is /* Initializable ,*/ OwnableUpgradeable { s_codeHasheSet.add(OVM_EOA_CODE_HASH_V0); s_codeHasheSet.add(OVM_EOA_CODE_HASH_V1); + s_codeHasheSet.add(OVM_EOA_CODE_HASH_V2); + s_codeHasheSet.add(OVM_EOA_CODE_HASH_V3); } /// @notice Reverts if called by anyone other than whitelisted EOA contracts. diff --git a/contracts/v0.7/bridge/optimism/OVM_L1ERC20Gateway.sol b/contracts/v0.7/bridge/optimism/OVM_L1ERC20Gateway.sol index 5755b36..c675b26 100644 --- a/contracts/v0.7/bridge/optimism/OVM_L1ERC20Gateway.sol +++ b/contracts/v0.7/bridge/optimism/OVM_L1ERC20Gateway.sol @@ -13,7 +13,6 @@ import { Address } from "@openzeppelin/contracts/utils/Address.sol"; /* Contract Imports */ import { Initializable } from "@openzeppelin/contracts/proxy/Initializable.sol"; import { Abs_L1TokenGateway } from "@eth-optimism/contracts/OVM/bridge/tokens/Abs_L1TokenGateway.sol"; -import { OpUnsafe } from "../utils/OpUnsafe.sol"; /** * @title OVM_L1ERC20Gateway @@ -29,7 +28,7 @@ import { OpUnsafe } from "../utils/OpUnsafe.sol"; * Compiler used: solc * Runtime target: EVM */ -contract OVM_L1ERC20Gateway is ERC677Receiver, Initializable, OpUnsafe, Abs_L1TokenGateway { +contract OVM_L1ERC20Gateway is ERC677Receiver, Initializable, Abs_L1TokenGateway { // L1 token we are bridging to L2 IERC20 public s_l1ERC20; @@ -79,12 +78,6 @@ contract OVM_L1ERC20Gateway is ERC677Receiver, Initializable, OpUnsafe, Abs_L1To l2DepositedToken = l2ERC20Gateway; messenger = l1Messenger; - // Default gas value which should be modified if more complex logic runs on L2. - // NOTICE: this is not a constant, but a storage var, so we need to explicitly - // init here if using the contract in a delegatecall context. - DEFAULT_FINALIZE_DEPOSIT_L2_GAS = 1200000; - - __OVM_L1ERC20Gateway_init_unchained(l1ERC20); } @@ -107,6 +100,13 @@ contract OVM_L1ERC20Gateway is ERC677Receiver, Initializable, OpUnsafe, Abs_L1To _; } + /// @dev Modifier requiring sender to be EOA + modifier onlyEOA(address acc) { + // Used to stop withdrawals to contracts (avoid accidentally lost tokens) + require(!Address.isContract(acc), "Account not EOA"); + _; + } + /// @dev Returns L2 ERC20 Gateway address (AKA l2DepositedToken). function l2ERC20Gateway() public @@ -132,11 +132,41 @@ contract OVM_L1ERC20Gateway is ERC677Receiver, Initializable, OpUnsafe, Abs_L1To ) external override + onlyEOA(_sender) { require(msg.sender == address(s_l1ERC20), "onTokenTransfer sender not valid"); _initiateDeposit(_sender, _sender, _value); } + /** + * @notice Only accessible by EOA sender. + * @inheritdoc Abs_L1TokenGateway + */ + function deposit( + uint _amount + ) + external + override + onlyEOA(msg.sender) + { + _initiateDeposit(msg.sender, msg.sender, _amount); + } + + /** + * @notice Recipient account must be EOA. + * @inheritdoc Abs_L1TokenGateway + */ + function depositTo( + address _to, + uint _amount + ) + external + override + onlyEOA(_to) + { + _initiateDeposit(msg.sender, _to, _amount); + } + /** * @dev deposit an amount of ERC20 to a recipients's balance on L2 * WARNING: This is a potentially unsafe operation that could end up with lost tokens, @@ -150,7 +180,6 @@ contract OVM_L1ERC20Gateway is ERC677Receiver, Initializable, OpUnsafe, Abs_L1To uint _amount ) external - unsafe() { _initiateDeposit(msg.sender, _to, _amount); } @@ -172,9 +201,6 @@ contract OVM_L1ERC20Gateway is ERC677Receiver, Initializable, OpUnsafe, Abs_L1To override onlyInitialized() { - // Unless explicitly unsafe op, stop deposits to contracts (avoid accidentally lost tokens) - require(_isUnsafe() || !Address.isContract(_to), "Unsafe deposit to contract"); - // Funds already transfered via trasferAndCall (skipping) if (msg.sender == address(s_l1ERC20)) return; diff --git a/contracts/v0.7/bridge/optimism/OVM_L2ERC20Gateway.sol b/contracts/v0.7/bridge/optimism/OVM_L2ERC20Gateway.sol index ba17ee8..07d249f 100644 --- a/contracts/v0.7/bridge/optimism/OVM_L2ERC20Gateway.sol +++ b/contracts/v0.7/bridge/optimism/OVM_L2ERC20Gateway.sol @@ -13,7 +13,6 @@ import { Address } from "@openzeppelin/contracts/utils/Address.sol"; import { Initializable } from "@openzeppelin/contracts/proxy/Initializable.sol"; import { iOVM_L1TokenGateway } from "@eth-optimism/contracts/iOVM/bridge/tokens/iOVM_L1TokenGateway.sol"; import { Abs_L2DepositedToken } from "@eth-optimism/contracts/OVM/bridge/tokens/Abs_L2DepositedToken.sol"; -import { OpUnsafe } from "../utils/OpUnsafe.sol"; import { OVM_EOACodeHashSet } from "./OVM_EOACodeHashSet.sol"; /** @@ -25,7 +24,7 @@ import { OVM_EOACodeHashSet } from "./OVM_EOACodeHashSet.sol"; * Compiler used: optimistic-solc * Runtime target: OVM */ -contract OVM_L2ERC20Gateway is ERC677Receiver, /* Initializable ,*/ OpUnsafe, OVM_EOACodeHashSet, Abs_L2DepositedToken { +contract OVM_L2ERC20Gateway is ERC677Receiver, /* Initializable ,*/ OVM_EOACodeHashSet, Abs_L2DepositedToken { // Bridged L2 token IERC20Child public s_l2ERC20; @@ -95,6 +94,13 @@ contract OVM_L2ERC20Gateway is ERC677Receiver, /* Initializable ,*/ OpUnsafe, OV s_l2ERC20 = IERC20Child(l2ERC20); } + /// @dev Modifier requiring sender to be EOA + modifier onlyEOA(address acc) { + // Used to stop withdrawals to contracts (avoid accidentally lost tokens) + require(!Address.isContract(acc) || _isEOAContract(acc), "Account not EOA"); + _; + } + /** * @dev Hook on successful token transfer that initializes withdrawal * @notice Avoids two step approve/transferFrom, only accessible by EOA sender via ERC677 transferAndCall. @@ -107,11 +113,41 @@ contract OVM_L2ERC20Gateway is ERC677Receiver, /* Initializable ,*/ OpUnsafe, OV ) external override + onlyEOA(_sender) { require(msg.sender == address(s_l2ERC20), "onTokenTransfer sender not valid"); _initiateWithdrawal(_sender, _value); } + /** + * @notice Only accessible by EOA sender. + * @inheritdoc Abs_L2DepositedToken + */ + function withdraw( + uint _amount + ) + external + override + onlyEOA(msg.sender) + { + _initiateWithdrawal(msg.sender, _amount); + } + + /** + * @notice Recipient account must be EOA. + * @inheritdoc Abs_L2DepositedToken + */ + function withdrawTo( + address _to, + uint _amount + ) + external + override + onlyEOA(_to) + { + _initiateWithdrawal(_to, _amount); + } + /** * @dev initiate a withdraw of some token to a recipient's account on L1 * WARNING: This is a potentially unsafe operation that could end up with lost tokens, @@ -125,7 +161,6 @@ contract OVM_L2ERC20Gateway is ERC677Receiver, /* Initializable ,*/ OpUnsafe, OV uint _amount ) external - unsafe() { _initiateWithdrawal(_to, _amount); } @@ -142,9 +177,6 @@ contract OVM_L2ERC20Gateway is ERC677Receiver, /* Initializable ,*/ OpUnsafe, OV override onlyInitialized() { - // Unless explicitly unsafe op, stop withdrawals to contracts (avoid accidentally lost tokens) - require(_isUnsafe() || !Address.isContract(_to) || _isEOAContract(_to), "Unsafe withdraw to contract"); - // Check if funds already transfered via trasferAndCall (skipping) if (msg.sender != address(s_l2ERC20)) { // Take the newly deposited funds (must be approved) diff --git a/contracts/v0.7/bridge/utils/OpUnsafe.sol b/contracts/v0.7/bridge/utils/OpUnsafe.sol deleted file mode 100644 index 0209ae6..0000000 --- a/contracts/v0.7/bridge/utils/OpUnsafe.sol +++ /dev/null @@ -1,49 +0,0 @@ -// SPDX-License-Identifier: MIT -pragma solidity >0.6.0 <0.8.0; - -/** - * @dev Contract module that used to mark and check safe/unsafe calls to a function. - * - * Inheriting from `OpUnsafe` will make the {unsafe} and {safe} modifiers - * available, which can be applied to functions to indicate safe or unsafe operations. - * Private {_isUnsafe} function can be used to check if an unsafe operation is in progress, - * which can be useful to disable some checks that are enabled by default. - */ -abstract contract OpUnsafe { - /// @dev Indicates that we are doing an unsafe operation. - bool private s_unsafe; - - /// @dev Modifier to declare an function as unsafe. - modifier unsafe() { - // Top level function call indicator - bool alreadyUnsafe = s_unsafe; - - // Mark as unsafe only if top level function call - if (!alreadyUnsafe) { - s_unsafe = true; - } - - _; - - // Mark as safe only if top level function call - if (!alreadyUnsafe) { - s_unsafe = false; - } - } - - /// @dev Modifier to require safe execution. - modifier safe() { - require(!s_unsafe, "OpUnsafe: unsafe call"); - - _; - } - - /// @dev Returns true if and only if the function is running in unsafe mode - function _isUnsafe() - internal - view - returns (bool) - { - return s_unsafe; - } -} diff --git a/package.json b/package.json index e058b6a..76667fa 100644 --- a/package.json +++ b/package.json @@ -17,8 +17,8 @@ "contracts/*" ], "scripts": { - "clean": "tsc -b --clean tsconfig.json && rm -rf build/", "prepack": "yarn setup", + "clean": "tsc -b --clean tsconfig.json && rm -rf build/", "setup": "yarn build:contracts && yarn build", "lint": "echo \"Please set up linter\"", "build": "tsc -p tsconfig.json", @@ -37,11 +37,13 @@ "dependencies": { "@chainlink/contracts": "^0.1.6", "@chainlink/optimism-utils": "https://github.com/smartcontractkit/optimism-utils.git", - "@eth-optimism/contracts": "^0.2.4", + "@eth-optimism/contracts": "^0.2.7", + "@ethersproject/bignumber": "^5.1.1", + "@ethersproject/units": "^5.1.0", "@openzeppelin/contracts": "3.4.0", "@openzeppelin/contracts-upgradeable": "3.4.0", "dotenv": "^8.2.0", - "ethers": "^5.1.0", + "ethers": "^5.1.3", "glob": "^7.1.6", "hardhat": "^2.2.0", "lodash": "^4.17.21", @@ -67,8 +69,5 @@ "ts-node": "^9.1.1", "typechain": "^4.0.3", "typescript": "^4.2.3" - }, - "resolutions": { - "@eth-optimism/core-utils": "^0.2.3" } } diff --git a/scripts/deposit-withdraw.ts b/scripts/deposit-withdraw.ts index 59ffc36..57ed8f3 100644 --- a/scripts/deposit-withdraw.ts +++ b/scripts/deposit-withdraw.ts @@ -1,4 +1,5 @@ -import { Wallet, Contract, BigNumberish } from 'ethers' +import { Wallet, Contract } from 'ethers' +import { BigNumberish } from '@ethersproject/bignumber' import { parseEther } from '@ethersproject/units' import { Direction, waitForXDomainTransaction } from '@chainlink/optimism-utils/dist/watcher-utils' import { argv, getContractFactory, deploy, optimism, Targets, Versions } from '../src' @@ -206,7 +207,7 @@ const _run = async () => { const targetNetwork = (argv.network as string) || 'local' const oe = await optimism.loadEnv(targetNetwork) // Fund L2 wallet - await oe.depositL2(parseEther('1')) + await oe.depositL2(parseEther('1') as BigNumberish) // Start scripts await depositAndWithdraw( oe, diff --git a/src/optimism/index.ts b/src/optimism/index.ts index 9a0b546..f8ebe90 100644 --- a/src/optimism/index.ts +++ b/src/optimism/index.ts @@ -34,7 +34,7 @@ export const loadEnv = async (envName: string = 'local'): Promise { const contractAddr = l1Token.address const amount = totalAmount - await expect(l1Gateway.depositTo(contractAddr, amount)).to.be.revertedWith( - 'Unsafe deposit to contract', - ) + await expect(l1Gateway.depositTo(contractAddr, amount)).to.be.revertedWith('Account not EOA') }) it('can depositToUnsafe contract', async () => { @@ -123,7 +121,7 @@ describe(`OVM_L1ERC20Gateway ${Versions.v0_7}`, () => { // Mock contract tries (fails) to transferAndCall to L1 Gateway const payload = [l1Token.address, l1Gateway.address, amount, Buffer.from('')] await expect(erc677CallerMock.callTransferAndCall(...payload)).to.be.revertedWith( - 'Unsafe deposit to contract', + 'Account not EOA', ) }) diff --git a/test/v0.7/bridge/optimism/OVM_L2ERC20Gateway.test.ts b/test/v0.7/bridge/optimism/OVM_L2ERC20Gateway.test.ts index 289ec59..e88144d 100644 --- a/test/v0.7/bridge/optimism/OVM_L2ERC20Gateway.test.ts +++ b/test/v0.7/bridge/optimism/OVM_L2ERC20Gateway.test.ts @@ -1,5 +1,5 @@ import { expect } from 'chai' -import { Wallet, Contract } from 'ethers' +import { Wallet, Contract, BigNumberish } from 'ethers' import { getContractFactory, deploy, Targets, Versions, optimism } from '../../../../src' import * as h from '../../../helpers' @@ -19,7 +19,7 @@ describe(`OVM_L2ERC20Gateway ${Versions.v0_7}`, () => { // Load the configuration from environment oe = await optimism.loadEnv() - await oe.depositL2(parseEther('1')) + await oe.depositL2(parseEther('1') as BigNumberish) // Deploy LinkTokenChild contract l2Token = await deploy( @@ -111,7 +111,7 @@ describe(`OVM_L2ERC20Gateway ${Versions.v0_7}`, () => { ) // TODO: fetch revert reason - // revert: Unsafe withdraw to contract + // revert: Account not EOA await h.txRevert(withdrawToTx.wait()) }).timeout(10000) @@ -171,7 +171,7 @@ describe(`OVM_L2ERC20Gateway ${Versions.v0_7}`, () => { ) // TODO: fetch revert reason - // revert: Unsafe deposit to contract + // revert: Account not EOA await h.txRevert(callTransferAndCallTx.wait()) }) }).timeout(10000) diff --git a/test/v0.7/bridge/optimism/deposit-withdraw.test.ts b/test/v0.7/bridge/optimism/deposit-withdraw.test.ts index 29e231b..b1b6ed7 100644 --- a/test/v0.7/bridge/optimism/deposit-withdraw.test.ts +++ b/test/v0.7/bridge/optimism/deposit-withdraw.test.ts @@ -1,3 +1,4 @@ +import { BigNumberish } from '@ethersproject/bignumber' import { parseEther } from '@ethersproject/units' import { expect } from 'chai' import { depositAndWithdraw, CheckBalances } from '../../../../scripts/deposit-withdraw' @@ -14,7 +15,7 @@ import * as h from '../../../helpers' // Load the configuration from environment oe = await optimism.loadEnv() // Fund L2 wallet - await oe.depositL2(parseEther('1')) + await oe.depositL2(parseEther('1') as BigNumberish) }) const checkBalances = (step = 0): CheckBalances => async ( diff --git a/yarn.lock b/yarn.lock index 7b105ac..94b37cf 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,11 +12,14 @@ "@chainlink/optimism-utils@https://github.com/smartcontractkit/optimism-utils.git": version "0.0.1-alpha" - resolved "https://github.com/smartcontractkit/optimism-utils.git#46af85090068a118c57abeb2a20ab91a4de7ae81" + resolved "https://github.com/smartcontractkit/optimism-utils.git#b1415a2b4067fd757f0730d597bbb0d4f85a300f" dependencies: - "@eth-optimism/contracts" "^0.2.4" - "@eth-optimism/core-utils" "^0.2.1" - ethers "^5.1.0" + "@eth-optimism/contracts" "^0.2.7" + "@eth-optimism/core-utils" "^0.3.1" + "@ethersproject/bignumber" "^5.1.1" + "@ethersproject/providers" "^5.1.2" + "@ethersproject/units" "^5.1.0" + ethers "^5.1.3" "@ensdomains/ens@^0.4.4": version "0.4.5" @@ -34,12 +37,12 @@ resolved "https://registry.yarnpkg.com/@ensdomains/resolver/-/resolver-0.2.4.tgz#c10fe28bf5efbf49bff4666d909aed0265efbc89" integrity sha512-bvaTH34PMCbv6anRa9I/0zjLJgY4EuznbEMgbV77JBCQ9KNC46rzi0avuxpOfu+xDjPEtSFGqVEOr5GlUSGudA== -"@eth-optimism/contracts@^0.2.4": - version "0.2.4" - resolved "https://registry.yarnpkg.com/@eth-optimism/contracts/-/contracts-0.2.4.tgz#b54cc64c914cabc650942035556664eb003957ae" - integrity sha512-ddYFjJ0aEGYY66/YvAI3zjEsHHxxOpUVK4yRQL1JGioNc/we+tkrUOtg6mgmNgEsZRJC5fQsQBsAVdkLDKyn6A== +"@eth-optimism/contracts@^0.2.7": + version "0.2.7" + resolved "https://registry.yarnpkg.com/@eth-optimism/contracts/-/contracts-0.2.7.tgz#ab3b1f5e30f36d1f5fd4449e9031d8bb9a920ceb" + integrity sha512-hPaMq+cqdzzXFGdaitlAo5vlUVPoui4zTfkqlXC1Rd12gHxObPYeY1Bhva67i6lQ4OQybmXAYi16fEYWdXTDzA== dependencies: - "@eth-optimism/core-utils" "^0.2.1" + "@eth-optimism/core-utils" "^0.3.1" "@eth-optimism/solc" "^0.6.12-alpha.1" "@ethersproject/abstract-provider" "^5.0.8" "@ethersproject/contracts" "^5.0.5" @@ -48,15 +51,20 @@ ganache-core "^2.13.2" glob "^7.1.6" -"@eth-optimism/core-utils@^0.2.1", "@eth-optimism/core-utils@^0.2.3": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@eth-optimism/core-utils/-/core-utils-0.2.3.tgz#67e4137e11288f7cb03b8f4268c76356c296c7f7" - integrity sha512-1+D+wFo73Wm58DbLzQT2SGAvCyHi43vRKFdz5es5jBfgxhBf4TKYSiqEdESo6XaG8kyWNXS6SKrkq/hXETEQYw== +"@eth-optimism/core-utils@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@eth-optimism/core-utils/-/core-utils-0.3.1.tgz#c7979e6fddcd16fa4e466b52bdceaf2260106c32" + integrity sha512-0zqbk2xPUB8dzdquYR2jlRML0IMsy7fOWDmUhaUyV7TS8PhSDDx/Yj/edR86jjncV1AMDanDrxtZlnCLPXPXog== dependencies: "@ethersproject/abstract-provider" "^5.0.9" + "@sentry/node" "^6.3.0" + "@types/pino-multi-stream" "^5.1.1" ethers "^5.0.31" lodash "^4.17.21" pino "^6.11.1" + pino-multi-stream "^5.3.0" + pino-sentry "^0.7.0" + prom-client "^13.1.0" "@eth-optimism/hardhat-ovm@^0.0.2": version "0.0.2" @@ -248,6 +256,21 @@ "@ethersproject/properties" "^5.1.0" "@ethersproject/strings" "^5.1.0" +"@ethersproject/abi@5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.1.1.tgz#79525f582338d98660ac709c65b44c3c081ed2fc" + integrity sha512-UNmhRL4ngm1nCWvhJWRd55PvP1JWojGD4BR63JxyiiWZQAszYzaHHeYdRcj+NY3S0kV6SmAS2dZWSBOZPnXbSw== + dependencies: + "@ethersproject/address" "^5.1.0" + "@ethersproject/bignumber" "^5.1.0" + "@ethersproject/bytes" "^5.1.0" + "@ethersproject/constants" "^5.1.0" + "@ethersproject/hash" "^5.1.0" + "@ethersproject/keccak256" "^5.1.0" + "@ethersproject/logger" "^5.1.0" + "@ethersproject/properties" "^5.1.0" + "@ethersproject/strings" "^5.1.0" + "@ethersproject/abstract-provider@5.1.0", "@ethersproject/abstract-provider@^5.0.8", "@ethersproject/abstract-provider@^5.0.9", "@ethersproject/abstract-provider@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.1.0.tgz#1f24c56cda5524ef4ed3cfc562a01d6b6f8eeb0b" @@ -307,6 +330,15 @@ "@ethersproject/logger" "^5.1.0" bn.js "^4.4.0" +"@ethersproject/bignumber@5.1.1", "@ethersproject/bignumber@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.1.1.tgz#84812695253ccbc639117f7ac49ee1529b68e637" + integrity sha512-AVz5iqz7+70RIqoQTznsdJ6DOVBYciNlvO+AlQmPTB6ofCvoihI9bQdr6wljsX+d5W7Yc4nyvQvP4JMzg0Agig== + dependencies: + "@ethersproject/bytes" "^5.1.0" + "@ethersproject/logger" "^5.1.0" + bn.js "^4.4.0" + "@ethersproject/bytes@5.1.0", "@ethersproject/bytes@>=5.0.0-beta.129", "@ethersproject/bytes@^5.0.4", "@ethersproject/bytes@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.1.0.tgz#55dfa9c4c21df1b1b538be3accb50fb76d5facfd" @@ -337,6 +369,22 @@ "@ethersproject/properties" "^5.1.0" "@ethersproject/transactions" "^5.1.0" +"@ethersproject/contracts@5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.1.1.tgz#c66cb6d618fcbd73e20a6b808e8f768b2b781d0b" + integrity sha512-6WwktLJ0DFWU8pDkgH4IGttQHhQN4SnwKFu9h+QYVe48VGWtbDu4W8/q/7QA1u/HWlWMrKxqawPiZUJj0UMvOw== + dependencies: + "@ethersproject/abi" "^5.1.0" + "@ethersproject/abstract-provider" "^5.1.0" + "@ethersproject/abstract-signer" "^5.1.0" + "@ethersproject/address" "^5.1.0" + "@ethersproject/bignumber" "^5.1.0" + "@ethersproject/bytes" "^5.1.0" + "@ethersproject/constants" "^5.1.0" + "@ethersproject/logger" "^5.1.0" + "@ethersproject/properties" "^5.1.0" + "@ethersproject/transactions" "^5.1.0" + "@ethersproject/hash@5.1.0", "@ethersproject/hash@>=5.0.0-beta.128", "@ethersproject/hash@^5.0.4", "@ethersproject/hash@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.1.0.tgz#40961d64837d57f580b7b055e0d74174876d891e" @@ -448,6 +496,31 @@ bech32 "1.1.4" ws "7.2.3" +"@ethersproject/providers@5.1.2", "@ethersproject/providers@^5.1.2": + version "5.1.2" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.1.2.tgz#4e4459698903f911402fe91aa7544eb07f3921ed" + integrity sha512-GqsS8rd+eyd4eNkcNgzZ4l9IRULBPUZa7JPnv22k4MHflMobUseyhfbVnmoN5bVNNkOxjV1IPTw9i0sV1hwdpg== + dependencies: + "@ethersproject/abstract-provider" "^5.1.0" + "@ethersproject/abstract-signer" "^5.1.0" + "@ethersproject/address" "^5.1.0" + "@ethersproject/basex" "^5.1.0" + "@ethersproject/bignumber" "^5.1.0" + "@ethersproject/bytes" "^5.1.0" + "@ethersproject/constants" "^5.1.0" + "@ethersproject/hash" "^5.1.0" + "@ethersproject/logger" "^5.1.0" + "@ethersproject/networks" "^5.1.0" + "@ethersproject/properties" "^5.1.0" + "@ethersproject/random" "^5.1.0" + "@ethersproject/rlp" "^5.1.0" + "@ethersproject/sha2" "^5.1.0" + "@ethersproject/strings" "^5.1.0" + "@ethersproject/transactions" "^5.1.0" + "@ethersproject/web" "^5.1.0" + bech32 "1.1.4" + ws "7.2.3" + "@ethersproject/random@5.1.0", "@ethersproject/random@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.1.0.tgz#0bdff2554df03ebc5f75689614f2d58ea0d9a71f" @@ -519,7 +592,22 @@ "@ethersproject/rlp" "^5.1.0" "@ethersproject/signing-key" "^5.1.0" -"@ethersproject/units@5.1.0": +"@ethersproject/transactions@5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.1.1.tgz#5a6bbb25fb062c3cc75eb0db12faefcdd3870813" + integrity sha512-Nwgbp09ttIVN0OoUBatCXaHxR7grWPHbozJN8v7AXDLrl6nnOIBEMDh+yJTnosSQlFhcyjfTGGN+Mx6R8HdvMw== + dependencies: + "@ethersproject/address" "^5.1.0" + "@ethersproject/bignumber" "^5.1.0" + "@ethersproject/bytes" "^5.1.0" + "@ethersproject/constants" "^5.1.0" + "@ethersproject/keccak256" "^5.1.0" + "@ethersproject/logger" "^5.1.0" + "@ethersproject/properties" "^5.1.0" + "@ethersproject/rlp" "^5.1.0" + "@ethersproject/signing-key" "^5.1.0" + +"@ethersproject/units@5.1.0", "@ethersproject/units@^5.1.0": version "5.1.0" resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.1.0.tgz#b6ab3430ebc22adc3cb4839516496f167bee3ad5" integrity sha512-isvJrx6qG0nKWfxsGORNjmOq/nh175fStfvRTA2xEKrGqx8JNJY83fswu4GkILowfriEM/eYpretfJnfzi7YhA== @@ -647,6 +735,17 @@ "@sentry/utils" "5.30.0" tslib "^1.9.3" +"@sentry/core@6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@sentry/core/-/core-6.3.1.tgz#5e32ca919c9be30fec0bb3125a556bc711584bdf" + integrity sha512-aVuvVbaehGeN86jZlLDGGkhEtprdOtB6lvYLfGy40Dj1Tkh2mGWE550QsRXAXAqYvQzIYwQR23r6m3o8FujgVg== + dependencies: + "@sentry/hub" "6.3.1" + "@sentry/minimal" "6.3.1" + "@sentry/types" "6.3.1" + "@sentry/utils" "6.3.1" + tslib "^1.9.3" + "@sentry/hub@5.30.0": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-5.30.0.tgz#2453be9b9cb903404366e198bd30c7ca74cdc100" @@ -656,6 +755,15 @@ "@sentry/utils" "5.30.0" tslib "^1.9.3" +"@sentry/hub@6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@sentry/hub/-/hub-6.3.1.tgz#dda07888a82d1c48bbefa00205bfa9d035691f07" + integrity sha512-2er+OeVlsdVZkhl9kXQAANwgjwoCdM1etK2iFuhzX8xkMaJlAuZLyQInv2U1BbXBlIfWjvzRM8B95hCWvVrR3Q== + dependencies: + "@sentry/types" "6.3.1" + "@sentry/utils" "6.3.1" + tslib "^1.9.3" + "@sentry/minimal@5.30.0": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-5.30.0.tgz#ce3d3a6a273428e0084adcb800bc12e72d34637b" @@ -665,6 +773,15 @@ "@sentry/types" "5.30.0" tslib "^1.9.3" +"@sentry/minimal@6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@sentry/minimal/-/minimal-6.3.1.tgz#38f71c77e8820555effb6e868336d4f5672018cd" + integrity sha512-0eN9S7HvXsCQEjX/qXHTMgvSb3mwrnZEWS9Qz/Bz5ig9pEGXKgJ1om5NTTHVHhXqd3wFCjdvIo6slufLHoCtSw== + dependencies: + "@sentry/hub" "6.3.1" + "@sentry/types" "6.3.1" + tslib "^1.9.3" + "@sentry/node@^5.18.1": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/node/-/node-5.30.0.tgz#4ca479e799b1021285d7fe12ac0858951c11cd48" @@ -680,6 +797,21 @@ lru_map "^0.3.3" tslib "^1.9.3" +"@sentry/node@^6.2.5", "@sentry/node@^6.3.0": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@sentry/node/-/node-6.3.1.tgz#0f81a0e352fa5b3e36bcc53adb6e26cd214c637d" + integrity sha512-D0r603fdNwUPkwvy0IcQaUSTafl+7lrOytiO5dfdLdlkhtTcwivwENc/n8ER8GOC2zpIvYOEIJvzP4PGL85khw== + dependencies: + "@sentry/core" "6.3.1" + "@sentry/hub" "6.3.1" + "@sentry/tracing" "6.3.1" + "@sentry/types" "6.3.1" + "@sentry/utils" "6.3.1" + cookie "^0.4.1" + https-proxy-agent "^5.0.0" + lru_map "^0.3.3" + tslib "^1.9.3" + "@sentry/tracing@5.30.0": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-5.30.0.tgz#501d21f00c3f3be7f7635d8710da70d9419d4e1f" @@ -691,11 +823,27 @@ "@sentry/utils" "5.30.0" tslib "^1.9.3" +"@sentry/tracing@6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@sentry/tracing/-/tracing-6.3.1.tgz#3b96aabf4d9cebadfec070c006db79801a68ee24" + integrity sha512-qveDmoWsXy9qLEblZJwJ1OU/zZRlEd/q7Jhd0Hnwlob8Ci96huABEbYyGdJs18BKVHEFU3gSdVfvrikUE/W17g== + dependencies: + "@sentry/hub" "6.3.1" + "@sentry/minimal" "6.3.1" + "@sentry/types" "6.3.1" + "@sentry/utils" "6.3.1" + tslib "^1.9.3" + "@sentry/types@5.30.0": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/types/-/types-5.30.0.tgz#19709bbe12a1a0115bc790b8942917da5636f402" integrity sha512-R8xOqlSTZ+htqrfteCWU5Nk0CDN5ApUTvrlvBuiH1DyP6czDZ4ktbZB0hAgBlVcK0U+qpD3ag3Tqqpa5Q67rPw== +"@sentry/types@6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@sentry/types/-/types-6.3.1.tgz#af3b54728b29f633f38fbe51b8c10e3834fbc158" + integrity sha512-BEBn8JX1yaooCAuonbaMci9z0RjwwMbQ3Eny/eyDdd+rjXprZCZaStZnCvSThbNBqAJ8YaUqY2YBMnEwJxarAw== + "@sentry/utils@5.30.0": version "5.30.0" resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-5.30.0.tgz#9a5bd7ccff85ccfe7856d493bffa64cabc41e980" @@ -704,6 +852,14 @@ "@sentry/types" "5.30.0" tslib "^1.9.3" +"@sentry/utils@6.3.1": + version "6.3.1" + resolved "https://registry.yarnpkg.com/@sentry/utils/-/utils-6.3.1.tgz#6d8e691139b5b49d8c655ad1dcaf2cb3ff0d0b03" + integrity sha512-cdtl/QWC9FtinAuW3w8QfvSfh/Q9ui5vwvjzVHiS1ga/U38edi2XX+cttY39ZYwz0SQG99cE10GOIhd1p7/mAA== + dependencies: + "@sentry/types" "6.3.1" + tslib "^1.9.3" + "@sindresorhus/is@^0.14.0": version "0.14.0" resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" @@ -932,6 +1088,37 @@ dependencies: "@types/node" "*" +"@types/pino-multi-stream@^5.1.1": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/pino-multi-stream/-/pino-multi-stream-5.1.1.tgz#8d5bc607357324621667c8a5613d4a534c075d0f" + integrity sha512-juOdSxwfE5TFKJJlq/VzXxTRyO+9yI9RZoyh/CYnof8MvqM+aUSUP1ZXGTuOZe7qgQnGp8xr8NHU2O/rTrYysA== + dependencies: + "@types/pino" "*" + +"@types/pino-pretty@*": + version "4.7.0" + resolved "https://registry.yarnpkg.com/@types/pino-pretty/-/pino-pretty-4.7.0.tgz#e4a18541f8464d1cc48216f5593cc6a0e62dc2c3" + integrity sha512-fIZ+VXf9gJoJR4tiiM7G+j/bZkPoZEfFGzA4d8tAWCTpTVyvVaBwnmdLs3wEXYpMjw8eXulrOzNCjmGHT3FgHw== + dependencies: + "@types/pino" "*" + +"@types/pino-std-serializers@*": + version "2.4.1" + resolved "https://registry.yarnpkg.com/@types/pino-std-serializers/-/pino-std-serializers-2.4.1.tgz#f8bd52a209c8b3c97d1533b1ba27f57c816382bf" + integrity sha512-17XcksO47M24IVTVKPeAByWUd3Oez7EbIjXpSbzMPhXVzgjGtrOa49gKBwxH9hb8dKv58OelsWQ+A1G1l9S3wQ== + dependencies: + "@types/node" "*" + +"@types/pino@*": + version "6.3.7" + resolved "https://registry.yarnpkg.com/@types/pino/-/pino-6.3.7.tgz#0ccef98a159230cb3fa2589c7e8b00a7550a69f6" + integrity sha512-v7FdDXVEL0Zx1zcCf0cJZMojChnF+O0ujDKV1UdocsLuUhENjdtNIaanCZK1zRELp35x//bI2/IHtYUK0vmRvw== + dependencies: + "@types/node" "*" + "@types/pino-pretty" "*" + "@types/pino-std-serializers" "*" + "@types/sonic-boom" "*" + "@types/prettier@^2.1.1": version "2.2.3" resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0" @@ -971,6 +1158,13 @@ resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-6.0.2.tgz#3a84cf5ec3249439015e14049bd3161419bf9eae" integrity sha512-dIPoZ3g5gcx9zZEszaxLSVTvMReD3xxyyDnQUjA6IYDG9Ba2AV0otMPs+77sG9ojB4Qr2N2Vk5RnKeuA0X/0bg== +"@types/sonic-boom@*": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@types/sonic-boom/-/sonic-boom-0.7.0.tgz#38337036293992a1df65dd3161abddf8fb9b7176" + integrity sha512-AfqR0fZMoUXUNwusgXKxcE9DPlHNDHQp6nKYUd4PSRpLobF5CCevSpyTEBcVZreqaWKCnGBr9KI1fHMTttoB7A== + dependencies: + "@types/node" "*" + "@types/underscore@*": version "1.11.0" resolved "https://registry.yarnpkg.com/@types/underscore/-/underscore-1.11.0.tgz#bb33549f8f89957fdf959c16e4c1d0eaa5bf985d" @@ -1917,6 +2111,11 @@ binary-extensions@^2.0.0: resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== +bintrees@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bintrees/-/bintrees-1.0.1.tgz#0e655c9b9c2435eaab68bf4027226d2b55a34524" + integrity sha1-DmVcm5wkNeqraL9AJyJtK1WjRSQ= + bip39@2.5.0: version "2.5.0" resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.5.0.tgz#51cbd5179460504a63ea3c000db3f787ca051235" @@ -2476,6 +2675,11 @@ commander@3.0.2: resolved "https://registry.yarnpkg.com/commander/-/commander-3.0.2.tgz#6837c3fb677ad9933d1cfba42dd14d5117d6b39e" integrity sha512-Gar0ASD4BDyKC4hl4DwHqDrmvjoxWKZigVnAbn5H1owvm4CxCPdb0HQDehwNYMJpla5+M2tPmPARzhtYuwpHow== +commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + component-emitter@^1.2.1: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -2920,6 +3124,16 @@ duplexer3@^0.1.4: resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= +duplexify@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-4.1.1.tgz#7027dc374f157b122a8ae08c2d3ea4d2d953aa61" + integrity sha512-DY3xVEmVHTv1wSzKNbwoU6nVjzI369Y6sPoqfYr0/xlx3IdX2n94xIszTcjPO8W8ZIv0Wb0PXNcjuZyT4wiICA== + dependencies: + end-of-stream "^1.4.1" + inherits "^2.0.3" + readable-stream "^3.1.1" + stream-shift "^1.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" @@ -3007,7 +3221,7 @@ encoding@^0.1.11: dependencies: iconv-lite "^0.6.2" -end-of-stream@^1.1.0: +end-of-stream@^1.1.0, end-of-stream@^1.4.1: version "1.4.4" resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== @@ -3565,7 +3779,7 @@ ethers@^4.0.32, ethers@^4.0.45: uuid "2.0.1" xmlhttprequest "1.8.0" -ethers@^5.0.0, ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.31, ethers@^5.1.0: +ethers@^5.0.0, ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.31: version "5.1.0" resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.1.0.tgz#8a8758e0b6cbbc19fd4b87f4d551170fa6f1a995" integrity sha512-2L6Ge6wMBw02FlRoCLg4E0Elt3khMNlW6ULawa10mMeeZToYJ5+uCfiuTuB+XZ6om1Y7wuO9ZzezP8FsU2M/+g== @@ -3601,6 +3815,42 @@ ethers@^5.0.0, ethers@^5.0.1, ethers@^5.0.2, ethers@^5.0.31, ethers@^5.1.0: "@ethersproject/web" "5.1.0" "@ethersproject/wordlists" "5.1.0" +ethers@^5.1.3: + version "5.1.3" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.1.3.tgz#68eb48742b8a8ca53480bca2e53fb314c23fea7f" + integrity sha512-QAj+LG3z5HsK6UDAOdCjDEthWioZ7sTzAcMWyVrQF+ACioalQ99NrrSxIq5qS0c+hoy3TAIjqpYteHgC2Iqy+w== + dependencies: + "@ethersproject/abi" "5.1.1" + "@ethersproject/abstract-provider" "5.1.0" + "@ethersproject/abstract-signer" "5.1.0" + "@ethersproject/address" "5.1.0" + "@ethersproject/base64" "5.1.0" + "@ethersproject/basex" "5.1.0" + "@ethersproject/bignumber" "5.1.1" + "@ethersproject/bytes" "5.1.0" + "@ethersproject/constants" "5.1.0" + "@ethersproject/contracts" "5.1.1" + "@ethersproject/hash" "5.1.0" + "@ethersproject/hdnode" "5.1.0" + "@ethersproject/json-wallets" "5.1.0" + "@ethersproject/keccak256" "5.1.0" + "@ethersproject/logger" "5.1.0" + "@ethersproject/networks" "5.1.0" + "@ethersproject/pbkdf2" "5.1.0" + "@ethersproject/properties" "5.1.0" + "@ethersproject/providers" "5.1.2" + "@ethersproject/random" "5.1.0" + "@ethersproject/rlp" "5.1.0" + "@ethersproject/sha2" "5.1.0" + "@ethersproject/signing-key" "5.1.0" + "@ethersproject/solidity" "5.1.0" + "@ethersproject/strings" "5.1.0" + "@ethersproject/transactions" "5.1.1" + "@ethersproject/units" "5.1.0" + "@ethersproject/wallet" "5.1.0" + "@ethersproject/web" "5.1.0" + "@ethersproject/wordlists" "5.1.0" + ethjs-unit@0.1.6: version "0.1.6" resolved "https://registry.yarnpkg.com/ethjs-unit/-/ethjs-unit-0.1.6.tgz#c665921e476e87bce2a9d588a6fe0405b2c41699" @@ -6269,11 +6519,41 @@ pinkie@^2.0.0: resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= +pino-multi-stream@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/pino-multi-stream/-/pino-multi-stream-5.3.0.tgz#2816ec4422c7e37e676a210a1705c7155506afd4" + integrity sha512-4fAGCRll18I+JmoAbxDvU9zc5sera/3c+VgTtUdoNMOZ/VSHB+HMAYtixKpeRmZTDHDDdE2rtwjVkuwWB8mYQA== + dependencies: + pino "^6.0.0" + +pino-sentry@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/pino-sentry/-/pino-sentry-0.7.0.tgz#087717d2787ec437627e97454238ca7ce0562a91" + integrity sha512-/rZO1R/oMcMa4mzfIqW6Afap+TGgVHgB8iZfzwjhLdT2PhyuTUNJ3KJT2eIZ0citsQNv26pxRzIPbqgHuQtUAQ== + dependencies: + "@sentry/node" "^6.2.5" + commander "^2.20.0" + pumpify "^2.0.1" + split2 "^3.1.1" + through2 "^3.0.1" + pino-std-serializers@^3.1.0: version "3.2.0" resolved "https://registry.yarnpkg.com/pino-std-serializers/-/pino-std-serializers-3.2.0.tgz#b56487c402d882eb96cd67c257868016b61ad671" integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== +pino@^6.0.0: + version "6.11.3" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.11.3.tgz#0c02eec6029d25e6794fdb6bbea367247d74bc29" + integrity sha512-drPtqkkSf0ufx2gaea3TryFiBHdNIdXKf5LN0hTM82SXI4xVIve2wLwNg92e1MT6m3jASLu6VO7eGY6+mmGeyw== + dependencies: + fast-redact "^3.0.0" + fast-safe-stringify "^2.0.7" + flatstr "^1.0.12" + pino-std-serializers "^3.1.0" + quick-format-unescaped "^4.0.3" + sonic-boom "^1.0.2" + pino@^6.11.1: version "6.11.2" resolved "https://registry.yarnpkg.com/pino/-/pino-6.11.2.tgz#2f3d119c526651aab4ec3d280844785d52d0b690" @@ -6336,6 +6616,13 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= +prom-client@^13.1.0: + version "13.1.0" + resolved "https://registry.yarnpkg.com/prom-client/-/prom-client-13.1.0.tgz#1185caffd8691e28d32e373972e662964e3dba45" + integrity sha512-jT9VccZCWrJWXdyEtQddCDszYsiuWj5T0ekrPszi/WEegj3IZy6Mm09iOOVM86A4IKMWq8hZkT2dD9MaSe+sng== + dependencies: + tdigest "^0.1.1" + promise-to-callback@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/promise-to-callback/-/promise-to-callback-1.0.0.tgz#5d2a749010bfb67d963598fcd3960746a68feef7" @@ -6435,6 +6722,15 @@ pump@^3.0.0: end-of-stream "^1.1.0" once "^1.3.1" +pumpify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-2.0.1.tgz#abfc7b5a621307c728b551decbbefb51f0e4aa1e" + integrity sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw== + dependencies: + duplexify "^4.1.1" + inherits "^2.0.3" + pump "^3.0.0" + punycode@1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" @@ -6486,6 +6782,11 @@ quick-format-unescaped@4.0.1: resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.1.tgz#437a5ea1a0b61deb7605f8ab6a8fd3858dbeb701" integrity sha512-RyYpQ6Q5/drsJyOhrWHYMWTedvjTIat+FTwv0K4yoUxzvekw2aRHMQJLlnvt8UantkZg2++bEzD9EdxXqkWf4A== +quick-format-unescaped@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/quick-format-unescaped/-/quick-format-unescaped-4.0.3.tgz#6d6b66b8207aa2b35eef12be1421bb24c428f652" + integrity sha512-MaL/oqh02mhEo5m5J2rwsVL23Iw2PEaGVHgT2vFt8AAsr0lfvQA5dpXo9TPu0rz7tSBdUPgkbam0j/fj5ZM8yg== + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5, randombytes@^2.0.6, randombytes@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -6543,6 +6844,15 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" +"readable-stream@2 || 3", readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.1.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== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + readable-stream@^1.0.33: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" @@ -6566,15 +6876,6 @@ readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.2.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readable-stream@^3.0.6, readable-stream@^3.1.0, 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== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - readable-stream@~1.0.15: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" @@ -7174,6 +7475,13 @@ split-string@^3.0.1, split-string@^3.0.2: dependencies: extend-shallow "^3.0.0" +split2@^3.1.1: + version "3.2.2" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== + dependencies: + readable-stream "^3.0.0" + sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -7214,6 +7522,11 @@ static-extend@^0.1.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + stream-to-pull-stream@^1.7.1: version "1.7.3" resolved "https://registry.yarnpkg.com/stream-to-pull-stream/-/stream-to-pull-stream-1.7.3.tgz#4161aa2d2eb9964de60bfa1af7feaf917e874ece" @@ -7433,6 +7746,13 @@ tar@^4.0.2: safe-buffer "^5.1.2" yallist "^3.0.3" +tdigest@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/tdigest/-/tdigest-0.1.1.tgz#2e3cb2c39ea449e55d1e6cd91117accca4588021" + integrity sha1-Ljyyw56kSeVdHmzZEReszKRYgCE= + dependencies: + bintrees "1.0.1" + test-value@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/test-value/-/test-value-2.1.0.tgz#11da6ff670f3471a73b625ca4f3fdcf7bb748291" @@ -7454,6 +7774,14 @@ through2@^2.0.3: readable-stream "~2.3.6" xtend "~4.0.1" +through2@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/through2/-/through2-3.0.2.tgz#99f88931cfc761ec7678b41d5d7336b5b6a07bf4" + integrity sha512-enaDQ4MUyP2W6ZyT6EsMzqBPZaM/avg8iuo+l2d3QCs0J+6RaqkHV/2/lOwDTueBHeJ/2LG9lrLW3d5rWPucuQ== + dependencies: + inherits "^2.0.4" + readable-stream "2 || 3" + through@~2.3.4, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5"