From 53fd6d6380fb00a4e0fb438aa0a0e572df9240a3 Mon Sep 17 00:00:00 2001 From: Vittorio Minacori Date: Thu, 26 Oct 2023 11:45:33 +0200 Subject: [PATCH] feat: rebase contracts and support ERC721 (#19) * feat: moved erc20 recover to a dedicated contract * feat: add NFT recover (ERC721) * feat: remove examples * feat: update solc to 0.8.22 * docs: update documentation --- .env.example | 2 +- .github/workflows/ci.yml | 4 +- .gitignore | 4 +- README.md | 185 ++- analysis/.gitkeep | 0 analysis/control-flow/.gitkeep | 0 analysis/control-flow/ERC20Recover.png | Bin 0 -> 144684 bytes analysis/control-flow/ERC721Recover.png | Bin 0 -> 164539 bytes analysis/control-flow/TokenRecover.png | Bin 0 -> 212366 bytes analysis/description-table/.gitkeep | 0 analysis/description-table/ERC20Recover.md | 51 + analysis/description-table/ERC721Recover.md | 57 + analysis/description-table/TokenRecover.md | 69 + analysis/inheritance-tree/.gitkeep | 0 analysis/inheritance-tree/ERC20Recover.png | Bin 0 -> 24328 bytes analysis/inheritance-tree/ERC721Recover.png | Bin 0 -> 28673 bytes analysis/inheritance-tree/TokenRecover.png | Bin 0 -> 36247 bytes analysis/uml/.gitkeep | 0 analysis/uml/ERC20Recover.svg | 108 ++ analysis/uml/ERC721Recover.svg | 128 ++ analysis/uml/TokenRecover.svg | 169 +++ contracts/ERC20Recover.sol | 32 + contracts/ERC721Recover.sol | 38 + contracts/TokenRecover.sol | 42 +- contracts/examples/TRDeployerOwner.sol | 16 - contracts/examples/TRProvidedOwner.sol | 16 - contracts/mocks/ERC721Mock.sol | 10 + contracts/recover/RecoverERC20.sol | 26 + contracts/recover/RecoverERC721.sol | 31 + dist/.gitkeep | 0 dist/ERC20Recover.dist.sol | 277 ++++ dist/ERC721Recover.dist.sol | 371 +++++ dist/TokenRecover.dist.sol | 497 ++++++ docs/index.md | 163 ++ hardhat.config.js | 9 +- package-lock.json | 1327 ++++++++++++++++- package.json | 23 +- {docs => pages}/.vuepress/.env.json.example | 0 {docs => pages}/.vuepress/config.js | 0 {docs => pages}/.vuepress/public/favicon.ico | Bin {docs => pages}/.vuepress/styles/index.styl | 0 {docs => pages}/.vuepress/styles/palette.styl | 0 {docs => pages}/README.md | 0 {docs => pages}/deploy/deploy.sh | 0 scripts/analyze.sh | 12 + scripts/flat.sh | 18 + test/ERC20Recover.behavior.js | 56 + test/ERC20Recover.test.js | 26 + test/ERC721Recover.behavior.js | 61 + test/ERC721Recover.test.js | 26 + test/TokenRecover.behavior.js | 93 +- test/TokenRecover.test.js | 21 +- test/access/Ownable.behavior.js | 2 +- test/examples/TRDeployerOwner.test.js | 25 - test/examples/TRProvidedOwner.test.js | 26 - test/recover/RecoverERC20.behavior.js | 21 + test/recover/RecoverERC721.behavior.js | 27 + truffle-config.js | 2 +- 58 files changed, 3878 insertions(+), 193 deletions(-) create mode 100644 analysis/.gitkeep create mode 100644 analysis/control-flow/.gitkeep create mode 100644 analysis/control-flow/ERC20Recover.png create mode 100644 analysis/control-flow/ERC721Recover.png create mode 100644 analysis/control-flow/TokenRecover.png create mode 100644 analysis/description-table/.gitkeep create mode 100644 analysis/description-table/ERC20Recover.md create mode 100644 analysis/description-table/ERC721Recover.md create mode 100644 analysis/description-table/TokenRecover.md create mode 100644 analysis/inheritance-tree/.gitkeep create mode 100644 analysis/inheritance-tree/ERC20Recover.png create mode 100644 analysis/inheritance-tree/ERC721Recover.png create mode 100644 analysis/inheritance-tree/TokenRecover.png create mode 100644 analysis/uml/.gitkeep create mode 100644 analysis/uml/ERC20Recover.svg create mode 100644 analysis/uml/ERC721Recover.svg create mode 100644 analysis/uml/TokenRecover.svg create mode 100644 contracts/ERC20Recover.sol create mode 100644 contracts/ERC721Recover.sol delete mode 100644 contracts/examples/TRDeployerOwner.sol delete mode 100644 contracts/examples/TRProvidedOwner.sol create mode 100644 contracts/mocks/ERC721Mock.sol create mode 100644 contracts/recover/RecoverERC20.sol create mode 100644 contracts/recover/RecoverERC721.sol create mode 100644 dist/.gitkeep create mode 100644 dist/ERC20Recover.dist.sol create mode 100644 dist/ERC721Recover.dist.sol create mode 100644 dist/TokenRecover.dist.sol create mode 100644 docs/index.md rename {docs => pages}/.vuepress/.env.json.example (100%) rename {docs => pages}/.vuepress/config.js (100%) rename {docs => pages}/.vuepress/public/favicon.ico (100%) rename {docs => pages}/.vuepress/styles/index.styl (100%) rename {docs => pages}/.vuepress/styles/palette.styl (100%) rename {docs => pages}/README.md (100%) rename {docs => pages}/deploy/deploy.sh (100%) create mode 100755 scripts/analyze.sh create mode 100755 scripts/flat.sh create mode 100644 test/ERC20Recover.behavior.js create mode 100644 test/ERC20Recover.test.js create mode 100644 test/ERC721Recover.behavior.js create mode 100644 test/ERC721Recover.test.js delete mode 100644 test/examples/TRDeployerOwner.test.js delete mode 100644 test/examples/TRProvidedOwner.test.js create mode 100644 test/recover/RecoverERC20.behavior.js create mode 100644 test/recover/RecoverERC721.behavior.js diff --git a/.env.example b/.env.example index b1b4af7..b57282c 100644 --- a/.env.example +++ b/.env.example @@ -1,4 +1,4 @@ # vuepress deploy -GIT_DEPLOY_DIR=docs/.vuepress/dist +GIT_DEPLOY_DIR=pages/.vuepress/dist GIT_DEPLOY_BRANCH=gh-pages GIT_DEPLOY_REPO=origin diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 84ae3ff..3b36920 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -81,6 +81,8 @@ jobs: codespell: name: Codespell runs-on: ubuntu-latest + env: + FORCE_COLOR: 1 steps: - uses: actions/checkout@v4 - name: Run CodeSpell @@ -88,4 +90,4 @@ jobs: with: check_hidden: true check_filenames: true - skip: package-lock.json + skip: .git,package-lock.json diff --git a/.gitignore b/.gitignore index d80691e..97fb07c 100644 --- a/.gitignore +++ b/.gitignore @@ -54,5 +54,5 @@ contracts-exposed .idea # vuepress -docs/.vuepress/dist -docs/.vuepress/.env.json +pages/.vuepress/dist +pages/.vuepress/.env.json diff --git a/README.md b/README.md index 4d73f84..80acfc4 100644 --- a/README.md +++ b/README.md @@ -5,12 +5,12 @@ [![Coverage Status](https://codecov.io/gh/vittominacori/eth-token-recover/graph/badge.svg)](https://codecov.io/gh/vittominacori/eth-token-recover) [![MIT licensed](https://img.shields.io/github/license/vittominacori/eth-token-recover.svg)](https://github.com/vittominacori/eth-token-recover/blob/master/LICENSE) -TokenRecover allows the contract owner to recover any ERC20 token sent into the contract for error. +TokenRecover allows to recover any ERC20 or ERC721 token sent into the contract and send them to a receiver. ## Motivation There are lots of tokens lost forever into Smart Contracts (see [OMG](https://etherscan.io/address/0xd26114cd6ee289accf82350c8d8487fedb8a0c07) token balances). -Each Ethereum contract is a potential token trap for ERC20 tokens. They can't be recovered, so it means money losses for end users. +Each Ethereum contract is a potential token trap for ERC20 or ERC721 tokens. They can't be recovered, so it means money losses for end users. ## Install @@ -18,18 +18,103 @@ Each Ethereum contract is a potential token trap for ERC20 tokens. They can't be npm install eth-token-recover ``` +## Recovers + +The `recover` contracts define internal methods that can be used in derived contracts. + +### RecoverERC20 + +[RecoverERC20.sol](https://github.com/vittominacori/eth-token-recover/blob/master/contracts/recover/RecoverERC20.sol) + +Allows to recover any ERC20 token sent into the contract and send them to a receiver. + +::: warning WARNING +It allows everyone to recover tokens. Access controls MUST be defined in derived contracts. +::: + +```solidity +pragma solidity ^0.8.20; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +abstract contract RecoverERC20 { + function _recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) internal virtual { + IERC20(tokenAddress).transfer(tokenReceiver, tokenAmount); + } +} +``` + +### RecoverERC721 + +[RecoverERC721.sol](https://github.com/vittominacori/eth-token-recover/blob/master/contracts/recover/RecoverERC721.sol) + +Allows to recover any ERC721 token sent into the contract and send them to a receiver. + +::: warning WARNING +It allows everyone to recover tokens. Access controls MUST be defined in derived contracts. +::: + +```solidity +pragma solidity ^0.8.20; + +import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; + +abstract contract RecoverERC721 { + function _recoverERC721(address tokenAddress, address tokenReceiver, uint256 tokenId, bytes memory data) internal virtual { + IERC721(tokenAddress).safeTransferFrom(address(this), tokenReceiver, tokenId, data); + } +} +``` + ## Usage -### Provide your defined owner +The below contracts define high level code that can be inherited as is or extended to cover desired behaviors. + +### ERC20Recover + +[ERC20Recover.sol](https://github.com/vittominacori/eth-token-recover/blob/master/contracts/ERC20Recover.sol) + +Allows the contract owner to recover any ERC20 token sent into the contract and send them to a receiver. + +::: tip NOTE +This contract is `Ownable` and restricts access to recover method to owner only. +::: + +#### Use ERC20Recover ```solidity pragma solidity ^0.8.20; -import {TokenRecover} from "eth-token-recover/contracts/TokenRecover.sol"; +import {ERC20Recover} from "eth-token-recover/contracts/ERC20Recover.sol"; -contract MyContract is TokenRecover { +contract MyContract is ERC20Recover { + constructor(address originalOwner) ERC20Recover(originalOwner) { + // your stuff + } + + // your stuff +} +``` - constructor(address originalOwner) TokenRecover(originalOwner) { +### ERC721Recover + +[ERC721Recover.sol](https://github.com/vittominacori/eth-token-recover/blob/master/contracts/ERC721Recover.sol) + +Allows the contract owner to recover any ERC721 token sent into the contract and send them to a receiver. + +::: tip NOTE +This contract is `Ownable` and restricts access to recover method to owner only. +::: + +#### Use ERC721Recover + +```solidity +pragma solidity ^0.8.20; + +import {ERC721Recover} from "eth-token-recover/contracts/ERC721Recover.sol"; + +contract MyContract is ERC721Recover { + constructor(address originalOwner) ERC721Recover(originalOwner) { // your stuff } @@ -37,7 +122,17 @@ contract MyContract is TokenRecover { } ``` -### Use deployer as owner +### TokenRecover + +[TokenRecover.sol](https://github.com/vittominacori/eth-token-recover/blob/master/contracts/TokenRecover.sol) + +Allows the contract owner to recover any ERC20 or ERC721 token sent into the contract and send them to a receiver. + +::: tip NOTE +This contract is `Ownable` and restricts access to recover methods to owner only. +::: + +#### Use TokenRecover ```solidity pragma solidity ^0.8.20; @@ -45,8 +140,7 @@ pragma solidity ^0.8.20; import {TokenRecover} from "eth-token-recover/contracts/TokenRecover.sol"; contract MyContract is TokenRecover { - - constructor() TokenRecover(_msgSender()) { + constructor(address originalOwner) TokenRecover(originalOwner) { // your stuff } @@ -54,49 +148,88 @@ contract MyContract is TokenRecover { } ``` -## Code +## Examples -This repo contains: +You can extend the code to add your stuff (e.g. to add custom roles or rules). -* [TokenRecover.sol](https://github.com/vittominacori/eth-token-recover/blob/master/contracts/TokenRecover.sol) - -Contract has a `recoverERC20` function that transfers a `tokenAmount` amount of `tokenAddress` token to the contract owner. +### Add rules to high level code ```solidity -function recoverERC20(address tokenAddress, uint256 tokenAmount) public virtual onlyOwner; +pragma solidity ^0.8.20; + +import {TokenRecover} from "eth-token-recover/contracts/TokenRecover.sol"; +import {MyDefinedRules} from "./MyDefinedRules.sol"; + +contract MyContract is TokenRecover, MyDefinedRules { + constructor(address originalOwner) TokenRecover(originalOwner) { + // your stuff + } + + // your stuff + + function recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) public virtual override alsoMyRule { + // your stuff + + super.recoverERC20(tokenAddress, tokenReceiver, tokenAmount); + + // your stuff + } +} ``` -Note: only owner can call the `recoverERC20` function so be careful when use on contracts generated from other contracts. +### Add rules to low level code -## Development +```solidity +pragma solidity ^0.8.20; -### Install dependencies +import {RecoverERC20} from "eth-token-recover/contracts/recover/RecoverERC20.sol"; +import {MyDefinedRules} from "./MyDefinedRules.sol"; -```bash -npm install +contract MyContract is RecoverERC20, MyDefinedRules { + // your stuff + + function myRecoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) public virtual onlyMyRule { + // your stuff + + _recoverERC20(tokenAddress, tokenReceiver, tokenAmount); + + // your stuff + } +} ``` -### Usage +## Documentation + +* [Documentation](https://github.com/vittominacori/eth-token-recover/blob/master/docs/index.md) + +## Code Analysis -Open the console +* [Control Flow](https://github.com/vittominacori/eth-token-recover/tree/master/analysis/control-flow) +* [Description Table](https://github.com/vittominacori/eth-token-recover/tree/master/analysis/description-table) +* [Inheritance Tree](https://github.com/vittominacori/eth-token-recover/tree/master/analysis/inheritance-tree) +* [UML](https://github.com/vittominacori/eth-token-recover/tree/master/analysis/uml) + +## Development + +### Install dependencies ```bash -npm run console +npm install ``` -#### Compile +### Compile ```bash npm run compile ``` -#### Test +### Test ```bash npm test ``` -#### Code Coverage +### Code Coverage ```bash npm run coverage diff --git a/analysis/.gitkeep b/analysis/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/analysis/control-flow/.gitkeep b/analysis/control-flow/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/analysis/control-flow/ERC20Recover.png b/analysis/control-flow/ERC20Recover.png new file mode 100644 index 0000000000000000000000000000000000000000..d6396e5dd0036ec7e4e493782b33289f2fd38a56 GIT binary patch literal 144684 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

YIxqK=Lt-{dzItTyu}CudKo&M@W=nlNVPsL2}s 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 literal 0 HcmV?d00001 diff --git a/analysis/control-flow/ERC721Recover.png b/analysis/control-flow/ERC721Recover.png new file mode 100644 index 0000000000000000000000000000000000000000..ef595a3bd6e4b9439e19b5dcb2e1e76bbb6405f6 GIT binary patch literal 164539 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 literal 0 HcmV?d00001 diff --git a/analysis/control-flow/TokenRecover.png b/analysis/control-flow/TokenRecover.png new file mode 100644 index 0000000000000000000000000000000000000000..5071b81e633be8780921e0064b6857a6fde17699 GIT binary patch literal 212366 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 | Public ❗️ | 🛑 |NO❗️ | +| └ | owner | Public ❗️ | |NO❗️ | +| └ | _checkOwner | Internal 🔒 | | | +| └ | renounceOwnership | Public ❗️ | 🛑 | onlyOwner | +| └ | transferOwnership | Public ❗️ | 🛑 | onlyOwner | +| └ | _transferOwnership | Internal 🔒 | 🛑 | | +|||||| +| **IERC20** | Interface | ||| +| └ | totalSupply | External ❗️ | |NO❗️ | +| └ | balanceOf | External ❗️ | |NO❗️ | +| └ | transfer | External ❗️ | 🛑 |NO❗️ | +| └ | allowance | External ❗️ | |NO❗️ | +| └ | approve | External ❗️ | 🛑 |NO❗️ | +| └ | transferFrom | External ❗️ | 🛑 |NO❗️ | +|||||| +| **RecoverERC20** | Implementation | ||| +| └ | _recoverERC20 | Internal 🔒 | 🛑 | | +|||||| +| **ERC20Recover** | Implementation | Ownable, RecoverERC20 ||| +| └ | | Public ❗️ | 🛑 | Ownable | +| └ | recoverERC20 | Public ❗️ | 🛑 | onlyOwner | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/analysis/description-table/ERC721Recover.md b/analysis/description-table/ERC721Recover.md new file mode 100644 index 0000000..8ddadeb --- /dev/null +++ b/analysis/description-table/ERC721Recover.md @@ -0,0 +1,57 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| dist/ERC721Recover.dist.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **Context** | Implementation | ||| +| └ | _msgSender | Internal 🔒 | | | +| └ | _msgData | Internal 🔒 | | | +|||||| +| **Ownable** | Implementation | Context ||| +| └ | | Public ❗️ | 🛑 |NO❗️ | +| └ | owner | Public ❗️ | |NO❗️ | +| └ | _checkOwner | Internal 🔒 | | | +| └ | renounceOwnership | Public ❗️ | 🛑 | onlyOwner | +| └ | transferOwnership | Public ❗️ | 🛑 | onlyOwner | +| └ | _transferOwnership | Internal 🔒 | 🛑 | | +|||||| +| **IERC165** | Interface | ||| +| └ | supportsInterface | External ❗️ | |NO❗️ | +|||||| +| **IERC721** | Interface | IERC165 ||| +| └ | balanceOf | External ❗️ | |NO❗️ | +| └ | ownerOf | External ❗️ | |NO❗️ | +| └ | safeTransferFrom | External ❗️ | 🛑 |NO❗️ | +| └ | safeTransferFrom | External ❗️ | 🛑 |NO❗️ | +| └ | transferFrom | External ❗️ | 🛑 |NO❗️ | +| └ | approve | External ❗️ | 🛑 |NO❗️ | +| └ | setApprovalForAll | External ❗️ | 🛑 |NO❗️ | +| └ | getApproved | External ❗️ | |NO❗️ | +| └ | isApprovedForAll | External ❗️ | |NO❗️ | +|||||| +| **RecoverERC721** | Implementation | ||| +| └ | _recoverERC721 | Internal 🔒 | 🛑 | | +|||||| +| **ERC721Recover** | Implementation | Ownable, RecoverERC721 ||| +| └ | | Public ❗️ | 🛑 | Ownable | +| └ | recoverERC721 | Public ❗️ | 🛑 | onlyOwner | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/analysis/description-table/TokenRecover.md b/analysis/description-table/TokenRecover.md new file mode 100644 index 0000000..030a92e --- /dev/null +++ b/analysis/description-table/TokenRecover.md @@ -0,0 +1,69 @@ +## Sūrya's Description Report + +### Files Description Table + + +| File Name | SHA-1 Hash | +|-------------|--------------| +| dist/TokenRecover.dist.sol | [object Promise] | + + +### Contracts Description Table + + +| Contract | Type | Bases | | | +|:----------:|:-------------------:|:----------------:|:----------------:|:---------------:| +| └ | **Function Name** | **Visibility** | **Mutability** | **Modifiers** | +|||||| +| **Context** | Implementation | ||| +| └ | _msgSender | Internal 🔒 | | | +| └ | _msgData | Internal 🔒 | | | +|||||| +| **Ownable** | Implementation | Context ||| +| └ | | Public ❗️ | 🛑 |NO❗️ | +| └ | owner | Public ❗️ | |NO❗️ | +| └ | _checkOwner | Internal 🔒 | | | +| └ | renounceOwnership | Public ❗️ | 🛑 | onlyOwner | +| └ | transferOwnership | Public ❗️ | 🛑 | onlyOwner | +| └ | _transferOwnership | Internal 🔒 | 🛑 | | +|||||| +| **IERC165** | Interface | ||| +| └ | supportsInterface | External ❗️ | |NO❗️ | +|||||| +| **IERC721** | Interface | IERC165 ||| +| └ | balanceOf | External ❗️ | |NO❗️ | +| └ | ownerOf | External ❗️ | |NO❗️ | +| └ | safeTransferFrom | External ❗️ | 🛑 |NO❗️ | +| └ | safeTransferFrom | External ❗️ | 🛑 |NO❗️ | +| └ | transferFrom | External ❗️ | 🛑 |NO❗️ | +| └ | approve | External ❗️ | 🛑 |NO❗️ | +| └ | setApprovalForAll | External ❗️ | 🛑 |NO❗️ | +| └ | getApproved | External ❗️ | |NO❗️ | +| └ | isApprovedForAll | External ❗️ | |NO❗️ | +|||||| +| **IERC20** | Interface | ||| +| └ | totalSupply | External ❗️ | |NO❗️ | +| └ | balanceOf | External ❗️ | |NO❗️ | +| └ | transfer | External ❗️ | 🛑 |NO❗️ | +| └ | allowance | External ❗️ | |NO❗️ | +| └ | approve | External ❗️ | 🛑 |NO❗️ | +| └ | transferFrom | External ❗️ | 🛑 |NO❗️ | +|||||| +| **RecoverERC20** | Implementation | ||| +| └ | _recoverERC20 | Internal 🔒 | 🛑 | | +|||||| +| **RecoverERC721** | Implementation | ||| +| └ | _recoverERC721 | Internal 🔒 | 🛑 | | +|||||| +| **TokenRecover** | Implementation | Ownable, RecoverERC20, RecoverERC721 ||| +| └ | | Public ❗️ | 🛑 | Ownable | +| └ | recoverERC20 | Public ❗️ | 🛑 | onlyOwner | +| └ | recoverERC721 | Public ❗️ | 🛑 | onlyOwner | + + +### Legend + +| Symbol | Meaning | +|:--------:|-----------| +| 🛑 | Function can modify state | +| 💵 | Function is payable | diff --git a/analysis/inheritance-tree/.gitkeep b/analysis/inheritance-tree/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/analysis/inheritance-tree/ERC20Recover.png b/analysis/inheritance-tree/ERC20Recover.png new file mode 100644 index 0000000000000000000000000000000000000000..065f51222f6942991935ac1aae9c37e0ab2862fe GIT binary patch literal 24328 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 YZTDRJGRL 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 B=(zv@ literal 0 HcmV?d00001 diff --git a/analysis/inheritance-tree/TokenRecover.png b/analysis/inheritance-tree/TokenRecover.png new file mode 100644 index 0000000000000000000000000000000000000000..50ae057c36e46972634642d1fe6b0c789a21a44b GIT binary patch literal 36247 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 e{%O + + + + + +UmlClassDiagram + + + +0 + +<<Abstract>> +Context + +Internal: +    _msgSender(): address +    _msgData(): bytes + + + +1 + +<<Abstract>> +Ownable + +Private: +   _owner: address + +Internal: +    _checkOwner() +    _transferOwnership(newOwner: address) +Public: +    <<event>> OwnershipTransferred(previousOwner: address, newOwner: address) +    <<modifier>> onlyOwner() +    constructor(initialOwner: address) +    owner(): address +    renounceOwnership() <<onlyOwner>> +    transferOwnership(newOwner: address) <<onlyOwner>> + + + +1->0 + + + + + +2 + +<<Interface>> +IERC20 + +External: +     totalSupply(): uint256 +     balanceOf(account: address): uint256 +     transfer(to: address, value: uint256): bool +     allowance(owner: address, spender: address): uint256 +     approve(spender: address, value: uint256): bool +     transferFrom(from: address, to: address, value: uint256): bool +Public: +    <<event>> Transfer(from: address, to: address, value: uint256) +    <<event>> Approval(owner: address, spender: address, value: uint256) + + + +3 + +<<Abstract>> +RecoverERC20 + +Internal: +    _recoverERC20(tokenAddress: address, tokenReceiver: address, tokenAmount: uint256) + + + +3->2 + + + + + +4 + +<<Abstract>> +ERC20Recover + +Public: +    constructor(originalOwner: address) +    recoverERC20(tokenAddress: address, tokenReceiver: address, tokenAmount: uint256) <<onlyOwner>> + + + +4->1 + + + + + +4->3 + + + + + diff --git a/analysis/uml/ERC721Recover.svg b/analysis/uml/ERC721Recover.svg new file mode 100644 index 0000000..2699feb --- /dev/null +++ b/analysis/uml/ERC721Recover.svg @@ -0,0 +1,128 @@ + + + + + + +UmlClassDiagram + + + +0 + +<<Abstract>> +Context + +Internal: +    _msgSender(): address +    _msgData(): bytes + + + +1 + +<<Abstract>> +Ownable + +Private: +   _owner: address + +Internal: +    _checkOwner() +    _transferOwnership(newOwner: address) +Public: +    <<event>> OwnershipTransferred(previousOwner: address, newOwner: address) +    <<modifier>> onlyOwner() +    constructor(initialOwner: address) +    owner(): address +    renounceOwnership() <<onlyOwner>> +    transferOwnership(newOwner: address) <<onlyOwner>> + + + +1->0 + + + + + +2 + +<<Interface>> +IERC165 + +External: +     supportsInterface(interfaceId: bytes4): bool + + + +3 + +<<Interface>> +IERC721 + +External: +     balanceOf(owner: address): (balance: uint256) +     ownerOf(tokenId: uint256): (owner: address) +     safeTransferFrom(from: address, to: address, tokenId: uint256, data: bytes) +     safeTransferFrom(from: address, to: address, tokenId: uint256) +     transferFrom(from: address, to: address, tokenId: uint256) +     approve(to: address, tokenId: uint256) +     setApprovalForAll(operator: address, approved: bool) +     getApproved(tokenId: uint256): (operator: address) +     isApprovedForAll(owner: address, operator: address): bool +Public: +    <<event>> Transfer(from: address, to: address, tokenId: uint256) +    <<event>> Approval(owner: address, approved: address, tokenId: uint256) +    <<event>> ApprovalForAll(owner: address, operator: address, approved: bool) + + + +3->2 + + + + + +4 + +<<Abstract>> +RecoverERC721 + +Internal: +    _recoverERC721(tokenAddress: address, tokenReceiver: address, tokenId: uint256, data: bytes) + + + +4->3 + + + + + +5 + +<<Abstract>> +ERC721Recover + +Public: +    constructor(originalOwner: address) +    recoverERC721(tokenAddress: address, tokenReceiver: address, tokenId: uint256, data: bytes) <<onlyOwner>> + + + +5->1 + + + + + +5->4 + + + + + diff --git a/analysis/uml/TokenRecover.svg b/analysis/uml/TokenRecover.svg new file mode 100644 index 0000000..9263180 --- /dev/null +++ b/analysis/uml/TokenRecover.svg @@ -0,0 +1,169 @@ + + + + + + +UmlClassDiagram + + + +0 + +<<Abstract>> +Context + +Internal: +    _msgSender(): address +    _msgData(): bytes + + + +1 + +<<Abstract>> +Ownable + +Private: +   _owner: address + +Internal: +    _checkOwner() +    _transferOwnership(newOwner: address) +Public: +    <<event>> OwnershipTransferred(previousOwner: address, newOwner: address) +    <<modifier>> onlyOwner() +    constructor(initialOwner: address) +    owner(): address +    renounceOwnership() <<onlyOwner>> +    transferOwnership(newOwner: address) <<onlyOwner>> + + + +1->0 + + + + + +2 + +<<Interface>> +IERC165 + +External: +     supportsInterface(interfaceId: bytes4): bool + + + +3 + +<<Interface>> +IERC721 + +External: +     balanceOf(owner: address): (balance: uint256) +     ownerOf(tokenId: uint256): (owner: address) +     safeTransferFrom(from: address, to: address, tokenId: uint256, data: bytes) +     safeTransferFrom(from: address, to: address, tokenId: uint256) +     transferFrom(from: address, to: address, tokenId: uint256) +     approve(to: address, tokenId: uint256) +     setApprovalForAll(operator: address, approved: bool) +     getApproved(tokenId: uint256): (operator: address) +     isApprovedForAll(owner: address, operator: address): bool +Public: +    <<event>> Transfer(from: address, to: address, tokenId: uint256) +    <<event>> Approval(owner: address, approved: address, tokenId: uint256) +    <<event>> ApprovalForAll(owner: address, operator: address, approved: bool) + + + +3->2 + + + + + +4 + +<<Interface>> +IERC20 + +External: +     totalSupply(): uint256 +     balanceOf(account: address): uint256 +     transfer(to: address, value: uint256): bool +     allowance(owner: address, spender: address): uint256 +     approve(spender: address, value: uint256): bool +     transferFrom(from: address, to: address, value: uint256): bool +Public: +    <<event>> Transfer(from: address, to: address, value: uint256) +    <<event>> Approval(owner: address, spender: address, value: uint256) + + + +5 + +<<Abstract>> +RecoverERC20 + +Internal: +    _recoverERC20(tokenAddress: address, tokenReceiver: address, tokenAmount: uint256) + + + +5->4 + + + + + +6 + +<<Abstract>> +RecoverERC721 + +Internal: +    _recoverERC721(tokenAddress: address, tokenReceiver: address, tokenId: uint256, data: bytes) + + + +6->3 + + + + + +7 + +<<Abstract>> +TokenRecover + +Public: +    constructor(originalOwner: address) +    recoverERC20(tokenAddress: address, tokenReceiver: address, tokenAmount: uint256) <<onlyOwner>> +    recoverERC721(tokenAddress: address, tokenReceiver: address, tokenId: uint256, data: bytes) <<onlyOwner>> + + + +7->1 + + + + + +7->5 + + + + + +7->6 + + + + + diff --git a/contracts/ERC20Recover.sol b/contracts/ERC20Recover.sol new file mode 100644 index 0000000..3023b22 --- /dev/null +++ b/contracts/ERC20Recover.sol @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.20; + +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; + +import {RecoverERC20} from "./recover/RecoverERC20.sol"; + +/** + * @title ERC20Recover + * @dev Allows the contract owner to recover any ERC20 token sent into the contract and send them to a receiver. + */ +abstract contract ERC20Recover is Ownable, RecoverERC20 { + /** + * @dev Initializes the contract setting the address provided by the deployer as the initial owner. + */ + constructor(address originalOwner) Ownable(originalOwner) {} + + /** + * @dev Recovers a `tokenAmount` of the ERC20 `tokenAddress` locked into this contract + * and sends them to the `tokenReceiver` address. + * + * NOTE: restricting access to owner only. See `RecoverERC20::_recoverERC20`. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered tokens. + * @param tokenAmount Number of tokens to be recovered. + */ + function recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) public virtual onlyOwner { + _recoverERC20(tokenAddress, tokenReceiver, tokenAmount); + } +} diff --git a/contracts/ERC721Recover.sol b/contracts/ERC721Recover.sol new file mode 100644 index 0000000..817973c --- /dev/null +++ b/contracts/ERC721Recover.sol @@ -0,0 +1,38 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.20; + +import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; + +import {RecoverERC721} from "./recover/RecoverERC721.sol"; + +/** + * @title ERC721Recover + * @dev Allows the contract owner to recover any ERC721 token sent into the contract and send them to a receiver. + */ +abstract contract ERC721Recover is Ownable, RecoverERC721 { + /** + * @dev Initializes the contract setting the address provided by the deployer as the initial owner. + */ + constructor(address originalOwner) Ownable(originalOwner) {} + + /** + * @dev Recovers the `tokenId` of the ERC721 `tokenAddress` locked into this contract + * and sends it to the `tokenReceiver` address. + * + * NOTE: restricting access to owner only. See `RecoverERC721::_recoverERC721`. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered token. + * @param tokenId The identifier for the NFT to be recovered. + * @param data Additional data with no specified format. + */ + function recoverERC721( + address tokenAddress, + address tokenReceiver, + uint256 tokenId, + bytes memory data + ) public virtual onlyOwner { + _recoverERC721(tokenAddress, tokenReceiver, tokenId, data); + } +} diff --git a/contracts/TokenRecover.sol b/contracts/TokenRecover.sol index 6a23ecb..fa08b98 100644 --- a/contracts/TokenRecover.sol +++ b/contracts/TokenRecover.sol @@ -2,26 +2,52 @@ pragma solidity ^0.8.20; -import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol"; +import {RecoverERC20} from "./recover/RecoverERC20.sol"; +import {RecoverERC721} from "./recover/RecoverERC721.sol"; + /** * @title TokenRecover - * @dev Allows token owner to recover any ERC20 sent into the contract. + * @dev Allows the contract owner to recover any ERC20 or ERC721 token sent into the contract and send them to a receiver. */ -abstract contract TokenRecover is Ownable { +abstract contract TokenRecover is Ownable, RecoverERC20, RecoverERC721 { /** * @dev Initializes the contract setting the address provided by the deployer as the initial owner. */ constructor(address originalOwner) Ownable(originalOwner) {} /** - * @dev Recover ERC20 tokens stuck into this contract and send to owner address. - * @param tokenAddress The token contract address to recover. + * @dev Recovers a `tokenAmount` of the ERC20 `tokenAddress` locked into this contract + * and sends them to the `tokenReceiver` address. + * + * NOTE: restricting access to owner only. See `RecoverERC20::_recoverERC20`. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered tokens. * @param tokenAmount Number of tokens to be recovered. */ - function recoverERC20(address tokenAddress, uint256 tokenAmount) public virtual onlyOwner { - // slither-disable-next-line unchecked-transfer - IERC20(tokenAddress).transfer(owner(), tokenAmount); + function recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) public virtual onlyOwner { + _recoverERC20(tokenAddress, tokenReceiver, tokenAmount); + } + + /** + * @dev Recovers the `tokenId` of the ERC721 `tokenAddress` locked into this contract + * and sends it to the `tokenReceiver` address. + * + * NOTE: restricting access to owner only. See `RecoverERC721::_recoverERC721`. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered token. + * @param tokenId The identifier for the NFT to be recovered. + * @param data Additional data with no specified format. + */ + function recoverERC721( + address tokenAddress, + address tokenReceiver, + uint256 tokenId, + bytes memory data + ) public virtual onlyOwner { + _recoverERC721(tokenAddress, tokenReceiver, tokenId, data); } } diff --git a/contracts/examples/TRDeployerOwner.sol b/contracts/examples/TRDeployerOwner.sol deleted file mode 100644 index 8020105..0000000 --- a/contracts/examples/TRDeployerOwner.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.8.20; - -import {TokenRecover} from "../TokenRecover.sol"; - -/** - * @title TRDeployerOwner - * @dev TokenRecover contract with deployer set as initial owner. - */ -contract TRDeployerOwner is TokenRecover { - /** - * @dev Initializes the contract setting the deployer as the initial owner. - */ - constructor() TokenRecover(_msgSender()) {} -} diff --git a/contracts/examples/TRProvidedOwner.sol b/contracts/examples/TRProvidedOwner.sol deleted file mode 100644 index 3564566..0000000 --- a/contracts/examples/TRProvidedOwner.sol +++ /dev/null @@ -1,16 +0,0 @@ -// SPDX-License-Identifier: MIT - -pragma solidity ^0.8.20; - -import {TokenRecover} from "../TokenRecover.sol"; - -/** - * @title TRProvidedOwner - * @dev TokenRecover contract with owner provided during construction. - */ -contract TRProvidedOwner is TokenRecover { - /** - * @dev Initializes the contract setting the address provided by the deployer as the initial owner. - */ - constructor(address originalOwner) TokenRecover(originalOwner) {} -} diff --git a/contracts/mocks/ERC721Mock.sol b/contracts/mocks/ERC721Mock.sol new file mode 100644 index 0000000..8756433 --- /dev/null +++ b/contracts/mocks/ERC721Mock.sol @@ -0,0 +1,10 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.0; + +import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol"; + +// mock class using ERC721 +contract ERC721Mock is ERC721 { + constructor() ERC721("TEST", "TEST") {} +} diff --git a/contracts/recover/RecoverERC20.sol b/contracts/recover/RecoverERC20.sol new file mode 100644 index 0000000..bf1b60f --- /dev/null +++ b/contracts/recover/RecoverERC20.sol @@ -0,0 +1,26 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.20; + +import {IERC20} from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; + +/** + * @title RecoverERC20 + * @dev Allows to recover any ERC20 token sent into the contract and send them to a receiver. + */ +abstract contract RecoverERC20 { + /** + * @dev Recovers a `tokenAmount` of the ERC20 `tokenAddress` locked into this contract + * and sends them to the `tokenReceiver` address. + * + * WARNING: it allows everyone to recover tokens. Access controls MUST be defined in derived contracts. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered tokens. + * @param tokenAmount Number of tokens to be recovered. + */ + function _recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) internal virtual { + // slither-disable-next-line unchecked-transfer + IERC20(tokenAddress).transfer(tokenReceiver, tokenAmount); + } +} diff --git a/contracts/recover/RecoverERC721.sol b/contracts/recover/RecoverERC721.sol new file mode 100644 index 0000000..586f839 --- /dev/null +++ b/contracts/recover/RecoverERC721.sol @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: MIT + +pragma solidity ^0.8.20; + +import {IERC721} from "@openzeppelin/contracts/token/ERC721/IERC721.sol"; + +/** + * @title RecoverERC721 + * @dev Allows to recover any ERC721 token sent into the contract and send them to a receiver. + */ +abstract contract RecoverERC721 { + /** + * @dev Recovers the `tokenId` of the ERC721 `tokenAddress` locked into this contract + * and sends it to the `tokenReceiver` address. + * + * WARNING: it allows everyone to recover tokens. Access controls MUST be defined in derived contracts. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered token. + * @param tokenId The identifier for the NFT to be recovered. + * @param data Additional data with no specified format. + */ + function _recoverERC721( + address tokenAddress, + address tokenReceiver, + uint256 tokenId, + bytes memory data + ) internal virtual { + IERC721(tokenAddress).safeTransferFrom(address(this), tokenReceiver, tokenId, data); + } +} diff --git a/dist/.gitkeep b/dist/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/dist/ERC20Recover.dist.sol b/dist/ERC20Recover.dist.sol new file mode 100644 index 0000000..9d9685d --- /dev/null +++ b/dist/ERC20Recover.dist.sol @@ -0,0 +1,277 @@ +// SPDX-License-Identifier: MIT + +// Sources flattened with hardhat v2.18.3 https://hardhat.org + + + +// File @openzeppelin/contracts/utils/Context.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Provides information about the current execution context, including the + * sender of the transaction and its data. While these are generally available + * via msg.sender and msg.data, they should not be accessed in such a direct + * manner, since when dealing with meta-transactions the account sending and + * paying for execution may not be the actual sender (as far as an application + * is concerned). + * + * This contract is only required for intermediate, library-like contracts. + */ +abstract contract Context { + function _msgSender() internal view virtual returns (address) { + return msg.sender; + } + + function _msgData() internal view virtual returns (bytes calldata) { + return msg.data; + } +} + + +// File @openzeppelin/contracts/access/Ownable.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Contract module which provides a basic access control mechanism, where + * there is an account (an owner) that can be granted exclusive access to + * specific functions. + * + * The initial owner is set to the address provided by the deployer. This can + * later be changed with {transferOwnership}. + * + * This module is used through inheritance. It will make available the modifier + * `onlyOwner`, which can be applied to your functions to restrict their use to + * the owner. + */ +abstract contract Ownable is Context { + address private _owner; + + /** + * @dev The caller account is not authorized to perform an operation. + */ + error OwnableUnauthorizedAccount(address account); + + /** + * @dev The owner is not a valid owner account. (eg. `address(0)`) + */ + error OwnableInvalidOwner(address owner); + + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + /** + * @dev Initializes the contract setting the address provided by the deployer as the initial owner. + */ + constructor(address initialOwner) { + if (initialOwner == address(0)) { + revert OwnableInvalidOwner(address(0)); + } + _transferOwnership(initialOwner); + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + _checkOwner(); + _; + } + + /** + * @dev Returns the address of the current owner. + */ + function owner() public view virtual returns (address) { + return _owner; + } + + /** + * @dev Throws if the sender is not the owner. + */ + function _checkOwner() internal view virtual { + if (owner() != _msgSender()) { + revert OwnableUnauthorizedAccount(_msgSender()); + } + } + + /** + * @dev Leaves the contract without owner. It will not be possible to call + * `onlyOwner` functions. Can only be called by the current owner. + * + * NOTE: Renouncing ownership will leave the contract without an owner, + * thereby disabling any functionality that is only available to the owner. + */ + function renounceOwnership() public virtual onlyOwner { + _transferOwnership(address(0)); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Can only be called by the current owner. + */ + function transferOwnership(address newOwner) public virtual onlyOwner { + if (newOwner == address(0)) { + revert OwnableInvalidOwner(address(0)); + } + _transferOwnership(newOwner); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Internal function without access restriction. + */ + function _transferOwnership(address newOwner) internal virtual { + address oldOwner = _owner; + _owner = newOwner; + emit OwnershipTransferred(oldOwner, newOwner); + } +} + + +// File @openzeppelin/contracts/token/ERC20/IERC20.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Interface of the ERC20 standard as defined in the EIP. + */ +interface IERC20 { + /** + * @dev Emitted when `value` tokens are moved from one account (`from`) to + * another (`to`). + * + * Note that `value` may be zero. + */ + event Transfer(address indexed from, address indexed to, uint256 value); + + /** + * @dev Emitted when the allowance of a `spender` for an `owner` is set by + * a call to {approve}. `value` is the new allowance. + */ + event Approval(address indexed owner, address indexed spender, uint256 value); + + /** + * @dev Returns the value of tokens in existence. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns the value of tokens owned by `account`. + */ + function balanceOf(address account) external view returns (uint256); + + /** + * @dev Moves a `value` amount of tokens from the caller's account to `to`. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transfer(address to, uint256 value) external returns (bool); + + /** + * @dev Returns the remaining number of tokens that `spender` will be + * allowed to spend on behalf of `owner` through {transferFrom}. This is + * zero by default. + * + * This value changes when {approve} or {transferFrom} are called. + */ + function allowance(address owner, address spender) external view returns (uint256); + + /** + * @dev Sets a `value` amount of tokens as the allowance of `spender` over the + * caller's tokens. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * IMPORTANT: Beware that changing an allowance with this method brings the risk + * that someone may use both the old and the new allowance by unfortunate + * transaction ordering. One possible solution to mitigate this race + * condition is to first reduce the spender's allowance to 0 and set the + * desired value afterwards: + * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 + * + * Emits an {Approval} event. + */ + function approve(address spender, uint256 value) external returns (bool); + + /** + * @dev Moves a `value` amount of tokens from `from` to `to` using the + * allowance mechanism. `value` is then deducted from the caller's + * allowance. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transferFrom(address from, address to, uint256 value) external returns (bool); +} + + +// File contracts/recover/RecoverERC20.sol + +// Original license: SPDX_License_Identifier: MIT + +pragma solidity ^0.8.20; + +/** + * @title RecoverERC20 + * @dev Allows to recover any ERC20 token sent into the contract and send them to a receiver. + */ +abstract contract RecoverERC20 { + /** + * @dev Recovers a `tokenAmount` of the ERC20 `tokenAddress` locked into this contract + * and sends them to the `tokenReceiver` address. + * + * WARNING: it allows everyone to recover tokens. Access controls MUST be defined in derived contracts. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered tokens. + * @param tokenAmount Number of tokens to be recovered. + */ + function _recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) internal virtual { + // slither-disable-next-line unchecked-transfer + IERC20(tokenAddress).transfer(tokenReceiver, tokenAmount); + } +} + + +// File contracts/ERC20Recover.sol + +// Original license: SPDX_License_Identifier: MIT + +pragma solidity ^0.8.20; + +/** + * @title ERC20Recover + * @dev Allows the contract owner to recover any ERC20 token sent into the contract and send them to a receiver. + */ +abstract contract ERC20Recover is Ownable, RecoverERC20 { + /** + * @dev Initializes the contract setting the address provided by the deployer as the initial owner. + */ + constructor(address originalOwner) Ownable(originalOwner) {} + + /** + * @dev Recovers a `tokenAmount` of the ERC20 `tokenAddress` locked into this contract + * and sends them to the `tokenReceiver` address. + * + * NOTE: restricting access to owner only. See `RecoverERC20::_recoverERC20`. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered tokens. + * @param tokenAmount Number of tokens to be recovered. + */ + function recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) public virtual onlyOwner { + _recoverERC20(tokenAddress, tokenReceiver, tokenAmount); + } +} diff --git a/dist/ERC721Recover.dist.sol b/dist/ERC721Recover.dist.sol new file mode 100644 index 0000000..4c0a262 --- /dev/null +++ b/dist/ERC721Recover.dist.sol @@ -0,0 +1,371 @@ +// SPDX-License-Identifier: MIT + +// Sources flattened with hardhat v2.18.3 https://hardhat.org + + + +// File @openzeppelin/contracts/utils/Context.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Provides information about the current execution context, including the + * sender of the transaction and its data. While these are generally available + * via msg.sender and msg.data, they should not be accessed in such a direct + * manner, since when dealing with meta-transactions the account sending and + * paying for execution may not be the actual sender (as far as an application + * is concerned). + * + * This contract is only required for intermediate, library-like contracts. + */ +abstract contract Context { + function _msgSender() internal view virtual returns (address) { + return msg.sender; + } + + function _msgData() internal view virtual returns (bytes calldata) { + return msg.data; + } +} + + +// File @openzeppelin/contracts/access/Ownable.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Contract module which provides a basic access control mechanism, where + * there is an account (an owner) that can be granted exclusive access to + * specific functions. + * + * The initial owner is set to the address provided by the deployer. This can + * later be changed with {transferOwnership}. + * + * This module is used through inheritance. It will make available the modifier + * `onlyOwner`, which can be applied to your functions to restrict their use to + * the owner. + */ +abstract contract Ownable is Context { + address private _owner; + + /** + * @dev The caller account is not authorized to perform an operation. + */ + error OwnableUnauthorizedAccount(address account); + + /** + * @dev The owner is not a valid owner account. (eg. `address(0)`) + */ + error OwnableInvalidOwner(address owner); + + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + /** + * @dev Initializes the contract setting the address provided by the deployer as the initial owner. + */ + constructor(address initialOwner) { + if (initialOwner == address(0)) { + revert OwnableInvalidOwner(address(0)); + } + _transferOwnership(initialOwner); + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + _checkOwner(); + _; + } + + /** + * @dev Returns the address of the current owner. + */ + function owner() public view virtual returns (address) { + return _owner; + } + + /** + * @dev Throws if the sender is not the owner. + */ + function _checkOwner() internal view virtual { + if (owner() != _msgSender()) { + revert OwnableUnauthorizedAccount(_msgSender()); + } + } + + /** + * @dev Leaves the contract without owner. It will not be possible to call + * `onlyOwner` functions. Can only be called by the current owner. + * + * NOTE: Renouncing ownership will leave the contract without an owner, + * thereby disabling any functionality that is only available to the owner. + */ + function renounceOwnership() public virtual onlyOwner { + _transferOwnership(address(0)); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Can only be called by the current owner. + */ + function transferOwnership(address newOwner) public virtual onlyOwner { + if (newOwner == address(0)) { + revert OwnableInvalidOwner(address(0)); + } + _transferOwnership(newOwner); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Internal function without access restriction. + */ + function _transferOwnership(address newOwner) internal virtual { + address oldOwner = _owner; + _owner = newOwner; + emit OwnershipTransferred(oldOwner, newOwner); + } +} + + +// File @openzeppelin/contracts/utils/introspection/IERC165.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Interface of the ERC165 standard, as defined in the + * https://eips.ethereum.org/EIPS/eip-165[EIP]. + * + * Implementers can declare support of contract interfaces, which can then be + * queried by others ({ERC165Checker}). + * + * For an implementation, see {ERC165}. + */ +interface IERC165 { + /** + * @dev Returns true if this contract implements the interface defined by + * `interfaceId`. See the corresponding + * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] + * to learn more about how these ids are created. + * + * This function call must use less than 30 000 gas. + */ + function supportsInterface(bytes4 interfaceId) external view returns (bool); +} + + +// File @openzeppelin/contracts/token/ERC721/IERC721.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Required interface of an ERC721 compliant contract. + */ +interface IERC721 is IERC165 { + /** + * @dev Emitted when `tokenId` token is transferred from `from` to `to`. + */ + event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); + + /** + * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. + */ + event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); + + /** + * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. + */ + event ApprovalForAll(address indexed owner, address indexed operator, bool approved); + + /** + * @dev Returns the number of tokens in ``owner``'s account. + */ + function balanceOf(address owner) external view returns (uint256 balance); + + /** + * @dev Returns the owner of the `tokenId` token. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function ownerOf(uint256 tokenId) external view returns (address owner); + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon + * a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients + * are aware of the ERC721 protocol to prevent tokens from being forever locked. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or + * {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon + * a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom(address from, address to, uint256 tokenId) external; + + /** + * @dev Transfers `tokenId` token from `from` to `to`. + * + * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 + * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must + * understand this adds an external call which potentially creates a reentrancy vulnerability. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * + * Emits a {Transfer} event. + */ + function transferFrom(address from, address to, uint256 tokenId) external; + + /** + * @dev Gives permission to `to` to transfer `tokenId` token to another account. + * The approval is cleared when the token is transferred. + * + * Only a single account can be approved at a time, so approving the zero address clears previous approvals. + * + * Requirements: + * + * - The caller must own the token or be an approved operator. + * - `tokenId` must exist. + * + * Emits an {Approval} event. + */ + function approve(address to, uint256 tokenId) external; + + /** + * @dev Approve or remove `operator` as an operator for the caller. + * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. + * + * Requirements: + * + * - The `operator` cannot be the address zero. + * + * Emits an {ApprovalForAll} event. + */ + function setApprovalForAll(address operator, bool approved) external; + + /** + * @dev Returns the account approved for `tokenId` token. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function getApproved(uint256 tokenId) external view returns (address operator); + + /** + * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. + * + * See {setApprovalForAll} + */ + function isApprovedForAll(address owner, address operator) external view returns (bool); +} + + +// File contracts/recover/RecoverERC721.sol + +// Original license: SPDX_License_Identifier: MIT + +pragma solidity ^0.8.20; + +/** + * @title RecoverERC721 + * @dev Allows to recover any ERC721 token sent into the contract and send them to a receiver. + */ +abstract contract RecoverERC721 { + /** + * @dev Recovers the `tokenId` of the ERC721 `tokenAddress` locked into this contract + * and sends it to the `tokenReceiver` address. + * + * WARNING: it allows everyone to recover tokens. Access controls MUST be defined in derived contracts. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered token. + * @param tokenId The identifier for the NFT to be recovered. + * @param data Additional data with no specified format. + */ + function _recoverERC721( + address tokenAddress, + address tokenReceiver, + uint256 tokenId, + bytes memory data + ) internal virtual { + IERC721(tokenAddress).safeTransferFrom(address(this), tokenReceiver, tokenId, data); + } +} + + +// File contracts/ERC721Recover.sol + +// Original license: SPDX_License_Identifier: MIT + +pragma solidity ^0.8.20; + +/** + * @title ERC721Recover + * @dev Allows the contract owner to recover any ERC721 token sent into the contract and send them to a receiver. + */ +abstract contract ERC721Recover is Ownable, RecoverERC721 { + /** + * @dev Initializes the contract setting the address provided by the deployer as the initial owner. + */ + constructor(address originalOwner) Ownable(originalOwner) {} + + /** + * @dev Recovers the `tokenId` of the ERC721 `tokenAddress` locked into this contract + * and sends it to the `tokenReceiver` address. + * + * NOTE: restricting access to owner only. See `RecoverERC721::_recoverERC721`. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered token. + * @param tokenId The identifier for the NFT to be recovered. + * @param data Additional data with no specified format. + */ + function recoverERC721( + address tokenAddress, + address tokenReceiver, + uint256 tokenId, + bytes memory data + ) public virtual onlyOwner { + _recoverERC721(tokenAddress, tokenReceiver, tokenId, data); + } +} diff --git a/dist/TokenRecover.dist.sol b/dist/TokenRecover.dist.sol new file mode 100644 index 0000000..07d582e --- /dev/null +++ b/dist/TokenRecover.dist.sol @@ -0,0 +1,497 @@ +// SPDX-License-Identifier: MIT + +// Sources flattened with hardhat v2.18.3 https://hardhat.org + + + +// File @openzeppelin/contracts/utils/Context.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (utils/Context.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Provides information about the current execution context, including the + * sender of the transaction and its data. While these are generally available + * via msg.sender and msg.data, they should not be accessed in such a direct + * manner, since when dealing with meta-transactions the account sending and + * paying for execution may not be the actual sender (as far as an application + * is concerned). + * + * This contract is only required for intermediate, library-like contracts. + */ +abstract contract Context { + function _msgSender() internal view virtual returns (address) { + return msg.sender; + } + + function _msgData() internal view virtual returns (bytes calldata) { + return msg.data; + } +} + + +// File @openzeppelin/contracts/access/Ownable.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (access/Ownable.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Contract module which provides a basic access control mechanism, where + * there is an account (an owner) that can be granted exclusive access to + * specific functions. + * + * The initial owner is set to the address provided by the deployer. This can + * later be changed with {transferOwnership}. + * + * This module is used through inheritance. It will make available the modifier + * `onlyOwner`, which can be applied to your functions to restrict their use to + * the owner. + */ +abstract contract Ownable is Context { + address private _owner; + + /** + * @dev The caller account is not authorized to perform an operation. + */ + error OwnableUnauthorizedAccount(address account); + + /** + * @dev The owner is not a valid owner account. (eg. `address(0)`) + */ + error OwnableInvalidOwner(address owner); + + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); + + /** + * @dev Initializes the contract setting the address provided by the deployer as the initial owner. + */ + constructor(address initialOwner) { + if (initialOwner == address(0)) { + revert OwnableInvalidOwner(address(0)); + } + _transferOwnership(initialOwner); + } + + /** + * @dev Throws if called by any account other than the owner. + */ + modifier onlyOwner() { + _checkOwner(); + _; + } + + /** + * @dev Returns the address of the current owner. + */ + function owner() public view virtual returns (address) { + return _owner; + } + + /** + * @dev Throws if the sender is not the owner. + */ + function _checkOwner() internal view virtual { + if (owner() != _msgSender()) { + revert OwnableUnauthorizedAccount(_msgSender()); + } + } + + /** + * @dev Leaves the contract without owner. It will not be possible to call + * `onlyOwner` functions. Can only be called by the current owner. + * + * NOTE: Renouncing ownership will leave the contract without an owner, + * thereby disabling any functionality that is only available to the owner. + */ + function renounceOwnership() public virtual onlyOwner { + _transferOwnership(address(0)); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Can only be called by the current owner. + */ + function transferOwnership(address newOwner) public virtual onlyOwner { + if (newOwner == address(0)) { + revert OwnableInvalidOwner(address(0)); + } + _transferOwnership(newOwner); + } + + /** + * @dev Transfers ownership of the contract to a new account (`newOwner`). + * Internal function without access restriction. + */ + function _transferOwnership(address newOwner) internal virtual { + address oldOwner = _owner; + _owner = newOwner; + emit OwnershipTransferred(oldOwner, newOwner); + } +} + + +// File @openzeppelin/contracts/utils/introspection/IERC165.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (utils/introspection/IERC165.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Interface of the ERC165 standard, as defined in the + * https://eips.ethereum.org/EIPS/eip-165[EIP]. + * + * Implementers can declare support of contract interfaces, which can then be + * queried by others ({ERC165Checker}). + * + * For an implementation, see {ERC165}. + */ +interface IERC165 { + /** + * @dev Returns true if this contract implements the interface defined by + * `interfaceId`. See the corresponding + * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] + * to learn more about how these ids are created. + * + * This function call must use less than 30 000 gas. + */ + function supportsInterface(bytes4 interfaceId) external view returns (bool); +} + + +// File @openzeppelin/contracts/token/ERC721/IERC721.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC721/IERC721.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Required interface of an ERC721 compliant contract. + */ +interface IERC721 is IERC165 { + /** + * @dev Emitted when `tokenId` token is transferred from `from` to `to`. + */ + event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); + + /** + * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. + */ + event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); + + /** + * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. + */ + event ApprovalForAll(address indexed owner, address indexed operator, bool approved); + + /** + * @dev Returns the number of tokens in ``owner``'s account. + */ + function balanceOf(address owner) external view returns (uint256 balance); + + /** + * @dev Returns the owner of the `tokenId` token. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function ownerOf(uint256 tokenId) external view returns (address owner); + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon + * a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom(address from, address to, uint256 tokenId, bytes calldata data) external; + + /** + * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients + * are aware of the ERC721 protocol to prevent tokens from being forever locked. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must exist and be owned by `from`. + * - If the caller is not `from`, it must have been allowed to move this token by either {approve} or + * {setApprovalForAll}. + * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon + * a safe transfer. + * + * Emits a {Transfer} event. + */ + function safeTransferFrom(address from, address to, uint256 tokenId) external; + + /** + * @dev Transfers `tokenId` token from `from` to `to`. + * + * WARNING: Note that the caller is responsible to confirm that the recipient is capable of receiving ERC721 + * or else they may be permanently lost. Usage of {safeTransferFrom} prevents loss, though the caller must + * understand this adds an external call which potentially creates a reentrancy vulnerability. + * + * Requirements: + * + * - `from` cannot be the zero address. + * - `to` cannot be the zero address. + * - `tokenId` token must be owned by `from`. + * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. + * + * Emits a {Transfer} event. + */ + function transferFrom(address from, address to, uint256 tokenId) external; + + /** + * @dev Gives permission to `to` to transfer `tokenId` token to another account. + * The approval is cleared when the token is transferred. + * + * Only a single account can be approved at a time, so approving the zero address clears previous approvals. + * + * Requirements: + * + * - The caller must own the token or be an approved operator. + * - `tokenId` must exist. + * + * Emits an {Approval} event. + */ + function approve(address to, uint256 tokenId) external; + + /** + * @dev Approve or remove `operator` as an operator for the caller. + * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. + * + * Requirements: + * + * - The `operator` cannot be the address zero. + * + * Emits an {ApprovalForAll} event. + */ + function setApprovalForAll(address operator, bool approved) external; + + /** + * @dev Returns the account approved for `tokenId` token. + * + * Requirements: + * + * - `tokenId` must exist. + */ + function getApproved(uint256 tokenId) external view returns (address operator); + + /** + * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. + * + * See {setApprovalForAll} + */ + function isApprovedForAll(address owner, address operator) external view returns (bool); +} + + +// File @openzeppelin/contracts/token/ERC20/IERC20.sol@v5.0.0 + +// Original license: SPDX_License_Identifier: MIT +// OpenZeppelin Contracts (last updated v5.0.0) (token/ERC20/IERC20.sol) + +pragma solidity ^0.8.20; + +/** + * @dev Interface of the ERC20 standard as defined in the EIP. + */ +interface IERC20 { + /** + * @dev Emitted when `value` tokens are moved from one account (`from`) to + * another (`to`). + * + * Note that `value` may be zero. + */ + event Transfer(address indexed from, address indexed to, uint256 value); + + /** + * @dev Emitted when the allowance of a `spender` for an `owner` is set by + * a call to {approve}. `value` is the new allowance. + */ + event Approval(address indexed owner, address indexed spender, uint256 value); + + /** + * @dev Returns the value of tokens in existence. + */ + function totalSupply() external view returns (uint256); + + /** + * @dev Returns the value of tokens owned by `account`. + */ + function balanceOf(address account) external view returns (uint256); + + /** + * @dev Moves a `value` amount of tokens from the caller's account to `to`. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transfer(address to, uint256 value) external returns (bool); + + /** + * @dev Returns the remaining number of tokens that `spender` will be + * allowed to spend on behalf of `owner` through {transferFrom}. This is + * zero by default. + * + * This value changes when {approve} or {transferFrom} are called. + */ + function allowance(address owner, address spender) external view returns (uint256); + + /** + * @dev Sets a `value` amount of tokens as the allowance of `spender` over the + * caller's tokens. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * IMPORTANT: Beware that changing an allowance with this method brings the risk + * that someone may use both the old and the new allowance by unfortunate + * transaction ordering. One possible solution to mitigate this race + * condition is to first reduce the spender's allowance to 0 and set the + * desired value afterwards: + * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 + * + * Emits an {Approval} event. + */ + function approve(address spender, uint256 value) external returns (bool); + + /** + * @dev Moves a `value` amount of tokens from `from` to `to` using the + * allowance mechanism. `value` is then deducted from the caller's + * allowance. + * + * Returns a boolean value indicating whether the operation succeeded. + * + * Emits a {Transfer} event. + */ + function transferFrom(address from, address to, uint256 value) external returns (bool); +} + + +// File contracts/recover/RecoverERC20.sol + +// Original license: SPDX_License_Identifier: MIT + +pragma solidity ^0.8.20; + +/** + * @title RecoverERC20 + * @dev Allows to recover any ERC20 token sent into the contract and send them to a receiver. + */ +abstract contract RecoverERC20 { + /** + * @dev Recovers a `tokenAmount` of the ERC20 `tokenAddress` locked into this contract + * and sends them to the `tokenReceiver` address. + * + * WARNING: it allows everyone to recover tokens. Access controls MUST be defined in derived contracts. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered tokens. + * @param tokenAmount Number of tokens to be recovered. + */ + function _recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) internal virtual { + // slither-disable-next-line unchecked-transfer + IERC20(tokenAddress).transfer(tokenReceiver, tokenAmount); + } +} + + +// File contracts/recover/RecoverERC721.sol + +// Original license: SPDX_License_Identifier: MIT + +pragma solidity ^0.8.20; + +/** + * @title RecoverERC721 + * @dev Allows to recover any ERC721 token sent into the contract and send them to a receiver. + */ +abstract contract RecoverERC721 { + /** + * @dev Recovers the `tokenId` of the ERC721 `tokenAddress` locked into this contract + * and sends it to the `tokenReceiver` address. + * + * WARNING: it allows everyone to recover tokens. Access controls MUST be defined in derived contracts. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered token. + * @param tokenId The identifier for the NFT to be recovered. + * @param data Additional data with no specified format. + */ + function _recoverERC721( + address tokenAddress, + address tokenReceiver, + uint256 tokenId, + bytes memory data + ) internal virtual { + IERC721(tokenAddress).safeTransferFrom(address(this), tokenReceiver, tokenId, data); + } +} + + +// File contracts/TokenRecover.sol + +// Original license: SPDX_License_Identifier: MIT + +pragma solidity ^0.8.20; + + +/** + * @title TokenRecover + * @dev Allows the contract owner to recover any ERC20 or ERC721 token sent into the contract and send them to a receiver. + */ +abstract contract TokenRecover is Ownable, RecoverERC20, RecoverERC721 { + /** + * @dev Initializes the contract setting the address provided by the deployer as the initial owner. + */ + constructor(address originalOwner) Ownable(originalOwner) {} + + /** + * @dev Recovers a `tokenAmount` of the ERC20 `tokenAddress` locked into this contract + * and sends them to the `tokenReceiver` address. + * + * NOTE: restricting access to owner only. See `RecoverERC20::_recoverERC20`. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered tokens. + * @param tokenAmount Number of tokens to be recovered. + */ + function recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) public virtual onlyOwner { + _recoverERC20(tokenAddress, tokenReceiver, tokenAmount); + } + + /** + * @dev Recovers the `tokenId` of the ERC721 `tokenAddress` locked into this contract + * and sends it to the `tokenReceiver` address. + * + * NOTE: restricting access to owner only. See `RecoverERC721::_recoverERC721`. + * + * @param tokenAddress The contract address of the token to recover. + * @param tokenReceiver The address that will receive the recovered token. + * @param tokenId The identifier for the NFT to be recovered. + * @param data Additional data with no specified format. + */ + function recoverERC721( + address tokenAddress, + address tokenReceiver, + uint256 tokenId, + bytes memory data + ) public virtual onlyOwner { + _recoverERC721(tokenAddress, tokenReceiver, tokenId, data); + } +} diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 0000000..1e4e1db --- /dev/null +++ b/docs/index.md @@ -0,0 +1,163 @@ +# Solidity API + +## ERC20Recover + +_Allows the contract owner to recover any ERC20 token sent into the contract and send them to a receiver._ + +### constructor + +```solidity +constructor(address originalOwner) internal +``` + +_Initializes the contract setting the address provided by the deployer as the initial owner._ + +### recoverERC20 + +```solidity +function recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) external virtual +``` + +_Recovers a `tokenAmount` of the ERC20 `tokenAddress` locked into this contract +and sends them to the `tokenReceiver` address. + +NOTE: restricting access to owner only. See `RecoverERC20::_recoverERC20`._ + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenAddress | address | The contract address of the token to recover. | +| tokenReceiver | address | The address that will receive the recovered tokens. | +| tokenAmount | uint256 | Number of tokens to be recovered. | + +## ERC721Recover + +_Allows the contract owner to recover any ERC721 token sent into the contract and send them to a receiver._ + +### constructor + +```solidity +constructor(address originalOwner) internal +``` + +_Initializes the contract setting the address provided by the deployer as the initial owner._ + +### recoverERC721 + +```solidity +function recoverERC721(address tokenAddress, address tokenReceiver, uint256 tokenId, bytes data) external virtual +``` + +_Recovers the `tokenId` of the ERC721 `tokenAddress` locked into this contract +and sends it to the `tokenReceiver` address. + +NOTE: restricting access to owner only. See `RecoverERC721::_recoverERC721`._ + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenAddress | address | The contract address of the token to recover. | +| tokenReceiver | address | The address that will receive the recovered token. | +| tokenId | uint256 | The identifier for the NFT to be recovered. | +| data | bytes | Additional data with no specified format. | + +## TokenRecover + +_Allows the contract owner to recover any ERC20 or ERC721 token sent into the contract and send them to a receiver._ + +### constructor + +```solidity +constructor(address originalOwner) internal +``` + +_Initializes the contract setting the address provided by the deployer as the initial owner._ + +### recoverERC20 + +```solidity +function recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) external virtual +``` + +_Recovers a `tokenAmount` of the ERC20 `tokenAddress` locked into this contract +and sends them to the `tokenReceiver` address. + +NOTE: restricting access to owner only. See `RecoverERC20::_recoverERC20`._ + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenAddress | address | The contract address of the token to recover. | +| tokenReceiver | address | The address that will receive the recovered tokens. | +| tokenAmount | uint256 | Number of tokens to be recovered. | + +### recoverERC721 + +```solidity +function recoverERC721(address tokenAddress, address tokenReceiver, uint256 tokenId, bytes data) external virtual +``` + +_Recovers the `tokenId` of the ERC721 `tokenAddress` locked into this contract +and sends it to the `tokenReceiver` address. + +NOTE: restricting access to owner only. See `RecoverERC721::_recoverERC721`._ + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenAddress | address | The contract address of the token to recover. | +| tokenReceiver | address | The address that will receive the recovered token. | +| tokenId | uint256 | The identifier for the NFT to be recovered. | +| data | bytes | Additional data with no specified format. | + +## RecoverERC20 + +_Allows to recover any ERC20 token sent into the contract and send them to a receiver._ + +### _recoverERC20 + +```solidity +function _recoverERC20(address tokenAddress, address tokenReceiver, uint256 tokenAmount) internal virtual +``` + +_Recovers a `tokenAmount` of the ERC20 `tokenAddress` locked into this contract +and sends them to the `tokenReceiver` address. + +WARNING: it allows everyone to recover tokens. Access controls MUST be defined in derived contracts._ + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenAddress | address | The contract address of the token to recover. | +| tokenReceiver | address | The address that will receive the recovered tokens. | +| tokenAmount | uint256 | Number of tokens to be recovered. | + +## RecoverERC721 + +_Allows to recover any ERC721 token sent into the contract and send them to a receiver._ + +### _recoverERC721 + +```solidity +function _recoverERC721(address tokenAddress, address tokenReceiver, uint256 tokenId, bytes data) internal virtual +``` + +_Recovers the `tokenId` of the ERC721 `tokenAddress` locked into this contract +and sends it to the `tokenReceiver` address. + +WARNING: it allows everyone to recover tokens. Access controls MUST be defined in derived contracts._ + +#### Parameters + +| Name | Type | Description | +| ---- | ---- | ----------- | +| tokenAddress | address | The contract address of the token to recover. | +| tokenReceiver | address | The address that will receive the recovered token. | +| tokenId | uint256 | The identifier for the NFT to be recovered. | +| data | bytes | Additional data with no specified format. | + diff --git a/hardhat.config.js b/hardhat.config.js index 27dd473..7ce7213 100644 --- a/hardhat.config.js +++ b/hardhat.config.js @@ -1,12 +1,13 @@ require('@nomiclabs/hardhat-truffle5'); -require('solidity-coverage'); require('hardhat-exposed'); require('hardhat-gas-reporter'); +require('solidity-coverage'); +require('solidity-docgen'); module.exports = { defaultNetwork: 'hardhat', solidity: { - version: '0.8.21', + version: '0.8.22', settings: { evmVersion: 'shanghai', optimizer: { @@ -15,6 +16,10 @@ module.exports = { }, }, }, + docgen: { + outputDir: 'docs', + exclude: ['mocks', 'examples'], + }, exposed: { exclude: [], }, diff --git a/package-lock.json b/package-lock.json index 04bfafb..d6c0918 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "eth-token-recover", - "version": "5.0.0", + "version": "6.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "eth-token-recover", - "version": "5.0.0", + "version": "6.0.0", "license": "MIT", "dependencies": { "@openzeppelin/contracts": "5.0.0" @@ -16,19 +16,23 @@ "@nomiclabs/hardhat-web3": "^2.0.0", "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.10", - "eslint": "^8.51.0", + "eslint": "^8.52.0", "eslint-config-prettier": "^9.0.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-mocha-no-only": "^1.1.1", "graphlib": "^2.1.8", - "hardhat": "^2.18.1", + "hardhat": "^2.18.3", "hardhat-exposed": "^0.3.13", "hardhat-gas-reporter": "^1.0.9", "prettier": "^3.0.3", "prettier-plugin-solidity": "^1.1.3", + "rimraf": "^5.0.5", + "sol2uml": "^2.5.16", "solhint": "^3.6.2", "solhint-plugin-openzeppelin": "file:scripts/solhint-custom", "solidity-coverage": "^0.8.5", + "solidity-docgen": "^0.6.0-beta.36", + "surya": "^0.4.8", "truffle": "^5.11.5", "vuepress": "^1.9.10", "vuepress-plugin-google-gtag": "^1.0.1", @@ -44,6 +48,12 @@ "node": ">=0.10.0" } }, + "node_modules/@aduh95/viz.js": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/@aduh95/viz.js/-/viz.js-3.7.0.tgz", + "integrity": "sha512-20Pk2Z98fbPLkECcrZSJszKos/OgtvJJR3NcbVfgCJ6EQjDNzW2P1BKqImOz3tJ952dvO2DWEhcLhQ1Wz1e9ng==", + "dev": true + }, "node_modules/@ampproject/remapping": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", @@ -2216,9 +2226,9 @@ } }, "node_modules/@eslint/js": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.51.0.tgz", - "integrity": "sha512-HxjQ8Qn+4SI3/AFv6sOrDB+g6PpUTDwSJiQqOrnneEk8L71161srI9gjzzZvYVbzHiVg/BvcH95+cK/zfIt4pg==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.52.0.tgz", + "integrity": "sha512-mjZVbpaeMZludF2fsWLD0Z9gCref1Tk4i9+wddjRvpUNqqcndPkBD09N/Mapey0b3jaXbLm2kICwFv2E64QinA==", "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" @@ -3225,12 +3235,12 @@ } }, "node_modules/@humanwhocodes/config-array": { - "version": "0.11.11", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.11.tgz", - "integrity": "sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==", + "version": "0.11.13", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz", + "integrity": "sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ==", "dev": true, "dependencies": { - "@humanwhocodes/object-schema": "^1.2.1", + "@humanwhocodes/object-schema": "^2.0.1", "debug": "^4.1.1", "minimatch": "^3.0.5" }, @@ -3252,11 +3262,107 @@ } }, "node_modules/@humanwhocodes/object-schema": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", - "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz", + "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", + "dev": true + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", + "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", + "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "dev": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", + "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "dev": true, + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/@josephg/resolvable": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@josephg/resolvable/-/resolvable-1.0.1.tgz", @@ -4020,6 +4126,16 @@ "web3-utils": "^1.2.5" } }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "optional": true, + "engines": { + "node": ">=14" + } + }, "node_modules/@protobufjs/aspromise": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", @@ -7498,6 +7614,15 @@ "dev": true, "optional": true }, + "node_modules/@types/debug": { + "version": "4.1.10", + "resolved": "https://registry.npmjs.org/@types/debug/-/debug-4.1.10.tgz", + "integrity": "sha512-tOSCru6s732pofZ+sMv9o4o3Zc+Sa8l3bxd/tweTQudFn06vAzb13ZX46Zi6m6EJ+RUbRTHvgQJ1gBtSgkaUYA==", + "dev": true, + "dependencies": { + "@types/ms": "*" + } + }, "node_modules/@types/express": { "version": "4.17.14", "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.14.tgz", @@ -7650,6 +7775,12 @@ "integrity": "sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==", "dev": true }, + "node_modules/@types/ms": { + "version": "0.7.33", + "resolved": "https://registry.npmjs.org/@types/ms/-/ms-0.7.33.tgz", + "integrity": "sha512-AuHIyzR5Hea7ij0P9q7vx7xu4z0C28ucwjAZC0ja7JhINyCnOw8/DnvAPQQ9TfOlCtZAmCERKQX9+o1mgQhuOQ==", + "dev": true + }, "node_modules/@types/node": { "version": "20.6.3", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.3.tgz", @@ -7824,6 +7955,22 @@ "node": ">=0.10.0" } }, + "node_modules/@types/yauzl": { + "version": "2.10.2", + "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.2.tgz", + "integrity": "sha512-Km7XAtUIduROw7QPgvcft0lIupeG8a8rdKL8RiSyKvlE7dYY31fEn41HVuQsRFDuROA8tA4K2UVL+WdfFmErBA==", + "dev": true, + "optional": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@ungap/structured-clone": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", + "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "dev": true + }, "node_modules/@vue/babel-helper-vue-jsx-merge-props": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/@vue/babel-helper-vue-jsx-merge-props/-/babel-helper-vue-jsx-merge-props-1.4.0.tgz", @@ -10560,13 +10707,25 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-1.5.0.tgz", "integrity": "sha512-D4DdjDo5CY50Qms0qGQTTw6Q44jl7zRwY7bthds06pUGfChBCTcQs+N743eFWGEd6pRTMd6A+I87aWyFV5wiZQ==", "dev": true, - "optional": true, "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } }, + "node_modules/axios-debug-log": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/axios-debug-log/-/axios-debug-log-1.0.0.tgz", + "integrity": "sha512-ZjMaEBEij9w+Vbk2Uc3XflchTT7j9rZdYD/snN+XQ5FRDq1QjZNhh0Izb3KSyarU5vTkiCvJyg1xDiQBHZZB9w==", + "dev": true, + "dependencies": { + "@types/debug": "^4.0.0", + "debug": "^4.0.0" + }, + "peerDependencies": { + "axios": ">=1.0.0" + } + }, "node_modules/babel-loader": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.3.0.tgz", @@ -10867,6 +11026,17 @@ "file-uri-to-path": "1.0.0" } }, + "node_modules/bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", + "dev": true, + "dependencies": { + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + } + }, "node_modules/blakejs": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", @@ -11264,6 +11434,15 @@ "ieee754": "^1.1.13" } }, + "node_modules/buffer-crc32": { + "version": "0.2.13", + "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", + "integrity": "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==", + "dev": true, + "engines": { + "node": "*" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -11377,6 +11556,12 @@ "node": ">= 0.8" } }, + "node_modules/c3-linearization": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/c3-linearization/-/c3-linearization-0.3.0.tgz", + "integrity": "sha512-eQNsZQhFSJAhrNrITy2FpKh7EHS98q/pniDtQhndWqqsvayiPeqZ9T6I9V9PsHcm0nc+ZYJHKUvI/hh37I33HQ==", + "dev": true + }, "node_modules/cac": { "version": "6.7.14", "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz", @@ -12099,6 +12284,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/cli-color": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-2.0.3.tgz", + "integrity": "sha512-OkoZnxyC4ERN3zLzZaY9Emb7f/MhBOIpePv0Ycok0fJYT+Ouo00UBEIwsVsr0yoow++n5YWlSUgST9GKhNHiRQ==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.61", + "es6-iterator": "^2.0.3", + "memoizee": "^0.4.15", + "timers-ext": "^0.1.7" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/cli-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", @@ -12705,6 +12906,251 @@ "integrity": "sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==", "dev": true }, + "node_modules/convert-svg-core": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/convert-svg-core/-/convert-svg-core-0.6.4.tgz", + "integrity": "sha512-8mS0n7otc1lljTte4z7nDhihEakKCRq4w5ivMnIGeOZuD/OV/eDZNNEgGLV1ET3p+rMbnrZnX4lAcsf14WzD5w==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/neocotic" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/neocotic" + } + ], + "dependencies": { + "chalk": "^4.1.2", + "cheerio": "^1.0.0-rc.11", + "commander": "^9.2.0", + "file-url": "^3.0.0", + "get-stdin": "^8.0.0", + "glob": "^8.0.1", + "lodash.omit": "^4.5.0", + "lodash.pick": "^4.4.0", + "pollock": "^0.2.0", + "puppeteer": "^13.7.0", + "tmp": "^0.2.1" + }, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/convert-svg-core/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/convert-svg-core/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/convert-svg-core/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/convert-svg-core/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/convert-svg-core/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/convert-svg-core/node_modules/commander": { + "version": "9.5.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz", + "integrity": "sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==", + "dev": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/convert-svg-core/node_modules/glob": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", + "integrity": "sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/convert-svg-core/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/convert-svg-core/node_modules/minimatch": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/convert-svg-core/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/convert-svg-core/node_modules/rimraf/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/convert-svg-core/node_modules/rimraf/node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/convert-svg-core/node_modules/rimraf/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/convert-svg-core/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/convert-svg-core/node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/convert-svg-to-png": { + "version": "0.6.4", + "resolved": "https://registry.npmjs.org/convert-svg-to-png/-/convert-svg-to-png-0.6.4.tgz", + "integrity": "sha512-zHNTuVedkyuhMl+f+HMm2L7+TKDYCKFAqAmDqUr0dN7/xtgYe76PPAydjlFzeLbzEpGtEfhaA15q+ejpLaVo3g==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/neocotic" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/neocotic" + } + ], + "dependencies": { + "convert-svg-core": "^0.6.4" + }, + "bin": { + "convert-svg-to-png": "bin/convert-svg-to-png" + }, + "engines": { + "node": "^12.20.0 || >=14" + } + }, "node_modules/cookie": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", @@ -14042,6 +14488,12 @@ "detect-port": "bin/detect-port.js" } }, + "node_modules/devtools-protocol": { + "version": "0.0.981744", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.981744.tgz", + "integrity": "sha512-0cuGS8+jhR67Fy7qG3i3Pc7Aw494sb9yG9QgpG97SFVWwolgYjlhJg7n+UaHxOQT30d1TYu/EYe9k01ivLErIg==", + "dev": true + }, "node_modules/diff": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", @@ -14051,6 +14503,12 @@ "node": ">=0.3.1" } }, + "node_modules/diff-match-patch": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/diff-match-patch/-/diff-match-patch-1.0.5.tgz", + "integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw==", + "dev": true + }, "node_modules/diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -14305,6 +14763,12 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", + "dev": true + }, "node_modules/ecc-jsbn": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", @@ -14778,6 +15242,18 @@ "ext": "^1.1.2" } }, + "node_modules/es6-weak-map": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", + "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "^0.10.46", + "es6-iterator": "^2.0.3", + "es6-symbol": "^3.1.1" + } + }, "node_modules/esbuild": { "version": "0.14.7", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.7.tgz", @@ -15144,18 +15620,19 @@ } }, "node_modules/eslint": { - "version": "8.51.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.51.0.tgz", - "integrity": "sha512-2WuxRZBrlwnXi+/vFSJyjMqrNjtJqiasMzehF0shoLaW7DzS3/9Yvrmq5JiT66+pNjiX4UBnLDiKHcWAr/OInA==", + "version": "8.52.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.52.0.tgz", + "integrity": "sha512-zh/JHnaixqHZsolRB/w9/02akBk9EPrOs9JwcTP2ek7yL5bVvXuRariiaAjjoJ5DvuwQ1WAE/HsMz+w17YgBCg==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.2.0", "@eslint-community/regexpp": "^4.6.1", "@eslint/eslintrc": "^2.1.2", - "@eslint/js": "8.51.0", - "@humanwhocodes/config-array": "^0.11.11", + "@eslint/js": "8.52.0", + "@humanwhocodes/config-array": "^0.11.13", "@humanwhocodes/module-importer": "^1.0.1", "@nodelib/fs.walk": "^1.2.8", + "@ungap/structured-clone": "^1.2.0", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.2", @@ -16557,6 +17034,16 @@ "npm": ">=3" } }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "dev": true, + "dependencies": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, "node_modules/event-target-shim": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", @@ -16917,6 +17404,41 @@ "node": ">=0.10.0" } }, + "node_modules/extract-zip": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-2.0.1.tgz", + "integrity": "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "get-stream": "^5.1.0", + "yauzl": "^2.10.0" + }, + "bin": { + "extract-zip": "cli.js" + }, + "engines": { + "node": ">= 10.17.0" + }, + "optionalDependencies": { + "@types/yauzl": "^2.9.1" + } + }, + "node_modules/extract-zip/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -17015,6 +17537,15 @@ "node": ">=0.8.0" } }, + "node_modules/fd-slicer": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", + "integrity": "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==", + "dev": true, + "dependencies": { + "pend": "~1.2.0" + } + }, "node_modules/fetch-cookie": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/fetch-cookie/-/fetch-cookie-0.11.0.tgz", @@ -17098,6 +17629,15 @@ "dev": true, "optional": true }, + "node_modules/file-url": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/file-url/-/file-url-3.0.0.tgz", + "integrity": "sha512-g872QGsHexznxkIAdK8UiZRe7SkE6kvylShU4Nsj8NvfvZag7S0QuQ4IgvPDkk75HxgjIVDwycFTDAgIiO4nDA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", @@ -17196,6 +17736,21 @@ "node": ">=12.0.0" } }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/flatted": { "version": "3.2.9", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", @@ -17292,6 +17847,34 @@ "integrity": "sha512-k6GAGDyqLe9JaebCsFCoudPPWfihKu8pylYXRlqP1J7ms39iPoTtk2fviNglIeQEwdh0bQeKJ01ZPyuyQvKzwg==", "dev": true }, + "node_modules/foreground-child": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", + "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", @@ -17306,7 +17889,6 @@ "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", "dev": true, - "optional": true, "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", @@ -17404,6 +17986,12 @@ "safe-buffer": "~5.1.0" } }, + "node_modules/fs-constants": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", + "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "dev": true + }, "node_modules/fs-extra": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", @@ -21503,6 +22091,18 @@ "node": ">=4" } }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-stream": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", @@ -21819,6 +22419,18 @@ "dev": true, "optional": true }, + "node_modules/graphviz": { + "version": "0.0.9", + "resolved": "https://registry.npmjs.org/graphviz/-/graphviz-0.0.9.tgz", + "integrity": "sha512-SmoY2pOtcikmMCqCSy2NO1YsRfu9OO0wpTlOYW++giGjfX1a6gax/m1Fo8IdUd0/3H15cTOfR1SMKwohj4LKsg==", + "dev": true, + "dependencies": { + "temp": "~0.4.0" + }, + "engines": { + "node": ">=0.6.8" + } + }, "node_modules/gray-matter": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", @@ -21938,9 +22550,9 @@ } }, "node_modules/hardhat": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.18.1.tgz", - "integrity": "sha512-b55rW7Ka+fvJeg6oWuBTXoYQEUurevCCankjGNTwczwD3GnkhV9GEei7KUT+9IKmWx3lC+zyxlFxeDbg0gUoHw==", + "version": "2.18.3", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.18.3.tgz", + "integrity": "sha512-JuYaTG+4ZHVjEHCW5Hn6jCHH3LpO75dtgznZpM/dLv12RcSlw/xHbeQh3FAsGahQr1epKryZcZEMHvztVZHe0g==", "dev": true, "dependencies": { "@ethersproject/abi": "^5.1.2", @@ -22459,6 +23071,43 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hasha": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz", + "integrity": "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ==", + "dev": true, + "dependencies": { + "is-stream": "^2.0.0", + "type-fest": "^0.8.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/hasha/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -23693,6 +24342,12 @@ "node": ">=0.10.0" } }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", + "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", + "dev": true + }, "node_modules/is-regex": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", @@ -23887,12 +24542,39 @@ "integrity": "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==", "dev": true }, + "node_modules/jackspeak": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", + "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", + "dev": true, + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/javascript-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/javascript-stringify/-/javascript-stringify-2.1.0.tgz", "integrity": "sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==", "dev": true }, + "node_modules/js-graph-algorithms": { + "version": "1.0.18", + "resolved": "https://registry.npmjs.org/js-graph-algorithms/-/js-graph-algorithms-1.0.18.tgz", + "integrity": "sha512-Gu1wtWzXBzGeye/j9BuyplGHscwqKRZodp/0M1vyBc19RJpblSwKGu099KwwaTx9cRIV+Qupk8xUMfEiGfFqSA==", + "dev": true, + "bin": { + "js-graphs": "src/jsgraphs.js" + } + }, "node_modules/js-sdsl": { "version": "4.4.2", "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.4.2.tgz", @@ -24637,6 +25319,18 @@ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", "dev": true }, + "node_modules/lodash.omit": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.omit/-/lodash.omit-4.5.0.tgz", + "integrity": "sha512-XeqSp49hNGmlkj2EJlfrQFIzQ6lXdNro9sddtQzcJY8QaoC2GO0DT7xaIokHeyM+mIT0mPMlPvkYzg2xCuHdZg==", + "dev": true + }, + "node_modules/lodash.pick": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.pick/-/lodash.pick-4.4.0.tgz", + "integrity": "sha512-hXt6Ul/5yWjfklSGvLQl8vM//l3FtyHZeuelpzK6mm99pNvN9yTDruNZPEJZD1oWrqo+izBmB7oUfWgcCX7s4Q==", + "dev": true + }, "node_modules/lodash.sortby": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", @@ -24841,6 +25535,15 @@ "yallist": "^3.0.2" } }, + "node_modules/lru-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", + "integrity": "sha512-BpdYkt9EvGl8OfWHDQPISVpcl5xZthb+XPsbELj5AQXxIC8IriDZIQYjBJPEm5rS420sjZ0TLEzRcq5KdBhYrQ==", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.2" + } + }, "node_modules/ltgt": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz", @@ -25064,6 +25767,22 @@ "dev": true, "optional": true }, + "node_modules/memoizee": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", + "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "dev": true, + "dependencies": { + "d": "^1.0.1", + "es5-ext": "^0.10.53", + "es6-weak-map": "^2.0.3", + "event-emitter": "^0.3.5", + "is-promise": "^2.2.2", + "lru-queue": "^0.1.0", + "next-tick": "^1.1.0", + "timers-ext": "^0.1.7" + } + }, "node_modules/memory-fs": { "version": "0.4.1", "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", @@ -25456,6 +26175,12 @@ "mkdirp": "bin/cmd.js" } }, + "node_modules/mkdirp-classic": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz", + "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==", + "dev": true + }, "node_modules/mkdirp-promise": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/mkdirp-promise/-/mkdirp-promise-5.0.1.tgz", @@ -27081,6 +27806,40 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/path-scurry": { + "version": "1.10.1", + "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", + "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", + "dev": true, + "dependencies": { + "lru-cache": "^9.1.1 || ^10.0.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/path-scurry/node_modules/lru-cache": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", + "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", + "dev": true, + "engines": { + "node": "14 || >=16.14" + } + }, + "node_modules/path-scurry/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/path-to-regexp": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", @@ -27121,6 +27880,12 @@ "node": ">=0.12" } }, + "node_modules/pend": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", + "integrity": "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==", + "dev": true + }, "node_modules/performance-now": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", @@ -27259,6 +28024,12 @@ "node": ">=4" } }, + "node_modules/pollock": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/pollock/-/pollock-0.2.1.tgz", + "integrity": "sha512-2Xy6LImSXm0ANKv9BKSVuCa6Z4ACbK7oUrl9gtUgqLkekL7n9C0mlWsOGYYuGbCG8xT0x3Q4F31C3ZMyVQjwsg==", + "dev": true + }, "node_modules/portfinder": { "version": "1.0.32", "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.32.tgz", @@ -28572,6 +29343,15 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", + "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/promise": { "version": "8.3.0", "resolved": "https://registry.npmjs.org/promise/-/promise-8.3.0.tgz", @@ -28604,8 +29384,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "dev": true, - "optional": true + "dev": true }, "node_modules/prr": { "version": "1.0.1", @@ -28691,6 +29470,96 @@ "node": ">=8" } }, + "node_modules/puppeteer": { + "version": "13.7.0", + "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-13.7.0.tgz", + "integrity": "sha512-U1uufzBjz3+PkpCxFrWzh4OrMIdIb2ztzCu0YEPfRHjHswcSwHZswnK+WdsOQJsRV8WeTg3jLhJR4D867+fjsA==", + "deprecated": "< 19.4.0 is no longer supported", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "cross-fetch": "3.1.5", + "debug": "4.3.4", + "devtools-protocol": "0.0.981744", + "extract-zip": "2.0.1", + "https-proxy-agent": "5.0.1", + "pkg-dir": "4.2.0", + "progress": "2.0.3", + "proxy-from-env": "1.1.0", + "rimraf": "3.0.2", + "tar-fs": "2.1.1", + "unbzip2-stream": "1.4.3", + "ws": "8.5.0" + }, + "engines": { + "node": ">=10.18.1" + } + }, + "node_modules/puppeteer/node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dev": true, + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/puppeteer/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dev": true, + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/puppeteer/node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/puppeteer/node_modules/ws": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.5.0.tgz", + "integrity": "sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==", + "dev": true, + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/pure-rand": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-5.0.5.tgz", @@ -29694,20 +30563,78 @@ "dev": true }, "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "version": "5.0.5", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", + "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", "dev": true, "dependencies": { - "glob": "^7.1.3" + "glob": "^10.3.7" }, "bin": { - "rimraf": "bin.js" + "rimraf": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/rimraf/node_modules/glob": { + "version": "10.3.10", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", + "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", + "dev": true, + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^2.3.5", + "minimatch": "^9.0.1", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", + "path-scurry": "^1.10.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "engines": { + "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/rimraf/node_modules/minimatch": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", + "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "dev": true, + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rimraf/node_modules/minipass": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", + "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", + "dev": true, + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/ripemd160": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", @@ -30337,6 +31264,18 @@ "node": "*" } }, + "node_modules/sha1-file": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/sha1-file/-/sha1-file-2.0.1.tgz", + "integrity": "sha512-L4Kum9Lp8cWqcGKycZcXxR6spUoG4idDIUzAKjPiELnIZWxiFlZ5HFVzFxVxuWuGPsrraeL0JoGk0nFZ7AGFEQ==", + "dev": true, + "dependencies": { + "hasha": "^5.2.0" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/sha3": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", @@ -30739,6 +31678,95 @@ "uuid": "dist/bin/uuid" } }, + "node_modules/sol2uml": { + "version": "2.5.16", + "resolved": "https://registry.npmjs.org/sol2uml/-/sol2uml-2.5.16.tgz", + "integrity": "sha512-VEBCFuCr8xVle7ePClojhf/4O/H9qupnZM1uhgQXB6mfX5sKttRDIaUrSisguZJ9rW0WjI/GgXWolpErYQNQCg==", + "dev": true, + "dependencies": { + "@aduh95/viz.js": "^3.7.0", + "@solidity-parser/parser": "^0.16.1", + "axios": "^1.3.4", + "axios-debug-log": "^1.0.0", + "cli-color": "^2.0.3", + "commander": "^11.0.0", + "convert-svg-to-png": "^0.6.4", + "debug": "^4.3.4", + "diff-match-patch": "^1.0.5", + "ethers": "^5.7.2", + "js-graph-algorithms": "^1.0.18", + "klaw": "^4.1.0" + }, + "bin": { + "sol2uml": "lib/sol2uml.js" + } + }, + "node_modules/sol2uml/node_modules/commander": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz", + "integrity": "sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==", + "dev": true, + "engines": { + "node": ">=16" + } + }, + "node_modules/sol2uml/node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "dev": true, + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/sol2uml/node_modules/klaw": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-4.1.0.tgz", + "integrity": "sha512-1zGZ9MF9H22UnkpVeuaGKOjfA2t6WrfdrJmGjy16ykcjnKQDmHVX+KI477rpbGevz/5FD4MC3xf1oxylBgcaQw==", + "dev": true, + "engines": { + "node": ">=14.14.0" + } + }, "node_modules/solc": { "version": "0.4.26", "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.26.tgz", @@ -31233,6 +32261,19 @@ "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, + "node_modules/solidity-docgen": { + "version": "0.6.0-beta.36", + "resolved": "https://registry.npmjs.org/solidity-docgen/-/solidity-docgen-0.6.0-beta.36.tgz", + "integrity": "sha512-f/I5G2iJgU1h0XrrjRD0hHMr7C10u276vYvm//rw1TzFcYQ4xTOyAoi9oNAHRU0JU4mY9eTuxdVc2zahdMuhaQ==", + "dev": true, + "dependencies": { + "handlebars": "^4.7.7", + "solidity-ast": "^0.4.38" + }, + "peerDependencies": { + "hardhat": "^2.8.0" + } + }, "node_modules/sort-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-2.0.0.tgz", @@ -31721,6 +32762,42 @@ "node": ">=8" } }, + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/string-width-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string-width/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -31799,6 +32876,28 @@ "node": ">=4" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -32046,6 +33145,24 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/surya": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/surya/-/surya-0.4.8.tgz", + "integrity": "sha512-bXjLvDEb6QqS7cFoLq2LnmOMRNqFDa9vOQNdmwSYxZlglTd0C5snAb7SZfeC5A4aSNmL4XMsb4VEcm560Ap8Sg==", + "dev": true, + "dependencies": { + "@solidity-parser/parser": "^0.16.1", + "c3-linearization": "^0.3.0", + "colors": "^1.4.0", + "graphviz": "0.0.9", + "sha1-file": "^2.0.0", + "treeify": "^1.1.0", + "yargs": "^17.0.0" + }, + "bin": { + "surya": "bin/surya" + } + }, "node_modules/svg-tags": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", @@ -32532,6 +33649,43 @@ "node": ">=4.5" } }, + "node_modules/tar-fs": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz", + "integrity": "sha512-V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng==", + "dev": true, + "dependencies": { + "chownr": "^1.1.1", + "mkdirp-classic": "^0.5.2", + "pump": "^3.0.0", + "tar-stream": "^2.1.4" + } + }, + "node_modules/tar-stream": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "dev": true, + "dependencies": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/temp": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.4.0.tgz", + "integrity": "sha512-IsFisGgDKk7qzK9erMIkQe/XwiSUdac7z3wYOsjcLkhPBy3k1SlvLoIh2dAHIlEpgA971CgguMrx9z8fFg7tSA==", + "dev": true, + "engines": [ + "node >=0.4.0" + ] + }, "node_modules/term-size": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", @@ -32815,6 +33969,16 @@ "node": ">=0.6.0" } }, + "node_modules/timers-ext": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", + "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "dev": true, + "dependencies": { + "es5-ext": "~0.10.46", + "next-tick": "1" + } + }, "node_modules/timsort": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", @@ -33076,6 +34240,15 @@ "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true }, + "node_modules/treeify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/treeify/-/treeify-1.1.0.tgz", + "integrity": "sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, "node_modules/truffle": { "version": "5.11.5", "resolved": "https://registry.npmjs.org/truffle/-/truffle-5.11.5.tgz", @@ -33633,6 +34806,16 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unbzip2-stream": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/unbzip2-stream/-/unbzip2-stream-1.4.3.tgz", + "integrity": "sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==", + "dev": true, + "dependencies": { + "buffer": "^5.2.1", + "through": "^2.3.8" + } + }, "node_modules/underscore": { "version": "1.13.6", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.13.6.tgz", @@ -37355,6 +38538,78 @@ "node": ">=6" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi-cjs/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/wrap-ansi/node_modules/ansi-regex": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.1.tgz", @@ -37650,6 +38905,16 @@ "node": ">=12" } }, + "node_modules/yauzl": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.10.0.tgz", + "integrity": "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g==", + "dev": true, + "dependencies": { + "buffer-crc32": "~0.2.3", + "fd-slicer": "~1.1.0" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index 383409a..a424dca 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "eth-token-recover", - "version": "5.0.0", - "description": "TokenRecover allows the contract owner to recover any ERC20 token sent into the contract for error", + "version": "6.0.0", + "description": "TokenRecover allows to recover any ERC20 or ERC721 token sent into the contract and send them to a receiver.", "files": [ "contracts", "test" @@ -25,9 +25,12 @@ "lint:js:fix": "prettier --log-level warn --ignore-path .gitignore '**/*.{js,ts}' --write && eslint --ignore-path .gitignore . --fix", "lint:sol": "prettier --log-level warn --ignore-path .gitignore '{contracts,test}/**/*.sol' --check && solhint '{contracts,test}/**/*.sol'", "lint:sol:fix": "prettier --log-level warn --ignore-path .gitignore '{contracts,test}/**/*.sol' --write", - "docs:dev": "export NODE_OPTIONS=--openssl-legacy-provider && vuepress dev docs", - "docs:build": "export NODE_OPTIONS=--openssl-legacy-provider && vuepress build docs", - "docs:deploy": "export NODE_OPTIONS=--openssl-legacy-provider && vuepress build docs && sh docs/deploy/deploy.sh" + "flat": "scripts/flat.sh", + "analyze": "scripts/analyze.sh", + "docs": "hardhat docgen", + "pages:dev": "export NODE_OPTIONS=--openssl-legacy-provider && vuepress dev pages", + "pages:build": "export NODE_OPTIONS=--openssl-legacy-provider && vuepress build pages", + "pages:deploy": "export NODE_OPTIONS=--openssl-legacy-provider && vuepress build pages && sh pages/deploy/deploy.sh" }, "repository": { "type": "git", @@ -45,7 +48,7 @@ "bugs": { "url": "https://github.com/vittominacori/eth-token-recover/issues" }, - "homepage": "https://github.com/vittominacori/eth-token-recover", + "homepage": "https://vittominacori.github.io/eth-token-recover/", "dependencies": { "@openzeppelin/contracts": "5.0.0" }, @@ -54,19 +57,23 @@ "@nomiclabs/hardhat-web3": "^2.0.0", "@openzeppelin/test-helpers": "^0.5.16", "chai": "^4.3.10", - "eslint": "^8.51.0", + "eslint": "^8.52.0", "eslint-config-prettier": "^9.0.0", "eslint-config-standard": "^17.1.0", "eslint-plugin-mocha-no-only": "^1.1.1", "graphlib": "^2.1.8", - "hardhat": "^2.18.1", + "hardhat": "^2.18.3", "hardhat-exposed": "^0.3.13", "hardhat-gas-reporter": "^1.0.9", "prettier": "^3.0.3", "prettier-plugin-solidity": "^1.1.3", + "rimraf": "^5.0.5", + "sol2uml": "^2.5.16", "solhint": "^3.6.2", "solhint-plugin-openzeppelin": "file:scripts/solhint-custom", "solidity-coverage": "^0.8.5", + "solidity-docgen": "^0.6.0-beta.36", + "surya": "^0.4.8", "truffle": "^5.11.5", "vuepress": "^1.9.10", "vuepress-plugin-google-gtag": "^1.0.1", diff --git a/docs/.vuepress/.env.json.example b/pages/.vuepress/.env.json.example similarity index 100% rename from docs/.vuepress/.env.json.example rename to pages/.vuepress/.env.json.example diff --git a/docs/.vuepress/config.js b/pages/.vuepress/config.js similarity index 100% rename from docs/.vuepress/config.js rename to pages/.vuepress/config.js diff --git a/docs/.vuepress/public/favicon.ico b/pages/.vuepress/public/favicon.ico similarity index 100% rename from docs/.vuepress/public/favicon.ico rename to pages/.vuepress/public/favicon.ico diff --git a/docs/.vuepress/styles/index.styl b/pages/.vuepress/styles/index.styl similarity index 100% rename from docs/.vuepress/styles/index.styl rename to pages/.vuepress/styles/index.styl diff --git a/docs/.vuepress/styles/palette.styl b/pages/.vuepress/styles/palette.styl similarity index 100% rename from docs/.vuepress/styles/palette.styl rename to pages/.vuepress/styles/palette.styl diff --git a/docs/README.md b/pages/README.md similarity index 100% rename from docs/README.md rename to pages/README.md diff --git a/docs/deploy/deploy.sh b/pages/deploy/deploy.sh similarity index 100% rename from docs/deploy/deploy.sh rename to pages/deploy/deploy.sh diff --git a/scripts/analyze.sh b/scripts/analyze.sh new file mode 100755 index 0000000..2efae1a --- /dev/null +++ b/scripts/analyze.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash + +for contract in "ERC20Recover" "ERC721Recover" "TokenRecover" +do + npx surya inheritance dist/$contract.dist.sol | dot -Tpng > analysis/inheritance-tree/$contract.png + + npx surya graph dist/$contract.dist.sol | dot -Tpng > analysis/control-flow/$contract.png + + npx surya mdreport analysis/description-table/$contract.md dist/$contract.dist.sol + + npx sol2uml -hn dist/$contract.dist.sol -o analysis/uml/$contract.svg +done diff --git a/scripts/flat.sh b/scripts/flat.sh new file mode 100755 index 0000000..a4f591c --- /dev/null +++ b/scripts/flat.sh @@ -0,0 +1,18 @@ +#!/usr/bin/env bash + +echo "flattening code..." + +for contract in "ERC20Recover" "ERC721Recover" "TokenRecover" +do + npx hardhat flatten contracts/$contract.sol > dist/$contract.dist.sol +done + +echo "adjusting license..." + +SEARCH="\/\/ SPDX-License-Identifier: MIT" +REPLACE="" + +for contract in dist/*.sol; do + sed -i '' "s/$SEARCH/$REPLACE/g" $contract + sed -i '' "1s;^;$SEARCH\n\n;" $contract +done diff --git a/test/ERC20Recover.behavior.js b/test/ERC20Recover.behavior.js new file mode 100644 index 0000000..879b316 --- /dev/null +++ b/test/ERC20Recover.behavior.js @@ -0,0 +1,56 @@ +const { BN } = require('@openzeppelin/test-helpers'); +const { expectRevertCustomError } = require('./helpers/customError'); + +const { expect } = require('chai'); + +const { shouldBehaveLikeRecoverERC20 } = require('./recover/RecoverERC20.behavior'); + +const { shouldBehaveLikeOwnable } = require('./access/Ownable.behavior'); + +const ERC20 = artifacts.require('$ERC20Mock'); + +function shouldBehaveLikeERC20Recover(owner, receiver) { + const amount = new BN(100); + + beforeEach(async function () { + this.erc20ToRecover = await ERC20.new(); + await this.erc20ToRecover.$_mint(owner, amount); + await this.erc20ToRecover.transfer(this.instance.address, amount, { from: owner }); + }); + + shouldBehaveLikeRecoverERC20(receiver, amount); + + describe('ERC20Recover behavior', function () { + describe('recoverERC20', function () { + describe('if owner is calling', function () { + it('should recover any ERC20', async function () { + expect(await this.erc20ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal(amount); + expect(await this.erc20ToRecover.balanceOf(receiver)).to.be.bignumber.equal('0'); + + await this.instance.recoverERC20(this.erc20ToRecover.address, receiver, amount, { from: owner }); + + expect(await this.erc20ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal('0'); + expect(await this.erc20ToRecover.balanceOf(receiver)).to.be.bignumber.equal(amount); + }); + }); + + describe('if non-owners are calling', function () { + it('reverts', async function () { + await expectRevertCustomError( + this.instance.recoverERC20(this.erc20ToRecover.address, receiver, amount, { from: receiver }), + 'OwnableUnauthorizedAccount', + [receiver], + ); + }); + }); + }); + + context('testing ownership', function () { + shouldBehaveLikeOwnable(owner, receiver); + }); + }); +} + +module.exports = { + shouldBehaveLikeERC20Recover, +}; diff --git a/test/ERC20Recover.test.js b/test/ERC20Recover.test.js new file mode 100644 index 0000000..dd0e56e --- /dev/null +++ b/test/ERC20Recover.test.js @@ -0,0 +1,26 @@ +const { constants } = require('@openzeppelin/test-helpers'); +const { expectRevertCustomError } = require('./helpers/customError'); + +const { shouldBehaveLikeERC20Recover } = require('./ERC20Recover.behavior'); + +const ERC20Recover = artifacts.require('$ERC20Recover'); + +contract('ERC20Recover', function (accounts) { + const [owner, receiver] = accounts; + + describe('creating valid contract', function () { + it('rejects zero address for owner', async function () { + await expectRevertCustomError(ERC20Recover.new(constants.ZERO_ADDRESS), 'OwnableInvalidOwner', [ + constants.ZERO_ADDRESS, + ]); + }); + }); + + describe('once deployed', function () { + beforeEach(async function () { + this.instance = await ERC20Recover.new(owner); + }); + + shouldBehaveLikeERC20Recover(owner, receiver); + }); +}); diff --git a/test/ERC721Recover.behavior.js b/test/ERC721Recover.behavior.js new file mode 100644 index 0000000..14b00e4 --- /dev/null +++ b/test/ERC721Recover.behavior.js @@ -0,0 +1,61 @@ +const { BN } = require('@openzeppelin/test-helpers'); +const { expectRevertCustomError } = require('./helpers/customError'); + +const { expect } = require('chai'); + +const { shouldBehaveLikeRecoverERC721 } = require('./recover/RecoverERC721.behavior'); + +const { shouldBehaveLikeOwnable } = require('./access/Ownable.behavior'); + +const ERC721 = artifacts.require('$ERC721Mock'); + +function shouldBehaveLikeERC721Recover(owner, receiver) { + const tokenId = new BN('5042'); + const data = '0x42'; + + beforeEach(async function () { + this.erc721ToRecover = await ERC721.new(); + await this.erc721ToRecover.$_mint(owner, tokenId); + await this.erc721ToRecover.transferFrom(owner, this.instance.address, tokenId, { from: owner }); + }); + + shouldBehaveLikeRecoverERC721(receiver, tokenId); + + describe('ERC721Recover behavior', function () { + describe('recoverERC721', function () { + describe('if owner is calling', function () { + it('should recover any ERC721', async function () { + expect(await this.erc721ToRecover.ownerOf(tokenId)).to.be.equal(this.instance.address); + + expect(await this.erc721ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal('1'); + expect(await this.erc721ToRecover.balanceOf(receiver)).to.be.bignumber.equal('0'); + + await this.instance.recoverERC721(this.erc721ToRecover.address, receiver, tokenId, data, { from: owner }); + + expect(await this.erc721ToRecover.ownerOf(tokenId)).to.be.equal(receiver); + + expect(await this.erc721ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal('0'); + expect(await this.erc721ToRecover.balanceOf(receiver)).to.be.bignumber.equal('1'); + }); + }); + + describe('if non-owners are calling', function () { + it('reverts', async function () { + await expectRevertCustomError( + this.instance.recoverERC721(this.erc721ToRecover.address, receiver, tokenId, data, { from: receiver }), + 'OwnableUnauthorizedAccount', + [receiver], + ); + }); + }); + }); + + context('testing ownership', function () { + shouldBehaveLikeOwnable(owner, receiver); + }); + }); +} + +module.exports = { + shouldBehaveLikeERC721Recover, +}; diff --git a/test/ERC721Recover.test.js b/test/ERC721Recover.test.js new file mode 100644 index 0000000..e56cacc --- /dev/null +++ b/test/ERC721Recover.test.js @@ -0,0 +1,26 @@ +const { constants } = require('@openzeppelin/test-helpers'); +const { expectRevertCustomError } = require('./helpers/customError'); + +const { shouldBehaveLikeERC721Recover } = require('./ERC721Recover.behavior'); + +const ERC721Recover = artifacts.require('$ERC721Recover'); + +contract('ERC721Recover', function (accounts) { + const [owner, receiver] = accounts; + + describe('creating valid contract', function () { + it('rejects zero address for owner', async function () { + await expectRevertCustomError(ERC721Recover.new(constants.ZERO_ADDRESS), 'OwnableInvalidOwner', [ + constants.ZERO_ADDRESS, + ]); + }); + }); + + describe('once deployed', function () { + beforeEach(async function () { + this.instance = await ERC721Recover.new(owner); + }); + + shouldBehaveLikeERC721Recover(owner, receiver); + }); +}); diff --git a/test/TokenRecover.behavior.js b/test/TokenRecover.behavior.js index d4d8991..b2d8418 100644 --- a/test/TokenRecover.behavior.js +++ b/test/TokenRecover.behavior.js @@ -1,47 +1,90 @@ const { BN } = require('@openzeppelin/test-helpers'); const { expectRevertCustomError } = require('./helpers/customError'); + const { expect } = require('chai'); +const { shouldBehaveLikeRecoverERC20 } = require('./recover/RecoverERC20.behavior'); +const { shouldBehaveLikeRecoverERC721 } = require('./recover/RecoverERC721.behavior'); + const { shouldBehaveLikeOwnable } = require('./access/Ownable.behavior'); const ERC20 = artifacts.require('$ERC20Mock'); +const ERC721 = artifacts.require('$ERC721Mock'); -function shouldBehaveLikeTokenRecover(owner, other) { - describe('recoverERC20', function () { - const amount = new BN(100); +function shouldBehaveLikeTokenRecover(owner, receiver) { + const amount = new BN(100); + const tokenId = new BN('5042'); + const data = '0x42'; - beforeEach(async function () { - this.erc20ToRecover = await ERC20.new(); - await this.erc20ToRecover.$_mint(owner, amount); + beforeEach(async function () { + this.erc20ToRecover = await ERC20.new(); + await this.erc20ToRecover.$_mint(owner, amount); + await this.erc20ToRecover.transfer(this.instance.address, amount, { from: owner }); - await this.erc20ToRecover.transfer(this.instance.address, amount, { from: owner }); - }); + this.erc721ToRecover = await ERC721.new(); + await this.erc721ToRecover.$_mint(owner, tokenId); + await this.erc721ToRecover.transferFrom(owner, this.instance.address, tokenId, { from: owner }); + }); - describe('if owner is calling', function () { - it('should recover any ERC20', async function () { - expect(await this.erc20ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal(amount); - expect(await this.erc20ToRecover.balanceOf(owner)).to.be.bignumber.equal('0'); + shouldBehaveLikeRecoverERC20(receiver, amount); + shouldBehaveLikeRecoverERC721(receiver, tokenId); - await this.instance.recoverERC20(this.erc20ToRecover.address, amount, { from: owner }); + describe('TokenRecover behavior', function () { + describe('recoverERC20', function () { + describe('if owner is calling', function () { + it('should recover any ERC20', async function () { + expect(await this.erc20ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal(amount); + expect(await this.erc20ToRecover.balanceOf(receiver)).to.be.bignumber.equal('0'); - expect(await this.erc20ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal('0'); - expect(await this.erc20ToRecover.balanceOf(owner)).to.be.bignumber.equal(amount); + await this.instance.recoverERC20(this.erc20ToRecover.address, receiver, amount, { from: owner }); + + expect(await this.erc20ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal('0'); + expect(await this.erc20ToRecover.balanceOf(receiver)).to.be.bignumber.equal(amount); + }); + }); + + describe('if non-owners are calling', function () { + it('reverts', async function () { + await expectRevertCustomError( + this.instance.recoverERC20(this.erc20ToRecover.address, receiver, amount, { from: receiver }), + 'OwnableUnauthorizedAccount', + [receiver], + ); + }); }); }); - describe('if non-owners are calling', function () { - it('reverts', async function () { - await expectRevertCustomError( - this.instance.recoverERC20(this.erc20ToRecover.address, amount, { from: other }), - 'OwnableUnauthorizedAccount', - [other], - ); + describe('recoverERC721', function () { + describe('if owner is calling', function () { + it('should recover any ERC721', async function () { + expect(await this.erc721ToRecover.ownerOf(tokenId)).to.be.equal(this.instance.address); + + expect(await this.erc721ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal('1'); + expect(await this.erc721ToRecover.balanceOf(receiver)).to.be.bignumber.equal('0'); + + await this.instance.recoverERC721(this.erc721ToRecover.address, receiver, tokenId, data, { from: owner }); + + expect(await this.erc721ToRecover.ownerOf(tokenId)).to.be.equal(receiver); + + expect(await this.erc721ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal('0'); + expect(await this.erc721ToRecover.balanceOf(receiver)).to.be.bignumber.equal('1'); + }); + }); + + describe('if non-owners are calling', function () { + it('reverts', async function () { + await expectRevertCustomError( + this.instance.recoverERC721(this.erc721ToRecover.address, receiver, tokenId, data, { from: receiver }), + 'OwnableUnauthorizedAccount', + [receiver], + ); + }); }); }); - }); - context('testing ownership', function () { - shouldBehaveLikeOwnable(owner, other); + context('testing ownership', function () { + shouldBehaveLikeOwnable(owner, receiver); + }); }); } diff --git a/test/TokenRecover.test.js b/test/TokenRecover.test.js index 5ec0dfb..d1f7fdc 100644 --- a/test/TokenRecover.test.js +++ b/test/TokenRecover.test.js @@ -1,13 +1,26 @@ +const { constants } = require('@openzeppelin/test-helpers'); +const { expectRevertCustomError } = require('./helpers/customError'); + const { shouldBehaveLikeTokenRecover } = require('./TokenRecover.behavior'); const TokenRecover = artifacts.require('$TokenRecover'); contract('TokenRecover', function (accounts) { - const [owner, other] = accounts; + const [owner, receiver] = accounts; - beforeEach(async function () { - this.instance = await TokenRecover.new(owner); + describe('creating valid contract', function () { + it('rejects zero address for owner', async function () { + await expectRevertCustomError(TokenRecover.new(constants.ZERO_ADDRESS), 'OwnableInvalidOwner', [ + constants.ZERO_ADDRESS, + ]); + }); }); - shouldBehaveLikeTokenRecover(owner, other); + describe('once deployed', function () { + beforeEach(async function () { + this.instance = await TokenRecover.new(owner); + }); + + shouldBehaveLikeTokenRecover(owner, receiver); + }); }); diff --git a/test/access/Ownable.behavior.js b/test/access/Ownable.behavior.js index 4d02a7e..15e6526 100644 --- a/test/access/Ownable.behavior.js +++ b/test/access/Ownable.behavior.js @@ -6,7 +6,7 @@ const { ZERO_ADDRESS } = constants; const { expect } = require('chai'); function shouldBehaveLikeOwnable(owner, other) { - describe('as an Ownable', function () { + describe('like an Ownable', function () { it('has an owner', async function () { expect(await this.instance.owner()).to.equal(owner); }); diff --git a/test/examples/TRDeployerOwner.test.js b/test/examples/TRDeployerOwner.test.js deleted file mode 100644 index 064a178..0000000 --- a/test/examples/TRDeployerOwner.test.js +++ /dev/null @@ -1,25 +0,0 @@ -const { expect } = require('chai'); - -const { shouldBehaveLikeTokenRecover } = require('../TokenRecover.behavior'); - -const TokenRecover = artifacts.require('$TRDeployerOwner'); - -contract('TRDeployerOwner', function (accounts) { - const [owner, other] = accounts; - - describe('creating valid contract', function () { - it('deployer should be owner', async function () { - const tokenRecover = await TokenRecover.new({ from: owner }); - - expect(await tokenRecover.owner()).to.equal(owner); - }); - }); - - describe('once deployed', function () { - beforeEach(async function () { - this.instance = await TokenRecover.new(); - }); - - shouldBehaveLikeTokenRecover(owner, other); - }); -}); diff --git a/test/examples/TRProvidedOwner.test.js b/test/examples/TRProvidedOwner.test.js deleted file mode 100644 index 67dd4ff..0000000 --- a/test/examples/TRProvidedOwner.test.js +++ /dev/null @@ -1,26 +0,0 @@ -const { constants } = require('@openzeppelin/test-helpers'); -const { expectRevertCustomError } = require('../helpers/customError'); - -const { shouldBehaveLikeTokenRecover } = require('../TokenRecover.behavior'); - -const TokenRecover = artifacts.require('$TRProvidedOwner'); - -contract('TRProvidedOwner', function (accounts) { - const [owner, other] = accounts; - - describe('creating valid contract', function () { - it('rejects zero address for initialOwner', async function () { - await expectRevertCustomError(TokenRecover.new(constants.ZERO_ADDRESS, { from: owner }), 'OwnableInvalidOwner', [ - constants.ZERO_ADDRESS, - ]); - }); - }); - - describe('once deployed', function () { - beforeEach(async function () { - this.instance = await TokenRecover.new(owner); - }); - - shouldBehaveLikeTokenRecover(owner, other); - }); -}); diff --git a/test/recover/RecoverERC20.behavior.js b/test/recover/RecoverERC20.behavior.js new file mode 100644 index 0000000..2aaeccf --- /dev/null +++ b/test/recover/RecoverERC20.behavior.js @@ -0,0 +1,21 @@ +const { expect } = require('chai'); + +function shouldBehaveLikeRecoverERC20(receiver, amount) { + context('like a RecoverERC20', function () { + describe('_recoverERC20', function () { + it('transfer the ERC20 tokens to receiver', async function () { + expect(await this.erc20ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal(amount); + expect(await this.erc20ToRecover.balanceOf(receiver)).to.be.bignumber.equal('0'); + + await this.instance.$_recoverERC20(this.erc20ToRecover.address, receiver, amount); + + expect(await this.erc20ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal('0'); + expect(await this.erc20ToRecover.balanceOf(receiver)).to.be.bignumber.equal(amount); + }); + }); + }); +} + +module.exports = { + shouldBehaveLikeRecoverERC20, +}; diff --git a/test/recover/RecoverERC721.behavior.js b/test/recover/RecoverERC721.behavior.js new file mode 100644 index 0000000..35dd549 --- /dev/null +++ b/test/recover/RecoverERC721.behavior.js @@ -0,0 +1,27 @@ +const { expect } = require('chai'); + +function shouldBehaveLikeRecoverERC721(receiver, tokenId) { + const data = '0x42'; + + context('like an RecoverERC721', function () { + describe('_recoverERC721', function () { + it('transfer the ERC721 token to receiver', async function () { + expect(await this.erc721ToRecover.ownerOf(tokenId)).to.be.equal(this.instance.address); + + expect(await this.erc721ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal('1'); + expect(await this.erc721ToRecover.balanceOf(receiver)).to.be.bignumber.equal('0'); + + await this.instance.$_recoverERC721(this.erc721ToRecover.address, receiver, tokenId, data); + + expect(await this.erc721ToRecover.ownerOf(tokenId)).to.be.equal(receiver); + + expect(await this.erc721ToRecover.balanceOf(this.instance.address)).to.be.bignumber.equal('0'); + expect(await this.erc721ToRecover.balanceOf(receiver)).to.be.bignumber.equal('1'); + }); + }); + }); +} + +module.exports = { + shouldBehaveLikeRecoverERC721, +}; diff --git a/truffle-config.js b/truffle-config.js index 868dda1..49a114e 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -1,7 +1,7 @@ module.exports = { compilers: { solc: { - version: '0.8.21', + version: '0.8.22', settings: { optimizer: { enabled: true,