mirror of
https://github.com/Instadapp/dsa-connectors-2.0.git
synced 2024-07-29 21:57:39 +00:00
feat: add fluid connector
This commit is contained in:
parent
156749cbaa
commit
24ffd46db7
14
contracts/mainnet/connectors/fluid/events.sol
Normal file
14
contracts/mainnet/connectors/fluid/events.sol
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
//SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.2;
|
||||||
|
|
||||||
|
contract Events {
|
||||||
|
event LogOperate (
|
||||||
|
address vaultAddress,
|
||||||
|
uint256 nftId,
|
||||||
|
int256 newCol,
|
||||||
|
int256 newDebt,
|
||||||
|
address to,
|
||||||
|
uint256 getId,
|
||||||
|
uint256 setId
|
||||||
|
);
|
||||||
|
}
|
47
contracts/mainnet/connectors/fluid/interface.sol
Normal file
47
contracts/mainnet/connectors/fluid/interface.sol
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
//SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.2;
|
||||||
|
|
||||||
|
interface IVault {
|
||||||
|
|
||||||
|
/// @dev Single function which handles supply, withdraw, borrow & payback
|
||||||
|
/// @param nftId_ NFT ID for interaction. If 0 then create new NFT/position.
|
||||||
|
/// @param newCol_ new collateral. If positive then deposit, if negative then withdraw, if 0 then do nohing
|
||||||
|
/// @param newDebt_ new debt. If positive then borrow, if negative then payback, if 0 then do nohing
|
||||||
|
/// @param to_ address where withdraw or borrow should go. If address(0) then msg.sender
|
||||||
|
/// @return nftId_ if 0 then this returns the newly created NFT Id else returns the same NFT ID
|
||||||
|
/// @return final supply amount. Mainly if max withdraw using type(int).min then this is useful to get perfect amount else remain same as newCol_
|
||||||
|
/// @return final borrow amount. Mainly if max payback using type(int).min then this is useful to get perfect amount else remain same as newDebt_
|
||||||
|
function operate(
|
||||||
|
uint256 nftId_, // if 0 then new position
|
||||||
|
int256 newCol_, // if negative then withdraw
|
||||||
|
int256 newDebt_, // if negative then payback
|
||||||
|
address to_ // address at which the borrow & withdraw amount should go to. If address(0) then it'll go to msg.sender
|
||||||
|
)
|
||||||
|
external
|
||||||
|
payable
|
||||||
|
returns (
|
||||||
|
uint256, // nftId_
|
||||||
|
int256, // final supply amount if - then withdraw
|
||||||
|
int256 // final borrow amount if - then payback
|
||||||
|
);
|
||||||
|
|
||||||
|
struct ConstantViews {
|
||||||
|
address liquidity;
|
||||||
|
address factory;
|
||||||
|
address adminImplementation;
|
||||||
|
address secondaryImplementation;
|
||||||
|
address supplyToken;
|
||||||
|
address borrowToken;
|
||||||
|
uint8 supplyDecimals;
|
||||||
|
uint8 borrowDecimals;
|
||||||
|
uint vaultId;
|
||||||
|
bytes32 liquidityTotalSupplySlot;
|
||||||
|
bytes32 liquidityTotalBorrowSlot;
|
||||||
|
bytes32 liquiditySupplyExchangePriceSlot;
|
||||||
|
bytes32 liquidityBorrowExchangePriceSlot;
|
||||||
|
bytes32 liquidityUserSupplySlot;
|
||||||
|
bytes32 liquidityUserBorrowSlot;
|
||||||
|
}
|
||||||
|
|
||||||
|
function constantsView() external view returns (ConstantViews memory constantsView_);
|
||||||
|
}
|
98
contracts/mainnet/connectors/fluid/main.sol
Normal file
98
contracts/mainnet/connectors/fluid/main.sol
Normal file
|
@ -0,0 +1,98 @@
|
||||||
|
//SPDX-License-Identifier: MIT
|
||||||
|
pragma solidity ^0.8.2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @title Fluid.
|
||||||
|
* @dev Lending & Borrowing.
|
||||||
|
*/
|
||||||
|
|
||||||
|
import {Stores} from "../../common/stores.sol";
|
||||||
|
import {TokenInterface} from "../../common/interfaces.sol";
|
||||||
|
import {Events} from "./events.sol";
|
||||||
|
import {IVault} from "./interface.sol";
|
||||||
|
|
||||||
|
abstract contract FluidConnector is Events, Stores {
|
||||||
|
/**
|
||||||
|
* @dev Returns Eth address
|
||||||
|
*/
|
||||||
|
function getEthAddr() internal pure returns (address) {
|
||||||
|
return 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @dev Deposit, borrow, payback and withdraw asset from the vault.
|
||||||
|
* @notice Single function which handles supply, withdraw, borrow & payback
|
||||||
|
* @param vaultAddress_ Vault address.
|
||||||
|
* @param nftId_ NFT ID for interaction. If 0 then create new NFT/position.
|
||||||
|
* @param newCol_ New collateral. If positive then deposit, if negative then withdraw, if 0 then do nothing
|
||||||
|
* @param newDebt_ New debt. If positive then borrow, if negative then payback, if 0 then do nothing
|
||||||
|
* @param to_ Address where withdraw or borrow should go. If address(0) then msg.sender
|
||||||
|
* @param getId_ ID to retrieve NFT ID.
|
||||||
|
* @param setId_ ID stores the NFT ID generated.
|
||||||
|
*/
|
||||||
|
function operate(
|
||||||
|
address vaultAddress_,
|
||||||
|
uint256 nftId_,
|
||||||
|
int256 newCol_,
|
||||||
|
int256 newDebt_,
|
||||||
|
address to_,
|
||||||
|
uint256 getId_,
|
||||||
|
uint256 setId_
|
||||||
|
)
|
||||||
|
external
|
||||||
|
payable
|
||||||
|
returns (string memory _eventName, bytes memory _eventParam)
|
||||||
|
{
|
||||||
|
nftId_ = getUint(getId_, nftId_);
|
||||||
|
|
||||||
|
IVault vault_ = IVault(vaultAddress_);
|
||||||
|
|
||||||
|
IVault.ConstantViews memory vaultDetails_ = vault_.constantsView();
|
||||||
|
|
||||||
|
bool isSupplyTokenEth_ = vaultDetails_.supplyToken == getEthAddr();
|
||||||
|
bool isBorrowTokenEth_ = vaultDetails_.borrowToken == getEthAddr();
|
||||||
|
|
||||||
|
if (newCol_ > 0 && !isSupplyTokenEth_) {
|
||||||
|
TokenInterface(vaultDetails_.supplyToken).approve(
|
||||||
|
vaultAddress_,
|
||||||
|
uint256(newCol_)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (newDebt_ < 0 && !isBorrowTokenEth_) {
|
||||||
|
TokenInterface(vaultDetails_.borrowToken).approve(
|
||||||
|
vaultAddress_,
|
||||||
|
uint256(-1 * newDebt_)
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
uint256 colEthAmount_ = isSupplyTokenEth_ && newCol_ > 0
|
||||||
|
? uint256(newCol_)
|
||||||
|
: 0;
|
||||||
|
|
||||||
|
uint256 debtEthAmount_ = isBorrowTokenEth_ && newDebt_ < 0
|
||||||
|
? uint256(-1 * newDebt_)
|
||||||
|
: 0;
|
||||||
|
|
||||||
|
(nftId_, newCol_, newDebt_) = vault_.operate{
|
||||||
|
value: colEthAmount_ + debtEthAmount_
|
||||||
|
}(nftId_, newCol_, newDebt_, to_);
|
||||||
|
|
||||||
|
setUint(setId_, nftId_);
|
||||||
|
|
||||||
|
_eventName = "LogOperate(address,uint256,int256,int256,address,uint256,uint256)";
|
||||||
|
_eventParam = abi.encode(
|
||||||
|
vaultAddress_,
|
||||||
|
nftId_,
|
||||||
|
newCol_,
|
||||||
|
newDebt_,
|
||||||
|
to_,
|
||||||
|
getId_,
|
||||||
|
setId_
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
contract ConnectV2Fluid is FluidConnector {
|
||||||
|
string public constant name = "Fluid-v1.0";
|
||||||
|
}
|
168
package-lock.json
generated
168
package-lock.json
generated
|
@ -8,11 +8,14 @@
|
||||||
"name": "dsa-connectors-2.0",
|
"name": "dsa-connectors-2.0",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@nomiclabs/hardhat-ethers": "^2.2.3",
|
||||||
"@openzeppelin/contracts": "^4.9.5",
|
"@openzeppelin/contracts": "^4.9.5",
|
||||||
"@typechain/ethers-v5": "^10.2.1",
|
"@typechain/ethers-v5": "^10.2.1",
|
||||||
"@typechain/hardhat": "^6.1.6",
|
"@typechain/hardhat": "^6.1.6",
|
||||||
"bignumber.js": "^4.0.4",
|
"bignumber.js": "^4.0.4",
|
||||||
"dotenv": "^16.3.1",
|
"dotenv": "^16.3.1",
|
||||||
|
"prettier": "^3.1.1",
|
||||||
|
"prettier-plugin-solidity": "^1.2.0",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",
|
||||||
"web3": "^4.3.0"
|
"web3": "^4.3.0"
|
||||||
},
|
},
|
||||||
|
@ -1390,6 +1393,15 @@
|
||||||
"node": ">= 10"
|
"node": ">= 10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@nomiclabs/hardhat-ethers": {
|
||||||
|
"version": "2.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz",
|
||||||
|
"integrity": "sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==",
|
||||||
|
"peerDependencies": {
|
||||||
|
"ethers": "^5.0.0",
|
||||||
|
"hardhat": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@openzeppelin/contracts": {
|
"node_modules/@openzeppelin/contracts": {
|
||||||
"version": "4.9.5",
|
"version": "4.9.5",
|
||||||
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.5.tgz",
|
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.5.tgz",
|
||||||
|
@ -1529,6 +1541,14 @@
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@solidity-parser/parser": {
|
||||||
|
"version": "0.16.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz",
|
||||||
|
"integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==",
|
||||||
|
"dependencies": {
|
||||||
|
"antlr4ts": "^0.5.0-alpha.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@tsconfig/node10": {
|
"node_modules/@tsconfig/node10": {
|
||||||
"version": "1.0.9",
|
"version": "1.0.9",
|
||||||
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
|
||||||
|
@ -1800,6 +1820,11 @@
|
||||||
"node": ">=4"
|
"node": ">=4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/antlr4ts": {
|
||||||
|
"version": "0.5.0-alpha.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz",
|
||||||
|
"integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ=="
|
||||||
|
},
|
||||||
"node_modules/anymatch": {
|
"node_modules/anymatch": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
||||||
|
@ -3839,19 +3864,65 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prettier": {
|
"node_modules/prettier": {
|
||||||
"version": "2.8.8",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz",
|
||||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
"integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw==",
|
||||||
"bin": {
|
"bin": {
|
||||||
"prettier": "bin-prettier.js"
|
"prettier": "bin/prettier.cjs"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10.13.0"
|
"node": ">=14"
|
||||||
},
|
},
|
||||||
"funding": {
|
"funding": {
|
||||||
"url": "https://github.com/prettier/prettier?sponsor=1"
|
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/prettier-plugin-solidity": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-fgxcUZpVAP+LlRfy5JI5oaAkXGkmsje2VJ5krv/YMm+rcTZbIUwFguSw5f+WFuttMjpDm6wB4UL7WVkArEfiVA==",
|
||||||
|
"dependencies": {
|
||||||
|
"@solidity-parser/parser": "^0.16.2",
|
||||||
|
"semver": "^7.5.4",
|
||||||
|
"solidity-comments-extractor": "^0.0.7"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=16"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"prettier": ">=2.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/prettier-plugin-solidity/node_modules/lru-cache": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||||
|
"dependencies": {
|
||||||
|
"yallist": "^4.0.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/prettier-plugin-solidity/node_modules/semver": {
|
||||||
|
"version": "7.5.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
||||||
|
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
||||||
|
"dependencies": {
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
},
|
||||||
|
"bin": {
|
||||||
|
"semver": "bin/semver.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/prettier-plugin-solidity/node_modules/yallist": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||||
|
},
|
||||||
"node_modules/queue-microtask": {
|
"node_modules/queue-microtask": {
|
||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
|
"resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
|
||||||
|
@ -4141,6 +4212,11 @@
|
||||||
"semver": "bin/semver"
|
"semver": "bin/semver"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/solidity-comments-extractor": {
|
||||||
|
"version": "0.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz",
|
||||||
|
"integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw=="
|
||||||
|
},
|
||||||
"node_modules/source-map": {
|
"node_modules/source-map": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||||
|
@ -4549,6 +4625,20 @@
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/typechain/node_modules/prettier": {
|
||||||
|
"version": "2.8.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
||||||
|
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==",
|
||||||
|
"bin": {
|
||||||
|
"prettier": "bin-prettier.js"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10.13.0"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/prettier/prettier?sponsor=1"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/typescript": {
|
"node_modules/typescript": {
|
||||||
"version": "5.3.3",
|
"version": "5.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz",
|
||||||
|
@ -6232,6 +6322,12 @@
|
||||||
"integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==",
|
"integrity": "sha512-HrVJr6+WjIXGnw3Q9u6KQcbZCtk0caVWhCdFADySvRyUxJ8PnzlaP+MhwNE8oyT8OZ6ejHBRrrgjSqDCFXGirw==",
|
||||||
"optional": true
|
"optional": true
|
||||||
},
|
},
|
||||||
|
"@nomiclabs/hardhat-ethers": {
|
||||||
|
"version": "2.2.3",
|
||||||
|
"resolved": "https://registry.npmjs.org/@nomiclabs/hardhat-ethers/-/hardhat-ethers-2.2.3.tgz",
|
||||||
|
"integrity": "sha512-YhzPdzb612X591FOe68q+qXVXGG2ANZRvDo0RRUtimev85rCrAlv/TLMEZw5c+kq9AbzocLTVX/h2jVIFPL9Xg==",
|
||||||
|
"requires": {}
|
||||||
|
},
|
||||||
"@openzeppelin/contracts": {
|
"@openzeppelin/contracts": {
|
||||||
"version": "4.9.5",
|
"version": "4.9.5",
|
||||||
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.5.tgz",
|
"resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.9.5.tgz",
|
||||||
|
@ -6335,6 +6431,14 @@
|
||||||
"tslib": "^1.9.3"
|
"tslib": "^1.9.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"@solidity-parser/parser": {
|
||||||
|
"version": "0.16.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/@solidity-parser/parser/-/parser-0.16.2.tgz",
|
||||||
|
"integrity": "sha512-PI9NfoA3P8XK2VBkK5oIfRgKDsicwDZfkVq9ZTBCQYGOP1N2owgY2dyLGyU5/J/hQs8KRk55kdmvTLjy3Mu3vg==",
|
||||||
|
"requires": {
|
||||||
|
"antlr4ts": "^0.5.0-alpha.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"@tsconfig/node10": {
|
"@tsconfig/node10": {
|
||||||
"version": "1.0.9",
|
"version": "1.0.9",
|
||||||
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
|
"resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz",
|
||||||
|
@ -6541,6 +6645,11 @@
|
||||||
"color-convert": "^1.9.0"
|
"color-convert": "^1.9.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"antlr4ts": {
|
||||||
|
"version": "0.5.0-alpha.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/antlr4ts/-/antlr4ts-0.5.0-alpha.4.tgz",
|
||||||
|
"integrity": "sha512-WPQDt1B74OfPv/IMS2ekXAKkTZIHl88uMetg6q3OTqgFxZ/dxDXI0EWLyZid/1Pe6hTftyg5N7gel5wNAGxXyQ=="
|
||||||
|
},
|
||||||
"anymatch": {
|
"anymatch": {
|
||||||
"version": "3.1.3",
|
"version": "3.1.3",
|
||||||
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
|
||||||
|
@ -8013,9 +8122,42 @@
|
||||||
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
|
"integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA=="
|
||||||
},
|
},
|
||||||
"prettier": {
|
"prettier": {
|
||||||
"version": "2.8.8",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz",
|
||||||
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="
|
"integrity": "sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw=="
|
||||||
|
},
|
||||||
|
"prettier-plugin-solidity": {
|
||||||
|
"version": "1.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/prettier-plugin-solidity/-/prettier-plugin-solidity-1.2.0.tgz",
|
||||||
|
"integrity": "sha512-fgxcUZpVAP+LlRfy5JI5oaAkXGkmsje2VJ5krv/YMm+rcTZbIUwFguSw5f+WFuttMjpDm6wB4UL7WVkArEfiVA==",
|
||||||
|
"requires": {
|
||||||
|
"@solidity-parser/parser": "^0.16.2",
|
||||||
|
"semver": "^7.5.4",
|
||||||
|
"solidity-comments-extractor": "^0.0.7"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"lru-cache": {
|
||||||
|
"version": "6.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
|
||||||
|
"integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
|
||||||
|
"requires": {
|
||||||
|
"yallist": "^4.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"semver": {
|
||||||
|
"version": "7.5.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz",
|
||||||
|
"integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==",
|
||||||
|
"requires": {
|
||||||
|
"lru-cache": "^6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"yallist": {
|
||||||
|
"version": "4.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
|
||||||
|
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
|
||||||
|
}
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"queue-microtask": {
|
"queue-microtask": {
|
||||||
"version": "1.2.3",
|
"version": "1.2.3",
|
||||||
|
@ -8231,6 +8373,11 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"solidity-comments-extractor": {
|
||||||
|
"version": "0.0.7",
|
||||||
|
"resolved": "https://registry.npmjs.org/solidity-comments-extractor/-/solidity-comments-extractor-0.0.7.tgz",
|
||||||
|
"integrity": "sha512-wciNMLg/Irp8OKGrh3S2tfvZiZ0NEyILfcRCXCD4mp7SgK/i9gzLfhY2hY7VMCQJ3kH9UB9BzNdibIVMchzyYw=="
|
||||||
|
},
|
||||||
"source-map": {
|
"source-map": {
|
||||||
"version": "0.6.1",
|
"version": "0.6.1",
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||||
|
@ -8516,6 +8663,11 @@
|
||||||
"once": "^1.3.0",
|
"once": "^1.3.0",
|
||||||
"path-is-absolute": "^1.0.0"
|
"path-is-absolute": "^1.0.0"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"prettier": {
|
||||||
|
"version": "2.8.8",
|
||||||
|
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz",
|
||||||
|
"integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -8,11 +8,14 @@
|
||||||
"typechain": "^8.3.2"
|
"typechain": "^8.3.2"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
"@nomiclabs/hardhat-ethers": "^2.2.3",
|
||||||
"@openzeppelin/contracts": "^4.9.5",
|
"@openzeppelin/contracts": "^4.9.5",
|
||||||
"@typechain/ethers-v5": "^10.2.1",
|
"@typechain/ethers-v5": "^10.2.1",
|
||||||
"@typechain/hardhat": "^6.1.6",
|
"@typechain/hardhat": "^6.1.6",
|
||||||
"bignumber.js": "^4.0.4",
|
"bignumber.js": "^4.0.4",
|
||||||
"dotenv": "^16.3.1",
|
"dotenv": "^16.3.1",
|
||||||
|
"prettier": "^3.1.1",
|
||||||
|
"prettier-plugin-solidity": "^1.2.0",
|
||||||
"ts-node": "^10.9.2",
|
"ts-node": "^10.9.2",
|
||||||
"web3": "^4.3.0"
|
"web3": "^4.3.0"
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user