mirror of
https://github.com/getwax/BLSWallet-ERC20-demo.git
synced 2026-01-09 15:58:03 -05:00
app init
This commit is contained in:
2
.env
Normal file
2
.env
Normal file
@@ -0,0 +1,2 @@
|
||||
REACT_APP_TOKEN_CONTRACT=0xDc64a140Aa3E981100a9becA4E685f962f0cF6C9
|
||||
REACT_APP_SPENDER_CONTRACT=0x5FC8d32690cc91D4c39d9d3abcBD16989F875707
|
||||
66
README.md
66
README.md
@@ -1,46 +1,48 @@
|
||||
# Getting Started with Create React App
|
||||
# BLS Wallet Demo App
|
||||
|
||||
This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app).
|
||||
## How to setup
|
||||
|
||||
## Available Scripts
|
||||
1. deploy Generic ERC20 contract with minting ability
|
||||
|
||||
In the project directory, you can run:
|
||||
eg -
|
||||
|
||||
### `npm start`
|
||||
```
|
||||
//SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
Runs the app in the development mode.\
|
||||
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.
|
||||
import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
|
||||
|
||||
The page will reload if you make edits.\
|
||||
You will also see any lint errors in the console.
|
||||
contract Token is ERC20 {
|
||||
constructor(string memory name_, string memory symbol_)
|
||||
ERC20(name_, symbol_)
|
||||
{}
|
||||
|
||||
### `npm test`
|
||||
function mint(address _account, uint256 _amount) public {
|
||||
_mint(_account, _amount);
|
||||
}
|
||||
}
|
||||
|
||||
Launches the test runner in the interactive watch mode.\
|
||||
See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information.
|
||||
```
|
||||
|
||||
### `npm run build`
|
||||
2. deploy a spender contract (any contract which can pull tokens from user)
|
||||
|
||||
Builds the app for production to the `build` folder.\
|
||||
It correctly bundles React in production mode and optimizes the build for the best performance.
|
||||
eg -
|
||||
|
||||
The build is minified and the filenames include the hashes.\
|
||||
Your app is ready to be deployed!
|
||||
```solidity
|
||||
//SPDX-License-Identifier: MIT
|
||||
pragma solidity ^0.8.0;
|
||||
|
||||
See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information.
|
||||
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
|
||||
|
||||
### `npm run eject`
|
||||
contract Spender {
|
||||
function pullTokens(address _token, uint256 _amount) public {
|
||||
IERC20(_token).transferFrom(msg.sender, address(this), _amount);
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Note: this is a one-way operation. Once you `eject`, you can’t go back!**
|
||||
|
||||
If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project.
|
||||
|
||||
Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own.
|
||||
|
||||
You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it.
|
||||
|
||||
## Learn More
|
||||
|
||||
You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started).
|
||||
|
||||
To learn React, check out the [React documentation](https://reactjs.org/).
|
||||
3. note the addresses for the 2 contracts
|
||||
4. update `.env` file with the 2 addresses
|
||||
5. run `yarn install`
|
||||
6. run `yarn start`
|
||||
7. connect Quill Wallet
|
||||
|
||||
27602
package-lock.json
generated
27602
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
13
package.json
13
package.json
@@ -9,12 +9,18 @@
|
||||
"@types/jest": "^27.4.1",
|
||||
"@types/node": "^16.11.26",
|
||||
"@types/react": "^17.0.43",
|
||||
"@types/react-blockies": "^1.4.1",
|
||||
"@types/react-dom": "^17.0.14",
|
||||
"easy-peasy": "^5.0.4",
|
||||
"ethers": "^5.6.2",
|
||||
"phosphor-react": "^1.4.1",
|
||||
"react": "^17.0.2",
|
||||
"react-blockies": "^1.4.1",
|
||||
"react-dom": "^17.0.2",
|
||||
"react-scripts": "5.0.0",
|
||||
"typescript": "^4.6.3",
|
||||
"web-vitals": "^2.1.4"
|
||||
"web-vitals": "^2.1.4",
|
||||
"web3modal": "^1.9.5"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-scripts start",
|
||||
@@ -39,5 +45,10 @@
|
||||
"last 1 firefox version",
|
||||
"last 1 safari version"
|
||||
]
|
||||
},
|
||||
"devDependencies": {
|
||||
"autoprefixer": "^10.4.4",
|
||||
"postcss": "^8.4.12",
|
||||
"tailwindcss": "^3.0.24"
|
||||
}
|
||||
}
|
||||
|
||||
6
postcss.config.js
Normal file
6
postcss.config.js
Normal file
@@ -0,0 +1,6 @@
|
||||
module.exports = {
|
||||
plugins: {
|
||||
tailwindcss: {},
|
||||
autoprefixer: {},
|
||||
},
|
||||
}
|
||||
38
src/App.css
38
src/App.css
@@ -1,38 +0,0 @@
|
||||
.App {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.App-logo {
|
||||
height: 40vmin;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
@media (prefers-reduced-motion: no-preference) {
|
||||
.App-logo {
|
||||
animation: App-logo-spin infinite 20s linear;
|
||||
}
|
||||
}
|
||||
|
||||
.App-header {
|
||||
background-color: #282c34;
|
||||
min-height: 100vh;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
font-size: calc(10px + 2vmin);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.App-link {
|
||||
color: #61dafb;
|
||||
}
|
||||
|
||||
@keyframes App-logo-spin {
|
||||
from {
|
||||
transform: rotate(0deg);
|
||||
}
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
import React from 'react';
|
||||
import { render, screen } from '@testing-library/react';
|
||||
import App from './App';
|
||||
|
||||
test('renders learn react link', () => {
|
||||
render(<App />);
|
||||
const linkElement = screen.getByText(/learn react/i);
|
||||
expect(linkElement).toBeInTheDocument();
|
||||
});
|
||||
43
src/App.tsx
43
src/App.tsx
@@ -1,25 +1,30 @@
|
||||
import React from 'react';
|
||||
import logo from './logo.svg';
|
||||
import './App.css';
|
||||
import { StoreProvider } from "easy-peasy";
|
||||
// import Contract from "./components/tokenContract";
|
||||
import User from "./components/user";
|
||||
import { store } from "./store";
|
||||
import Connection from "./components/Connection";
|
||||
import SpenderContract from "./components/spender";
|
||||
import User2 from "./components/user2";
|
||||
|
||||
function App() {
|
||||
return (
|
||||
<div className="App">
|
||||
<header className="App-header">
|
||||
<img src={logo} className="App-logo" alt="logo" />
|
||||
<p>
|
||||
Edit <code>src/App.tsx</code> and save to reload.
|
||||
</p>
|
||||
<a
|
||||
className="App-link"
|
||||
href="https://reactjs.org"
|
||||
target="_blank"
|
||||
rel="noopener noreferrer"
|
||||
>
|
||||
Learn React
|
||||
</a>
|
||||
</header>
|
||||
</div>
|
||||
<StoreProvider store={store}>
|
||||
<div className="flex flex-col justify-center items-center w-2/3 mx-auto">
|
||||
<div className="mb-4">
|
||||
<Connection />
|
||||
{/* <Contract /> */}
|
||||
</div>
|
||||
|
||||
<div className="flex w-[70rem] gap-10">
|
||||
<User />
|
||||
<SpenderContract />
|
||||
</div>
|
||||
|
||||
<div className="flex w-[70rem] mt-4">
|
||||
<User2 />
|
||||
</div>
|
||||
</div>
|
||||
</StoreProvider>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
92
src/components/Connection.tsx
Normal file
92
src/components/Connection.tsx
Normal file
@@ -0,0 +1,92 @@
|
||||
import { useEffect, useState } from "react";
|
||||
import { ethers } from "ethers";
|
||||
import Web3Modal from "web3modal";
|
||||
import { useStoreActions, useStoreState } from "../store";
|
||||
import { PenNibStraight, Wallet } from "phosphor-react";
|
||||
import Blockies from "react-blockies";
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
ethereum: any;
|
||||
}
|
||||
}
|
||||
|
||||
const Connection = () => {
|
||||
const [errorMessage, setErrorMessage] = useState<any>(null);
|
||||
const [connButtonText, setConnButtonText] = useState<any>("Connect");
|
||||
const [amount, setAmount] = useState<any>("0.0");
|
||||
|
||||
const { account, provider } = useStoreState((state) => state);
|
||||
|
||||
const setGlobalProvider = useStoreActions((actions) => actions.setProvider);
|
||||
const setAcc = useStoreActions((actions) => actions.setAccount);
|
||||
|
||||
const connectWalletHandler = async () => {
|
||||
if (window.ethereum && account === "") {
|
||||
const providerOptions = {};
|
||||
|
||||
const web3Modal = new Web3Modal({
|
||||
providerOptions, // required
|
||||
});
|
||||
|
||||
const instance = await web3Modal.connect();
|
||||
|
||||
const provider = new ethers.providers.Web3Provider(instance);
|
||||
setGlobalProvider(provider);
|
||||
|
||||
window.ethereum
|
||||
.request({ method: "eth_accounts" })
|
||||
.then((result: any) => {
|
||||
setConnButtonText("Connected");
|
||||
setAcc(result[0]);
|
||||
});
|
||||
} else if (!window.ethereum) {
|
||||
console.log("Need to install MetaMask");
|
||||
setErrorMessage("Please install MetaMask browser extension to interact");
|
||||
}
|
||||
};
|
||||
|
||||
const fetchBalance = async () => {
|
||||
const amount = await provider.getBalance(account);
|
||||
setAmount(ethers.utils.formatEther(amount));
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
provider && fetchBalance();
|
||||
}, [account]);
|
||||
|
||||
return (
|
||||
<div className="py-8">
|
||||
<div className=" flex justify-between items-center py-8 w-[70rem]">
|
||||
<div className="text-3xl font-medium flex items-center gap-2">
|
||||
<PenNibStraight weight="duotone" size={28} color={"#60a5fa"} />
|
||||
BLS Wallet - ERC20 Demo <sup>beta</sup>
|
||||
</div>
|
||||
<button
|
||||
className="bg-blue-400 rounded-xl px-4 py-2 text-white font-semibold flex items-center gap-2"
|
||||
onClick={connectWalletHandler}
|
||||
>
|
||||
<Wallet weight="duotone" size={28} /> {connButtonText}
|
||||
</button>
|
||||
</div>
|
||||
|
||||
{errorMessage}
|
||||
{account && (
|
||||
<div className="bg-slate-100 p-8 rounded-xl flex items-center gap-4">
|
||||
<Blockies
|
||||
seed={account + "random"}
|
||||
className="rounded-md"
|
||||
size={5}
|
||||
scale={10}
|
||||
/>
|
||||
<div className="">
|
||||
<div className="text-lg font-bold">{account}</div>
|
||||
<div className="text-lg font-normal">{amount} ETH</div>
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Connection;
|
||||
14
src/components/Loader.tsx
Normal file
14
src/components/Loader.tsx
Normal file
@@ -0,0 +1,14 @@
|
||||
const Loader = () => {
|
||||
return (
|
||||
<div className="flex items-center justify-center text-3xl font-extrabold">
|
||||
<div
|
||||
className="spinner-border animate-spin inline-block w-6 h-6 border-4 rounded-full"
|
||||
role="status"
|
||||
>
|
||||
<span className="visually-hidden">.</span>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Loader;
|
||||
96
src/components/spender.tsx
Normal file
96
src/components/spender.tsx
Normal file
@@ -0,0 +1,96 @@
|
||||
import { ethers } from "ethers";
|
||||
import { MaskHappy } from "phosphor-react";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useStoreActions, useStoreState } from "../store";
|
||||
import { Token, Token__factory } from "../typechain";
|
||||
import { Spender__factory } from "../typechain/factories/Spender__factory";
|
||||
import { Spender } from "../typechain/Spender";
|
||||
import Loader from "./Loader";
|
||||
|
||||
const SpenderContract = () => {
|
||||
const { contract, provider, spender, account, reload } = useStoreState(
|
||||
(state) => state
|
||||
);
|
||||
const { setReload } = useStoreActions((actions) => actions);
|
||||
const [tokenBalance, setTokenBalance] = useState("0.0");
|
||||
const [allowance, setAllowance] = useState("0.0");
|
||||
const [pending, setPending] = useState(false);
|
||||
|
||||
const getContract = () => {
|
||||
return new ethers.Contract(
|
||||
spender,
|
||||
Spender__factory.createInterface(),
|
||||
provider
|
||||
) as Spender;
|
||||
};
|
||||
|
||||
const updateAllowance = async () => {
|
||||
const erc20 = getTokenContract();
|
||||
|
||||
const allowance = await erc20.allowance(account, spender);
|
||||
setAllowance(ethers.utils.formatEther(allowance));
|
||||
console.log(allowance);
|
||||
};
|
||||
|
||||
const pullTokens = async () => {
|
||||
const spender = getContract();
|
||||
|
||||
const signer = provider.getSigner();
|
||||
const tx = await spender
|
||||
.connect(signer)
|
||||
.pullTokens(contract, ethers.utils.parseEther("10"));
|
||||
|
||||
setPending(true);
|
||||
await tx.wait();
|
||||
await updateTokenBalance();
|
||||
await updateAllowance();
|
||||
setReload(true);
|
||||
setPending(false);
|
||||
};
|
||||
|
||||
const getTokenContract = () => {
|
||||
return new ethers.Contract(
|
||||
contract,
|
||||
Token__factory.createInterface(),
|
||||
provider
|
||||
) as Token;
|
||||
};
|
||||
|
||||
const updateTokenBalance = async () => {
|
||||
const erc20 = getTokenContract();
|
||||
|
||||
const balance = await erc20.balanceOf(spender);
|
||||
setTokenBalance(ethers.utils.formatEther(balance));
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (provider) {
|
||||
updateTokenBalance();
|
||||
updateAllowance();
|
||||
}
|
||||
setReload(false);
|
||||
}, [spender, contract, provider, reload]);
|
||||
|
||||
return (
|
||||
<div className="bg-gray-700 rounded-xl w-1/2">
|
||||
<div className="text-[2rem] p-8 text-white flex items-center gap-3">
|
||||
<MaskHappy weight="duotone" size={52} /> SPENDER {pending && <Loader />}
|
||||
</div>
|
||||
|
||||
<div className="text-[8rem] px-8 text-white leading-none flex items-baseline gap-4 mb-10">
|
||||
{tokenBalance} <div className="text-[2rem] font-black">TOKENS</div>
|
||||
</div>
|
||||
|
||||
<div className="flex w-full justify-center text-xl text-white border-t-2 border-white ">
|
||||
<button
|
||||
className="p-4 font-black hover:text-slate-400 disabled:text-gray-500"
|
||||
onClick={async () => await pullTokens()}
|
||||
>
|
||||
PULL TOKENS (10)
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default SpenderContract;
|
||||
30
src/components/tokenContract.tsx
Normal file
30
src/components/tokenContract.tsx
Normal file
@@ -0,0 +1,30 @@
|
||||
import { useStoreState } from "../store";
|
||||
|
||||
const Contract = () => {
|
||||
const { contract, spender } = useStoreState((state) => state);
|
||||
// const setContract = useStoreActions((actions) => actions.setContract);
|
||||
|
||||
// const [updatedContract, setUpdatedContract] = useState("");
|
||||
|
||||
return (
|
||||
<div className="bg-slate-100 p-5 rounded-xl flex flex-col gap-1">
|
||||
{/* <input
|
||||
type="contract"
|
||||
onChange={(e) => setUpdatedContract(e.target.value)}
|
||||
/>
|
||||
<button
|
||||
onClick={() => {
|
||||
if (updatedContract !== "") {
|
||||
setContract(updatedContract);
|
||||
}
|
||||
}}
|
||||
>
|
||||
Set Token Contract
|
||||
</button> */}
|
||||
<div className="text-sm font-medium">TOKEN: {contract}</div>
|
||||
<div className="text-sm font-medium">SPENDER: {spender}</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default Contract;
|
||||
112
src/components/user.tsx
Normal file
112
src/components/user.tsx
Normal file
@@ -0,0 +1,112 @@
|
||||
import { ethers } from "ethers";
|
||||
import { FinnTheHuman } from "phosphor-react";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useStoreActions, useStoreState } from "../store";
|
||||
import { Token, Token__factory } from "../typechain";
|
||||
import Loader from "./Loader";
|
||||
|
||||
const User = () => {
|
||||
const { contract, provider, account, spender, reload } = useStoreState(
|
||||
(state) => state
|
||||
);
|
||||
const { setReload } = useStoreActions((actions) => actions);
|
||||
|
||||
const [tokenBalance, setTokenBalance] = useState("0.0");
|
||||
const [pending, setPending] = useState(false);
|
||||
|
||||
const getContract = () => {
|
||||
return new ethers.Contract(
|
||||
contract,
|
||||
Token__factory.createInterface(),
|
||||
provider
|
||||
) as Token;
|
||||
};
|
||||
|
||||
const updateTokenBalance = async () => {
|
||||
const erc20 = getContract();
|
||||
|
||||
const balance = await erc20.balanceOf(account);
|
||||
setTokenBalance(ethers.utils.formatEther(balance));
|
||||
setReload(false);
|
||||
};
|
||||
|
||||
const mintTokens = async () => {
|
||||
const erc20 = getContract();
|
||||
|
||||
const signer = provider.getSigner();
|
||||
const tx = await erc20
|
||||
.connect(signer)
|
||||
.mint(account, ethers.utils.parseEther("10"));
|
||||
|
||||
setPending(true);
|
||||
await tx.wait();
|
||||
setPending(false);
|
||||
|
||||
await updateTokenBalance();
|
||||
};
|
||||
|
||||
const approveTokens = async () => {
|
||||
const erc20 = getContract();
|
||||
|
||||
const signer = provider.getSigner();
|
||||
const tx = await erc20
|
||||
.connect(signer)
|
||||
.approve(spender, ethers.utils.parseEther("10"));
|
||||
|
||||
setPending(true);
|
||||
await tx.wait();
|
||||
setReload(true);
|
||||
setPending(false);
|
||||
};
|
||||
|
||||
const transferTokens = async () => {
|
||||
const erc20 = new ethers.Contract(
|
||||
contract,
|
||||
Token__factory.createInterface(),
|
||||
provider
|
||||
) as Token;
|
||||
|
||||
const signer = provider.getSigner();
|
||||
await erc20
|
||||
.connect(signer)
|
||||
.transfer(account, ethers.utils.parseEther("20"));
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
provider && updateTokenBalance();
|
||||
}, [account, contract, provider]);
|
||||
|
||||
useEffect(() => {
|
||||
updateTokenBalance();
|
||||
}, [reload]);
|
||||
|
||||
return (
|
||||
<div className="bg-blue-400 rounded-xl w-1/2">
|
||||
<div className="text-[2rem] p-8 text-white flex items-center gap-3">
|
||||
<FinnTheHuman weight="duotone" size={52} /> YOU-SER{" "}
|
||||
{pending && <Loader />}
|
||||
</div>
|
||||
|
||||
<div className="text-[8rem] px-8 text-white leading-none flex items-baseline gap-4 mb-10">
|
||||
{tokenBalance} <div className="text-[2rem] font-black">TOKENS</div>
|
||||
</div>
|
||||
|
||||
<div className="flex w-full text-xl text-white border-t-2 border-white">
|
||||
<button
|
||||
className="w-1/2 p-4 border-r-2 border-white font-black hover:text-gray-700"
|
||||
onClick={async () => await mintTokens()}
|
||||
>
|
||||
MINT (10)
|
||||
</button>
|
||||
<button
|
||||
className="w-1/2 p-4 font-black hover:text-gray-700"
|
||||
onClick={async () => await approveTokens()}
|
||||
>
|
||||
APPROVE
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
);
|
||||
};
|
||||
|
||||
export default User;
|
||||
83
src/components/user2.tsx
Normal file
83
src/components/user2.tsx
Normal file
@@ -0,0 +1,83 @@
|
||||
import { ethers } from "ethers";
|
||||
import { FinnTheHuman } from "phosphor-react";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useStoreActions, useStoreState } from "../store";
|
||||
import { Spender, Spender__factory, Token, Token__factory } from "../typechain";
|
||||
import Loader from "./Loader";
|
||||
|
||||
const User2 = () => {
|
||||
const { contract, provider, account, spender, reload } = useStoreState(
|
||||
(state) => state
|
||||
);
|
||||
const { setReload } = useStoreActions((actions) => actions);
|
||||
|
||||
const [tokenBalance, setTokenBalance] = useState("0.0");
|
||||
const [pending, setPending] = useState(false);
|
||||
|
||||
const getTokenContract = () => {
|
||||
return new ethers.Contract(
|
||||
contract,
|
||||
Token__factory.createInterface(),
|
||||
provider
|
||||
) as Token;
|
||||
};
|
||||
|
||||
const getSpender = () => {
|
||||
return new ethers.Contract(
|
||||
spender,
|
||||
Spender__factory.createInterface(),
|
||||
provider
|
||||
) as Spender;
|
||||
};
|
||||
|
||||
const bundleUp = async () => {
|
||||
const erc20 = getTokenContract();
|
||||
const signer = provider.getSigner();
|
||||
|
||||
const mintTx = await erc20
|
||||
.connect(signer)
|
||||
.populateTransaction.mint(account, ethers.utils.parseEther("10"));
|
||||
|
||||
const aproveTx = await erc20
|
||||
.connect(signer)
|
||||
.populateTransaction.approve(spender, ethers.utils.parseEther("10"));
|
||||
|
||||
const spenderContract = getSpender();
|
||||
const pulltx = await spenderContract
|
||||
.connect(signer)
|
||||
.populateTransaction.pullTokens(contract, ethers.utils.parseEther("10"));
|
||||
|
||||
console.log([mintTx, aproveTx, pulltx]);
|
||||
|
||||
setPending(true);
|
||||
|
||||
const txHash = await window.ethereum.request({
|
||||
method: "eth_sendTransaction",
|
||||
params: [mintTx, aproveTx, pulltx],
|
||||
});
|
||||
|
||||
const interval = setInterval(async function () {
|
||||
console.log("Attempting to get transaction receipt...");
|
||||
const rec = await provider.getTransactionReceipt(txHash);
|
||||
if (rec) {
|
||||
setReload(true);
|
||||
setPending(false);
|
||||
clearInterval(interval);
|
||||
}
|
||||
}, 2000);
|
||||
};
|
||||
|
||||
return (
|
||||
<button
|
||||
className="p-4 font-black hover:text-gray-700 bg-teal-500 text-white rounded-xl w-full mt-10 text-center"
|
||||
onClick={async () => await bundleUp()}
|
||||
>
|
||||
<div className="text-[1.5rem] flex gap-2 justify-center">
|
||||
BUNDLE UP {pending && <Loader />}
|
||||
</div>
|
||||
MINT (10) + APPROVE + PULL
|
||||
</button>
|
||||
);
|
||||
};
|
||||
|
||||
export default User2;
|
||||
@@ -1,13 +1,16 @@
|
||||
@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@100;200;300;400;500;600&display=swap");
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
|
||||
'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
|
||||
sans-serif;
|
||||
font-family: "Montserrat", sans-serif;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
|
||||
font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New",
|
||||
monospace;
|
||||
}
|
||||
|
||||
@tailwind base;
|
||||
@tailwind components;
|
||||
@tailwind utilities;
|
||||
|
||||
45
src/store.tsx
Normal file
45
src/store.tsx
Normal file
@@ -0,0 +1,45 @@
|
||||
import { action, Action, createStore, createTypedHooks } from "easy-peasy";
|
||||
import { ethers } from "ethers";
|
||||
|
||||
interface StoreModel {
|
||||
contract: string;
|
||||
spender: string;
|
||||
account: string;
|
||||
provider: any;
|
||||
reload: boolean;
|
||||
|
||||
setContract: Action<StoreModel, string>;
|
||||
setSpender: Action<StoreModel, string>;
|
||||
setAccount: Action<StoreModel, string>;
|
||||
setProvider: Action<StoreModel, ethers.providers.Web3Provider>;
|
||||
setReload: Action<StoreModel, boolean>;
|
||||
}
|
||||
|
||||
export const store = createStore<StoreModel>({
|
||||
account: "",
|
||||
contract: process.env.REACT_APP_TOKEN_CONTRACT || "",
|
||||
spender: process.env.REACT_APP_SPENDER_CONTRACT || "",
|
||||
provider: null,
|
||||
reload: false,
|
||||
|
||||
setAccount: action((state, payload) => {
|
||||
state.account = payload;
|
||||
}),
|
||||
setContract: action((state, payload) => {
|
||||
state.contract = payload;
|
||||
}),
|
||||
setSpender: action((state, payload) => {
|
||||
state.spender = payload;
|
||||
}),
|
||||
setProvider: action((state, payload) => {
|
||||
state.provider = payload;
|
||||
}),
|
||||
setReload: action((state, payload) => {
|
||||
state.reload = payload;
|
||||
}),
|
||||
});
|
||||
|
||||
const typedHooks = createTypedHooks<StoreModel>();
|
||||
|
||||
export const useStoreActions = typedHooks.useStoreActions;
|
||||
export const useStoreState = typedHooks.useStoreState;
|
||||
441
src/typechain/ERC20.d.ts
vendored
Normal file
441
src/typechain/ERC20.d.ts
vendored
Normal file
@@ -0,0 +1,441 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import {
|
||||
ethers,
|
||||
EventFilter,
|
||||
Signer,
|
||||
BigNumber,
|
||||
BigNumberish,
|
||||
PopulatedTransaction,
|
||||
BaseContract,
|
||||
ContractTransaction,
|
||||
Overrides,
|
||||
CallOverrides,
|
||||
} from "ethers";
|
||||
import { BytesLike } from "@ethersproject/bytes";
|
||||
import { Listener, Provider } from "@ethersproject/providers";
|
||||
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
|
||||
import type { TypedEventFilter, TypedEvent, TypedListener } from "./common";
|
||||
|
||||
interface ERC20Interface extends ethers.utils.Interface {
|
||||
functions: {
|
||||
"allowance(address,address)": FunctionFragment;
|
||||
"approve(address,uint256)": FunctionFragment;
|
||||
"balanceOf(address)": FunctionFragment;
|
||||
"decimals()": FunctionFragment;
|
||||
"decreaseAllowance(address,uint256)": FunctionFragment;
|
||||
"increaseAllowance(address,uint256)": FunctionFragment;
|
||||
"name()": FunctionFragment;
|
||||
"symbol()": FunctionFragment;
|
||||
"totalSupply()": FunctionFragment;
|
||||
"transfer(address,uint256)": FunctionFragment;
|
||||
"transferFrom(address,address,uint256)": FunctionFragment;
|
||||
};
|
||||
|
||||
encodeFunctionData(
|
||||
functionFragment: "allowance",
|
||||
values: [string, string]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "approve",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
|
||||
encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "decreaseAllowance",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "increaseAllowance",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(functionFragment: "name", values?: undefined): string;
|
||||
encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "totalSupply",
|
||||
values?: undefined
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "transfer",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "transferFrom",
|
||||
values: [string, string, BigNumberish]
|
||||
): string;
|
||||
|
||||
decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "decreaseAllowance",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "increaseAllowance",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "totalSupply",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "transferFrom",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
|
||||
events: {
|
||||
"Approval(address,address,uint256)": EventFragment;
|
||||
"Transfer(address,address,uint256)": EventFragment;
|
||||
};
|
||||
|
||||
getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
|
||||
}
|
||||
|
||||
export type ApprovalEvent = TypedEvent<
|
||||
[string, string, BigNumber] & {
|
||||
owner: string;
|
||||
spender: string;
|
||||
value: BigNumber;
|
||||
}
|
||||
>;
|
||||
|
||||
export type TransferEvent = TypedEvent<
|
||||
[string, string, BigNumber] & { from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
export class ERC20 extends BaseContract {
|
||||
connect(signerOrProvider: Signer | Provider | string): this;
|
||||
attach(addressOrName: string): this;
|
||||
deployed(): Promise<this>;
|
||||
|
||||
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
|
||||
off<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
on<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
once<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
|
||||
listeners(eventName?: string): Array<Listener>;
|
||||
off(eventName: string, listener: Listener): this;
|
||||
on(eventName: string, listener: Listener): this;
|
||||
once(eventName: string, listener: Listener): this;
|
||||
removeListener(eventName: string, listener: Listener): this;
|
||||
removeAllListeners(eventName?: string): this;
|
||||
|
||||
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
fromBlockOrBlockhash?: string | number | undefined,
|
||||
toBlock?: string | number | undefined
|
||||
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
|
||||
|
||||
interface: ERC20Interface;
|
||||
|
||||
functions: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<[BigNumber]>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<[number]>;
|
||||
|
||||
decreaseAllowance(
|
||||
spender: string,
|
||||
subtractedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
increaseAllowance(
|
||||
spender: string,
|
||||
addedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<[string]>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<[string]>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
};
|
||||
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<number>;
|
||||
|
||||
decreaseAllowance(
|
||||
spender: string,
|
||||
subtractedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
increaseAllowance(
|
||||
spender: string,
|
||||
addedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
callStatic: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<number>;
|
||||
|
||||
decreaseAllowance(
|
||||
spender: string,
|
||||
subtractedValue: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
increaseAllowance(
|
||||
spender: string,
|
||||
addedValue: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
};
|
||||
|
||||
filters: {
|
||||
"Approval(address,address,uint256)"(
|
||||
owner?: string | null,
|
||||
spender?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ owner: string; spender: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
Approval(
|
||||
owner?: string | null,
|
||||
spender?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ owner: string; spender: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
"Transfer(address,address,uint256)"(
|
||||
from?: string | null,
|
||||
to?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
Transfer(
|
||||
from?: string | null,
|
||||
to?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
};
|
||||
|
||||
estimateGas: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
decreaseAllowance(
|
||||
spender: string,
|
||||
subtractedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
increaseAllowance(
|
||||
spender: string,
|
||||
addedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
};
|
||||
|
||||
populateTransaction: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
balanceOf(
|
||||
account: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
decreaseAllowance(
|
||||
spender: string,
|
||||
subtractedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
increaseAllowance(
|
||||
spender: string,
|
||||
addedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
};
|
||||
}
|
||||
324
src/typechain/IERC20.d.ts
vendored
Normal file
324
src/typechain/IERC20.d.ts
vendored
Normal file
@@ -0,0 +1,324 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import {
|
||||
ethers,
|
||||
EventFilter,
|
||||
Signer,
|
||||
BigNumber,
|
||||
BigNumberish,
|
||||
PopulatedTransaction,
|
||||
BaseContract,
|
||||
ContractTransaction,
|
||||
Overrides,
|
||||
CallOverrides,
|
||||
} from "ethers";
|
||||
import { BytesLike } from "@ethersproject/bytes";
|
||||
import { Listener, Provider } from "@ethersproject/providers";
|
||||
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
|
||||
import type { TypedEventFilter, TypedEvent, TypedListener } from "./common";
|
||||
|
||||
interface IERC20Interface extends ethers.utils.Interface {
|
||||
functions: {
|
||||
"allowance(address,address)": FunctionFragment;
|
||||
"approve(address,uint256)": FunctionFragment;
|
||||
"balanceOf(address)": FunctionFragment;
|
||||
"totalSupply()": FunctionFragment;
|
||||
"transfer(address,uint256)": FunctionFragment;
|
||||
"transferFrom(address,address,uint256)": FunctionFragment;
|
||||
};
|
||||
|
||||
encodeFunctionData(
|
||||
functionFragment: "allowance",
|
||||
values: [string, string]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "approve",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "totalSupply",
|
||||
values?: undefined
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "transfer",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "transferFrom",
|
||||
values: [string, string, BigNumberish]
|
||||
): string;
|
||||
|
||||
decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "totalSupply",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "transferFrom",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
|
||||
events: {
|
||||
"Approval(address,address,uint256)": EventFragment;
|
||||
"Transfer(address,address,uint256)": EventFragment;
|
||||
};
|
||||
|
||||
getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
|
||||
}
|
||||
|
||||
export type ApprovalEvent = TypedEvent<
|
||||
[string, string, BigNumber] & {
|
||||
owner: string;
|
||||
spender: string;
|
||||
value: BigNumber;
|
||||
}
|
||||
>;
|
||||
|
||||
export type TransferEvent = TypedEvent<
|
||||
[string, string, BigNumber] & { from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
export class IERC20 extends BaseContract {
|
||||
connect(signerOrProvider: Signer | Provider | string): this;
|
||||
attach(addressOrName: string): this;
|
||||
deployed(): Promise<this>;
|
||||
|
||||
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
|
||||
off<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
on<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
once<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
|
||||
listeners(eventName?: string): Array<Listener>;
|
||||
off(eventName: string, listener: Listener): this;
|
||||
on(eventName: string, listener: Listener): this;
|
||||
once(eventName: string, listener: Listener): this;
|
||||
removeListener(eventName: string, listener: Listener): this;
|
||||
removeAllListeners(eventName?: string): this;
|
||||
|
||||
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
fromBlockOrBlockhash?: string | number | undefined,
|
||||
toBlock?: string | number | undefined
|
||||
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
|
||||
|
||||
interface: IERC20Interface;
|
||||
|
||||
functions: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<[BigNumber]>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
};
|
||||
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
callStatic: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
};
|
||||
|
||||
filters: {
|
||||
"Approval(address,address,uint256)"(
|
||||
owner?: string | null,
|
||||
spender?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ owner: string; spender: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
Approval(
|
||||
owner?: string | null,
|
||||
spender?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ owner: string; spender: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
"Transfer(address,address,uint256)"(
|
||||
from?: string | null,
|
||||
to?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
Transfer(
|
||||
from?: string | null,
|
||||
to?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
};
|
||||
|
||||
estimateGas: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
};
|
||||
|
||||
populateTransaction: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
balanceOf(
|
||||
account: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
};
|
||||
}
|
||||
363
src/typechain/IERC20Metadata.d.ts
vendored
Normal file
363
src/typechain/IERC20Metadata.d.ts
vendored
Normal file
@@ -0,0 +1,363 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import {
|
||||
ethers,
|
||||
EventFilter,
|
||||
Signer,
|
||||
BigNumber,
|
||||
BigNumberish,
|
||||
PopulatedTransaction,
|
||||
BaseContract,
|
||||
ContractTransaction,
|
||||
Overrides,
|
||||
CallOverrides,
|
||||
} from "ethers";
|
||||
import { BytesLike } from "@ethersproject/bytes";
|
||||
import { Listener, Provider } from "@ethersproject/providers";
|
||||
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
|
||||
import type { TypedEventFilter, TypedEvent, TypedListener } from "./common";
|
||||
|
||||
interface IERC20MetadataInterface extends ethers.utils.Interface {
|
||||
functions: {
|
||||
"allowance(address,address)": FunctionFragment;
|
||||
"approve(address,uint256)": FunctionFragment;
|
||||
"balanceOf(address)": FunctionFragment;
|
||||
"decimals()": FunctionFragment;
|
||||
"name()": FunctionFragment;
|
||||
"symbol()": FunctionFragment;
|
||||
"totalSupply()": FunctionFragment;
|
||||
"transfer(address,uint256)": FunctionFragment;
|
||||
"transferFrom(address,address,uint256)": FunctionFragment;
|
||||
};
|
||||
|
||||
encodeFunctionData(
|
||||
functionFragment: "allowance",
|
||||
values: [string, string]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "approve",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
|
||||
encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
|
||||
encodeFunctionData(functionFragment: "name", values?: undefined): string;
|
||||
encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "totalSupply",
|
||||
values?: undefined
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "transfer",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "transferFrom",
|
||||
values: [string, string, BigNumberish]
|
||||
): string;
|
||||
|
||||
decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "totalSupply",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "transferFrom",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
|
||||
events: {
|
||||
"Approval(address,address,uint256)": EventFragment;
|
||||
"Transfer(address,address,uint256)": EventFragment;
|
||||
};
|
||||
|
||||
getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
|
||||
}
|
||||
|
||||
export type ApprovalEvent = TypedEvent<
|
||||
[string, string, BigNumber] & {
|
||||
owner: string;
|
||||
spender: string;
|
||||
value: BigNumber;
|
||||
}
|
||||
>;
|
||||
|
||||
export type TransferEvent = TypedEvent<
|
||||
[string, string, BigNumber] & { from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
export class IERC20Metadata extends BaseContract {
|
||||
connect(signerOrProvider: Signer | Provider | string): this;
|
||||
attach(addressOrName: string): this;
|
||||
deployed(): Promise<this>;
|
||||
|
||||
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
|
||||
off<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
on<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
once<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
|
||||
listeners(eventName?: string): Array<Listener>;
|
||||
off(eventName: string, listener: Listener): this;
|
||||
on(eventName: string, listener: Listener): this;
|
||||
once(eventName: string, listener: Listener): this;
|
||||
removeListener(eventName: string, listener: Listener): this;
|
||||
removeAllListeners(eventName?: string): this;
|
||||
|
||||
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
fromBlockOrBlockhash?: string | number | undefined,
|
||||
toBlock?: string | number | undefined
|
||||
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
|
||||
|
||||
interface: IERC20MetadataInterface;
|
||||
|
||||
functions: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<[BigNumber]>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<[number]>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<[string]>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<[string]>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
};
|
||||
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<number>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
callStatic: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<number>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
};
|
||||
|
||||
filters: {
|
||||
"Approval(address,address,uint256)"(
|
||||
owner?: string | null,
|
||||
spender?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ owner: string; spender: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
Approval(
|
||||
owner?: string | null,
|
||||
spender?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ owner: string; spender: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
"Transfer(address,address,uint256)"(
|
||||
from?: string | null,
|
||||
to?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
Transfer(
|
||||
from?: string | null,
|
||||
to?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
};
|
||||
|
||||
estimateGas: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
};
|
||||
|
||||
populateTransaction: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
balanceOf(
|
||||
account: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
};
|
||||
}
|
||||
119
src/typechain/Puller.d.ts
vendored
Normal file
119
src/typechain/Puller.d.ts
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import {
|
||||
ethers,
|
||||
EventFilter,
|
||||
Signer,
|
||||
BigNumber,
|
||||
BigNumberish,
|
||||
PopulatedTransaction,
|
||||
BaseContract,
|
||||
ContractTransaction,
|
||||
Overrides,
|
||||
CallOverrides,
|
||||
} from "ethers";
|
||||
import { BytesLike } from "@ethersproject/bytes";
|
||||
import { Listener, Provider } from "@ethersproject/providers";
|
||||
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
|
||||
import type { TypedEventFilter, TypedEvent, TypedListener } from "./common";
|
||||
|
||||
interface PullerInterface extends ethers.utils.Interface {
|
||||
functions: {
|
||||
"pullTokens(address,uint256)": FunctionFragment;
|
||||
};
|
||||
|
||||
encodeFunctionData(
|
||||
functionFragment: "pullTokens",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
|
||||
decodeFunctionResult(functionFragment: "pullTokens", data: BytesLike): Result;
|
||||
|
||||
events: {};
|
||||
}
|
||||
|
||||
export class Puller extends BaseContract {
|
||||
connect(signerOrProvider: Signer | Provider | string): this;
|
||||
attach(addressOrName: string): this;
|
||||
deployed(): Promise<this>;
|
||||
|
||||
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
|
||||
off<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
on<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
once<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
|
||||
listeners(eventName?: string): Array<Listener>;
|
||||
off(eventName: string, listener: Listener): this;
|
||||
on(eventName: string, listener: Listener): this;
|
||||
once(eventName: string, listener: Listener): this;
|
||||
removeListener(eventName: string, listener: Listener): this;
|
||||
removeAllListeners(eventName?: string): this;
|
||||
|
||||
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
fromBlockOrBlockhash?: string | number | undefined,
|
||||
toBlock?: string | number | undefined
|
||||
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
|
||||
|
||||
interface: PullerInterface;
|
||||
|
||||
functions: {
|
||||
pullTokens(
|
||||
_token: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
};
|
||||
|
||||
pullTokens(
|
||||
_token: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
callStatic: {
|
||||
pullTokens(
|
||||
_token: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<void>;
|
||||
};
|
||||
|
||||
filters: {};
|
||||
|
||||
estimateGas: {
|
||||
pullTokens(
|
||||
_token: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
};
|
||||
|
||||
populateTransaction: {
|
||||
pullTokens(
|
||||
_token: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
};
|
||||
}
|
||||
119
src/typechain/Spender.d.ts
vendored
Normal file
119
src/typechain/Spender.d.ts
vendored
Normal file
@@ -0,0 +1,119 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import {
|
||||
ethers,
|
||||
EventFilter,
|
||||
Signer,
|
||||
BigNumber,
|
||||
BigNumberish,
|
||||
PopulatedTransaction,
|
||||
BaseContract,
|
||||
ContractTransaction,
|
||||
Overrides,
|
||||
CallOverrides,
|
||||
} from "ethers";
|
||||
import { BytesLike } from "@ethersproject/bytes";
|
||||
import { Listener, Provider } from "@ethersproject/providers";
|
||||
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
|
||||
import type { TypedEventFilter, TypedEvent, TypedListener } from "./common";
|
||||
|
||||
interface SpenderInterface extends ethers.utils.Interface {
|
||||
functions: {
|
||||
"pullTokens(address,uint256)": FunctionFragment;
|
||||
};
|
||||
|
||||
encodeFunctionData(
|
||||
functionFragment: "pullTokens",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
|
||||
decodeFunctionResult(functionFragment: "pullTokens", data: BytesLike): Result;
|
||||
|
||||
events: {};
|
||||
}
|
||||
|
||||
export class Spender extends BaseContract {
|
||||
connect(signerOrProvider: Signer | Provider | string): this;
|
||||
attach(addressOrName: string): this;
|
||||
deployed(): Promise<this>;
|
||||
|
||||
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
|
||||
off<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
on<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
once<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
|
||||
listeners(eventName?: string): Array<Listener>;
|
||||
off(eventName: string, listener: Listener): this;
|
||||
on(eventName: string, listener: Listener): this;
|
||||
once(eventName: string, listener: Listener): this;
|
||||
removeListener(eventName: string, listener: Listener): this;
|
||||
removeAllListeners(eventName?: string): this;
|
||||
|
||||
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
fromBlockOrBlockhash?: string | number | undefined,
|
||||
toBlock?: string | number | undefined
|
||||
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
|
||||
|
||||
interface: SpenderInterface;
|
||||
|
||||
functions: {
|
||||
pullTokens(
|
||||
_token: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
};
|
||||
|
||||
pullTokens(
|
||||
_token: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
callStatic: {
|
||||
pullTokens(
|
||||
_token: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<void>;
|
||||
};
|
||||
|
||||
filters: {};
|
||||
|
||||
estimateGas: {
|
||||
pullTokens(
|
||||
_token: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
};
|
||||
|
||||
populateTransaction: {
|
||||
pullTokens(
|
||||
_token: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
};
|
||||
}
|
||||
513
src/typechain/Token.d.ts
vendored
Normal file
513
src/typechain/Token.d.ts
vendored
Normal file
@@ -0,0 +1,513 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import {
|
||||
ethers,
|
||||
EventFilter,
|
||||
Signer,
|
||||
BigNumber,
|
||||
BigNumberish,
|
||||
PopulatedTransaction,
|
||||
BaseContract,
|
||||
ContractTransaction,
|
||||
Overrides,
|
||||
CallOverrides,
|
||||
} from "ethers";
|
||||
import { BytesLike } from "@ethersproject/bytes";
|
||||
import { Listener, Provider } from "@ethersproject/providers";
|
||||
import { FunctionFragment, EventFragment, Result } from "@ethersproject/abi";
|
||||
import type { TypedEventFilter, TypedEvent, TypedListener } from "./common";
|
||||
|
||||
interface TokenInterface extends ethers.utils.Interface {
|
||||
functions: {
|
||||
"allowance(address,address)": FunctionFragment;
|
||||
"approve(address,uint256)": FunctionFragment;
|
||||
"balanceOf(address)": FunctionFragment;
|
||||
"burn(address,uint256)": FunctionFragment;
|
||||
"decimals()": FunctionFragment;
|
||||
"decreaseAllowance(address,uint256)": FunctionFragment;
|
||||
"increaseAllowance(address,uint256)": FunctionFragment;
|
||||
"mint(address,uint256)": FunctionFragment;
|
||||
"name()": FunctionFragment;
|
||||
"symbol()": FunctionFragment;
|
||||
"totalSupply()": FunctionFragment;
|
||||
"transfer(address,uint256)": FunctionFragment;
|
||||
"transferFrom(address,address,uint256)": FunctionFragment;
|
||||
};
|
||||
|
||||
encodeFunctionData(
|
||||
functionFragment: "allowance",
|
||||
values: [string, string]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "approve",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(functionFragment: "balanceOf", values: [string]): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "burn",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(functionFragment: "decimals", values?: undefined): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "decreaseAllowance",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "increaseAllowance",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "mint",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(functionFragment: "name", values?: undefined): string;
|
||||
encodeFunctionData(functionFragment: "symbol", values?: undefined): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "totalSupply",
|
||||
values?: undefined
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "transfer",
|
||||
values: [string, BigNumberish]
|
||||
): string;
|
||||
encodeFunctionData(
|
||||
functionFragment: "transferFrom",
|
||||
values: [string, string, BigNumberish]
|
||||
): string;
|
||||
|
||||
decodeFunctionResult(functionFragment: "allowance", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "burn", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "decimals", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "decreaseAllowance",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "increaseAllowance",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(functionFragment: "mint", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
|
||||
decodeFunctionResult(functionFragment: "symbol", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "totalSupply",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
decodeFunctionResult(functionFragment: "transfer", data: BytesLike): Result;
|
||||
decodeFunctionResult(
|
||||
functionFragment: "transferFrom",
|
||||
data: BytesLike
|
||||
): Result;
|
||||
|
||||
events: {
|
||||
"Approval(address,address,uint256)": EventFragment;
|
||||
"Transfer(address,address,uint256)": EventFragment;
|
||||
};
|
||||
|
||||
getEvent(nameOrSignatureOrTopic: "Approval"): EventFragment;
|
||||
getEvent(nameOrSignatureOrTopic: "Transfer"): EventFragment;
|
||||
}
|
||||
|
||||
export type ApprovalEvent = TypedEvent<
|
||||
[string, string, BigNumber] & {
|
||||
owner: string;
|
||||
spender: string;
|
||||
value: BigNumber;
|
||||
}
|
||||
>;
|
||||
|
||||
export type TransferEvent = TypedEvent<
|
||||
[string, string, BigNumber] & { from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
export class Token extends BaseContract {
|
||||
connect(signerOrProvider: Signer | Provider | string): this;
|
||||
attach(addressOrName: string): this;
|
||||
deployed(): Promise<this>;
|
||||
|
||||
listeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter?: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): Array<TypedListener<EventArgsArray, EventArgsObject>>;
|
||||
off<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
on<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
once<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeListener<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
listener: TypedListener<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
removeAllListeners<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
eventFilter: TypedEventFilter<EventArgsArray, EventArgsObject>
|
||||
): this;
|
||||
|
||||
listeners(eventName?: string): Array<Listener>;
|
||||
off(eventName: string, listener: Listener): this;
|
||||
on(eventName: string, listener: Listener): this;
|
||||
once(eventName: string, listener: Listener): this;
|
||||
removeListener(eventName: string, listener: Listener): this;
|
||||
removeAllListeners(eventName?: string): this;
|
||||
|
||||
queryFilter<EventArgsArray extends Array<any>, EventArgsObject>(
|
||||
event: TypedEventFilter<EventArgsArray, EventArgsObject>,
|
||||
fromBlockOrBlockhash?: string | number | undefined,
|
||||
toBlock?: string | number | undefined
|
||||
): Promise<Array<TypedEvent<EventArgsArray & EventArgsObject>>>;
|
||||
|
||||
interface: TokenInterface;
|
||||
|
||||
functions: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<[BigNumber]>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||
|
||||
burn(
|
||||
_account: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<[number]>;
|
||||
|
||||
decreaseAllowance(
|
||||
spender: string,
|
||||
subtractedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
increaseAllowance(
|
||||
spender: string,
|
||||
addedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
mint(
|
||||
_account: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<[string]>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<[string]>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<[BigNumber]>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
};
|
||||
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
burn(
|
||||
_account: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<number>;
|
||||
|
||||
decreaseAllowance(
|
||||
spender: string,
|
||||
subtractedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
increaseAllowance(
|
||||
spender: string,
|
||||
addedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
mint(
|
||||
_account: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<ContractTransaction>;
|
||||
|
||||
callStatic: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
burn(
|
||||
_account: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<void>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<number>;
|
||||
|
||||
decreaseAllowance(
|
||||
spender: string,
|
||||
subtractedValue: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
increaseAllowance(
|
||||
spender: string,
|
||||
addedValue: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
mint(
|
||||
_account: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<void>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<string>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: CallOverrides
|
||||
): Promise<boolean>;
|
||||
};
|
||||
|
||||
filters: {
|
||||
"Approval(address,address,uint256)"(
|
||||
owner?: string | null,
|
||||
spender?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ owner: string; spender: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
Approval(
|
||||
owner?: string | null,
|
||||
spender?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ owner: string; spender: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
"Transfer(address,address,uint256)"(
|
||||
from?: string | null,
|
||||
to?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
|
||||
Transfer(
|
||||
from?: string | null,
|
||||
to?: string | null,
|
||||
value?: null
|
||||
): TypedEventFilter<
|
||||
[string, string, BigNumber],
|
||||
{ from: string; to: string; value: BigNumber }
|
||||
>;
|
||||
};
|
||||
|
||||
estimateGas: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<BigNumber>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
balanceOf(account: string, overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
burn(
|
||||
_account: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
decreaseAllowance(
|
||||
spender: string,
|
||||
subtractedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
increaseAllowance(
|
||||
spender: string,
|
||||
addedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
mint(
|
||||
_account: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<BigNumber>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<BigNumber>;
|
||||
};
|
||||
|
||||
populateTransaction: {
|
||||
allowance(
|
||||
owner: string,
|
||||
spender: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
approve(
|
||||
spender: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
balanceOf(
|
||||
account: string,
|
||||
overrides?: CallOverrides
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
burn(
|
||||
_account: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
decimals(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
decreaseAllowance(
|
||||
spender: string,
|
||||
subtractedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
increaseAllowance(
|
||||
spender: string,
|
||||
addedValue: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
mint(
|
||||
_account: string,
|
||||
_amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
name(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
symbol(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
totalSupply(overrides?: CallOverrides): Promise<PopulatedTransaction>;
|
||||
|
||||
transfer(
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
|
||||
transferFrom(
|
||||
from: string,
|
||||
to: string,
|
||||
amount: BigNumberish,
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<PopulatedTransaction>;
|
||||
};
|
||||
}
|
||||
35
src/typechain/common.d.ts
vendored
Normal file
35
src/typechain/common.d.ts
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
import { EventFilter, Event } from "ethers";
|
||||
import { Result } from "@ethersproject/abi";
|
||||
|
||||
export interface TypedEventFilter<_EventArgsArray, _EventArgsObject>
|
||||
extends EventFilter {}
|
||||
|
||||
export interface TypedEvent<EventArgs extends Result> extends Event {
|
||||
args: EventArgs;
|
||||
}
|
||||
|
||||
export type TypedListener<
|
||||
EventArgsArray extends Array<any>,
|
||||
EventArgsObject
|
||||
> = (
|
||||
...listenerArg: [
|
||||
...EventArgsArray,
|
||||
TypedEvent<EventArgsArray & EventArgsObject>
|
||||
]
|
||||
) => void;
|
||||
|
||||
export type MinEthersFactory<C, ARGS> = {
|
||||
deploy(...a: ARGS[]): Promise<C>;
|
||||
};
|
||||
export type GetContractTypeFromFactory<F> = F extends MinEthersFactory<
|
||||
infer C,
|
||||
any
|
||||
>
|
||||
? C
|
||||
: never;
|
||||
export type GetARGsTypeFromFactory<F> = F extends MinEthersFactory<any, any>
|
||||
? Parameters<F["deploy"]>
|
||||
: never;
|
||||
340
src/typechain/factories/ERC20__factory.ts
Normal file
340
src/typechain/factories/ERC20__factory.ts
Normal file
File diff suppressed because one or more lines are too long
248
src/typechain/factories/IERC20Metadata__factory.ts
Normal file
248
src/typechain/factories/IERC20Metadata__factory.ts
Normal file
@@ -0,0 +1,248 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { Contract, Signer, utils } from "ethers";
|
||||
import { Provider } from "@ethersproject/providers";
|
||||
import type {
|
||||
IERC20Metadata,
|
||||
IERC20MetadataInterface,
|
||||
} from "../IERC20Metadata";
|
||||
|
||||
const _abi = [
|
||||
{
|
||||
anonymous: false,
|
||||
inputs: [
|
||||
{
|
||||
indexed: true,
|
||||
internalType: "address",
|
||||
name: "owner",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
indexed: true,
|
||||
internalType: "address",
|
||||
name: "spender",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
indexed: false,
|
||||
internalType: "uint256",
|
||||
name: "value",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "Approval",
|
||||
type: "event",
|
||||
},
|
||||
{
|
||||
anonymous: false,
|
||||
inputs: [
|
||||
{
|
||||
indexed: true,
|
||||
internalType: "address",
|
||||
name: "from",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
indexed: true,
|
||||
internalType: "address",
|
||||
name: "to",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
indexed: false,
|
||||
internalType: "uint256",
|
||||
name: "value",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "Transfer",
|
||||
type: "event",
|
||||
},
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "owner",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "address",
|
||||
name: "spender",
|
||||
type: "address",
|
||||
},
|
||||
],
|
||||
name: "allowance",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
stateMutability: "view",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "spender",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "amount",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "approve",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "bool",
|
||||
name: "",
|
||||
type: "bool",
|
||||
},
|
||||
],
|
||||
stateMutability: "nonpayable",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "account",
|
||||
type: "address",
|
||||
},
|
||||
],
|
||||
name: "balanceOf",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
stateMutability: "view",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [],
|
||||
name: "decimals",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "uint8",
|
||||
name: "",
|
||||
type: "uint8",
|
||||
},
|
||||
],
|
||||
stateMutability: "view",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [],
|
||||
name: "name",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "string",
|
||||
name: "",
|
||||
type: "string",
|
||||
},
|
||||
],
|
||||
stateMutability: "view",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [],
|
||||
name: "symbol",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "string",
|
||||
name: "",
|
||||
type: "string",
|
||||
},
|
||||
],
|
||||
stateMutability: "view",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [],
|
||||
name: "totalSupply",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
stateMutability: "view",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "to",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "amount",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "transfer",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "bool",
|
||||
name: "",
|
||||
type: "bool",
|
||||
},
|
||||
],
|
||||
stateMutability: "nonpayable",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "from",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "address",
|
||||
name: "to",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "amount",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "transferFrom",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "bool",
|
||||
name: "",
|
||||
type: "bool",
|
||||
},
|
||||
],
|
||||
stateMutability: "nonpayable",
|
||||
type: "function",
|
||||
},
|
||||
];
|
||||
|
||||
export class IERC20Metadata__factory {
|
||||
static readonly abi = _abi;
|
||||
static createInterface(): IERC20MetadataInterface {
|
||||
return new utils.Interface(_abi) as IERC20MetadataInterface;
|
||||
}
|
||||
static connect(
|
||||
address: string,
|
||||
signerOrProvider: Signer | Provider
|
||||
): IERC20Metadata {
|
||||
return new Contract(address, _abi, signerOrProvider) as IERC20Metadata;
|
||||
}
|
||||
}
|
||||
203
src/typechain/factories/IERC20__factory.ts
Normal file
203
src/typechain/factories/IERC20__factory.ts
Normal file
@@ -0,0 +1,203 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { Contract, Signer, utils } from "ethers";
|
||||
import { Provider } from "@ethersproject/providers";
|
||||
import type { IERC20, IERC20Interface } from "../IERC20";
|
||||
|
||||
const _abi = [
|
||||
{
|
||||
anonymous: false,
|
||||
inputs: [
|
||||
{
|
||||
indexed: true,
|
||||
internalType: "address",
|
||||
name: "owner",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
indexed: true,
|
||||
internalType: "address",
|
||||
name: "spender",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
indexed: false,
|
||||
internalType: "uint256",
|
||||
name: "value",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "Approval",
|
||||
type: "event",
|
||||
},
|
||||
{
|
||||
anonymous: false,
|
||||
inputs: [
|
||||
{
|
||||
indexed: true,
|
||||
internalType: "address",
|
||||
name: "from",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
indexed: true,
|
||||
internalType: "address",
|
||||
name: "to",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
indexed: false,
|
||||
internalType: "uint256",
|
||||
name: "value",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "Transfer",
|
||||
type: "event",
|
||||
},
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "owner",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "address",
|
||||
name: "spender",
|
||||
type: "address",
|
||||
},
|
||||
],
|
||||
name: "allowance",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
stateMutability: "view",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "spender",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "amount",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "approve",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "bool",
|
||||
name: "",
|
||||
type: "bool",
|
||||
},
|
||||
],
|
||||
stateMutability: "nonpayable",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "account",
|
||||
type: "address",
|
||||
},
|
||||
],
|
||||
name: "balanceOf",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
stateMutability: "view",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [],
|
||||
name: "totalSupply",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
stateMutability: "view",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "to",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "amount",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "transfer",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "bool",
|
||||
name: "",
|
||||
type: "bool",
|
||||
},
|
||||
],
|
||||
stateMutability: "nonpayable",
|
||||
type: "function",
|
||||
},
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "from",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "address",
|
||||
name: "to",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "amount",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "transferFrom",
|
||||
outputs: [
|
||||
{
|
||||
internalType: "bool",
|
||||
name: "",
|
||||
type: "bool",
|
||||
},
|
||||
],
|
||||
stateMutability: "nonpayable",
|
||||
type: "function",
|
||||
},
|
||||
];
|
||||
|
||||
export class IERC20__factory {
|
||||
static readonly abi = _abi;
|
||||
static createInterface(): IERC20Interface {
|
||||
return new utils.Interface(_abi) as IERC20Interface;
|
||||
}
|
||||
static connect(address: string, signerOrProvider: Signer | Provider): IERC20 {
|
||||
return new Contract(address, _abi, signerOrProvider) as IERC20;
|
||||
}
|
||||
}
|
||||
68
src/typechain/factories/Puller__factory.ts
Normal file
68
src/typechain/factories/Puller__factory.ts
Normal file
@@ -0,0 +1,68 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
|
||||
import { Provider, TransactionRequest } from "@ethersproject/providers";
|
||||
import type { Puller, PullerInterface } from "../Puller";
|
||||
|
||||
const _abi = [
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "_token",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "_amount",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "pullTokens",
|
||||
outputs: [],
|
||||
stateMutability: "nonpayable",
|
||||
type: "function",
|
||||
},
|
||||
];
|
||||
|
||||
const _bytecode =
|
||||
"0x608060405234801561001057600080fd5b5061029c806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063eada79cc14610030575b600080fd5b61004a6004803603810190610045919061011f565b61004c565b005b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610089939291906101a2565b602060405180830381600087803b1580156100a357600080fd5b505af11580156100b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100db919061015b565b505050565b6000813590506100ef81610221565b92915050565b60008151905061010481610238565b92915050565b6000813590506101198161024f565b92915050565b6000806040838503121561013257600080fd5b6000610140858286016100e0565b92505060206101518582860161010a565b9150509250929050565b60006020828403121561016d57600080fd5b600061017b848285016100f5565b91505092915050565b61018d816101d9565b82525050565b61019c81610217565b82525050565b60006060820190506101b76000830186610184565b6101c46020830185610184565b6101d16040830184610193565b949350505050565b60006101e4826101f7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61022a816101d9565b811461023557600080fd5b50565b610241816101eb565b811461024c57600080fd5b50565b61025881610217565b811461026357600080fd5b5056fea2646970667358221220d25cc84c6f2e1c37e0f8119d277a3f4c3c349908f2c5877a6d34a21b0e7fe42f64736f6c63430008040033";
|
||||
|
||||
export class Puller__factory extends ContractFactory {
|
||||
constructor(
|
||||
...args: [signer: Signer] | ConstructorParameters<typeof ContractFactory>
|
||||
) {
|
||||
if (args.length === 1) {
|
||||
super(_abi, _bytecode, args[0]);
|
||||
} else {
|
||||
super(...args);
|
||||
}
|
||||
}
|
||||
|
||||
deploy(
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<Puller> {
|
||||
return super.deploy(overrides || {}) as Promise<Puller>;
|
||||
}
|
||||
getDeployTransaction(
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): TransactionRequest {
|
||||
return super.getDeployTransaction(overrides || {});
|
||||
}
|
||||
attach(address: string): Puller {
|
||||
return super.attach(address) as Puller;
|
||||
}
|
||||
connect(signer: Signer): Puller__factory {
|
||||
return super.connect(signer) as Puller__factory;
|
||||
}
|
||||
static readonly bytecode = _bytecode;
|
||||
static readonly abi = _abi;
|
||||
static createInterface(): PullerInterface {
|
||||
return new utils.Interface(_abi) as PullerInterface;
|
||||
}
|
||||
static connect(address: string, signerOrProvider: Signer | Provider): Puller {
|
||||
return new Contract(address, _abi, signerOrProvider) as Puller;
|
||||
}
|
||||
}
|
||||
71
src/typechain/factories/Spender__factory.ts
Normal file
71
src/typechain/factories/Spender__factory.ts
Normal file
@@ -0,0 +1,71 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { Signer, utils, Contract, ContractFactory, Overrides } from "ethers";
|
||||
import { Provider, TransactionRequest } from "@ethersproject/providers";
|
||||
import type { Spender, SpenderInterface } from "../Spender";
|
||||
|
||||
const _abi = [
|
||||
{
|
||||
inputs: [
|
||||
{
|
||||
internalType: "address",
|
||||
name: "_token",
|
||||
type: "address",
|
||||
},
|
||||
{
|
||||
internalType: "uint256",
|
||||
name: "_amount",
|
||||
type: "uint256",
|
||||
},
|
||||
],
|
||||
name: "pullTokens",
|
||||
outputs: [],
|
||||
stateMutability: "nonpayable",
|
||||
type: "function",
|
||||
},
|
||||
];
|
||||
|
||||
const _bytecode =
|
||||
"0x608060405234801561001057600080fd5b5061029c806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063eada79cc14610030575b600080fd5b61004a6004803603810190610045919061011f565b61004c565b005b8173ffffffffffffffffffffffffffffffffffffffff166323b872dd3330846040518463ffffffff1660e01b8152600401610089939291906101a2565b602060405180830381600087803b1580156100a357600080fd5b505af11580156100b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100db919061015b565b505050565b6000813590506100ef81610221565b92915050565b60008151905061010481610238565b92915050565b6000813590506101198161024f565b92915050565b6000806040838503121561013257600080fd5b6000610140858286016100e0565b92505060206101518582860161010a565b9150509250929050565b60006020828403121561016d57600080fd5b600061017b848285016100f5565b91505092915050565b61018d816101d9565b82525050565b61019c81610217565b82525050565b60006060820190506101b76000830186610184565b6101c46020830185610184565b6101d16040830184610193565b949350505050565b60006101e4826101f7565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b61022a816101d9565b811461023557600080fd5b50565b610241816101eb565b811461024c57600080fd5b50565b61025881610217565b811461026357600080fd5b5056fea264697066735822122016def4cd3472533f4dfe58c6cfa8fef957636c7a9b626fd17296df2052618bd564736f6c63430008040033";
|
||||
|
||||
export class Spender__factory extends ContractFactory {
|
||||
constructor(
|
||||
...args: [signer: Signer] | ConstructorParameters<typeof ContractFactory>
|
||||
) {
|
||||
if (args.length === 1) {
|
||||
super(_abi, _bytecode, args[0]);
|
||||
} else {
|
||||
super(...args);
|
||||
}
|
||||
}
|
||||
|
||||
deploy(
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): Promise<Spender> {
|
||||
return super.deploy(overrides || {}) as Promise<Spender>;
|
||||
}
|
||||
getDeployTransaction(
|
||||
overrides?: Overrides & { from?: string | Promise<string> }
|
||||
): TransactionRequest {
|
||||
return super.getDeployTransaction(overrides || {});
|
||||
}
|
||||
attach(address: string): Spender {
|
||||
return super.attach(address) as Spender;
|
||||
}
|
||||
connect(signer: Signer): Spender__factory {
|
||||
return super.connect(signer) as Spender__factory;
|
||||
}
|
||||
static readonly bytecode = _bytecode;
|
||||
static readonly abi = _abi;
|
||||
static createInterface(): SpenderInterface {
|
||||
return new utils.Interface(_abi) as SpenderInterface;
|
||||
}
|
||||
static connect(
|
||||
address: string,
|
||||
signerOrProvider: Signer | Provider
|
||||
): Spender {
|
||||
return new Contract(address, _abi, signerOrProvider) as Spender;
|
||||
}
|
||||
}
|
||||
376
src/typechain/factories/Token__factory.ts
Normal file
376
src/typechain/factories/Token__factory.ts
Normal file
File diff suppressed because one or more lines are too long
87
src/typechain/hardhat.d.ts
vendored
Normal file
87
src/typechain/hardhat.d.ts
vendored
Normal file
@@ -0,0 +1,87 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
|
||||
import { ethers } from "ethers";
|
||||
import {
|
||||
FactoryOptions,
|
||||
HardhatEthersHelpers as HardhatEthersHelpersBase,
|
||||
} from "@nomiclabs/hardhat-ethers/types";
|
||||
|
||||
import * as Contracts from ".";
|
||||
|
||||
declare module "hardhat/types/runtime" {
|
||||
interface HardhatEthersHelpers extends HardhatEthersHelpersBase {
|
||||
getContractFactory(
|
||||
name: "ERC20",
|
||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||
): Promise<Contracts.ERC20__factory>;
|
||||
getContractFactory(
|
||||
name: "IERC20Metadata",
|
||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||
): Promise<Contracts.IERC20Metadata__factory>;
|
||||
getContractFactory(
|
||||
name: "IERC20",
|
||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||
): Promise<Contracts.IERC20__factory>;
|
||||
getContractFactory(
|
||||
name: "Puller",
|
||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||
): Promise<Contracts.Puller__factory>;
|
||||
getContractFactory(
|
||||
name: "Spender",
|
||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||
): Promise<Contracts.Spender__factory>;
|
||||
getContractFactory(
|
||||
name: "Token",
|
||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||
): Promise<Contracts.Token__factory>;
|
||||
|
||||
getContractAt(
|
||||
name: "ERC20",
|
||||
address: string,
|
||||
signer?: ethers.Signer
|
||||
): Promise<Contracts.ERC20>;
|
||||
getContractAt(
|
||||
name: "IERC20Metadata",
|
||||
address: string,
|
||||
signer?: ethers.Signer
|
||||
): Promise<Contracts.IERC20Metadata>;
|
||||
getContractAt(
|
||||
name: "IERC20",
|
||||
address: string,
|
||||
signer?: ethers.Signer
|
||||
): Promise<Contracts.IERC20>;
|
||||
getContractAt(
|
||||
name: "Puller",
|
||||
address: string,
|
||||
signer?: ethers.Signer
|
||||
): Promise<Contracts.Puller>;
|
||||
getContractAt(
|
||||
name: "Spender",
|
||||
address: string,
|
||||
signer?: ethers.Signer
|
||||
): Promise<Contracts.Spender>;
|
||||
getContractAt(
|
||||
name: "Token",
|
||||
address: string,
|
||||
signer?: ethers.Signer
|
||||
): Promise<Contracts.Token>;
|
||||
|
||||
// default types
|
||||
getContractFactory(
|
||||
name: string,
|
||||
signerOrOptions?: ethers.Signer | FactoryOptions
|
||||
): Promise<ethers.ContractFactory>;
|
||||
getContractFactory(
|
||||
abi: any[],
|
||||
bytecode: ethers.utils.BytesLike,
|
||||
signer?: ethers.Signer
|
||||
): Promise<ethers.ContractFactory>;
|
||||
getContractAt(
|
||||
nameOrAbi: string | any[],
|
||||
address: string,
|
||||
signer?: ethers.Signer
|
||||
): Promise<ethers.Contract>;
|
||||
}
|
||||
}
|
||||
16
src/typechain/index.ts
Normal file
16
src/typechain/index.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
/* Autogenerated file. Do not edit manually. */
|
||||
/* tslint:disable */
|
||||
/* eslint-disable */
|
||||
export type { ERC20 } from "./ERC20";
|
||||
export type { IERC20Metadata } from "./IERC20Metadata";
|
||||
export type { IERC20 } from "./IERC20";
|
||||
export type { Puller } from "./Puller";
|
||||
export type { Spender } from "./Spender";
|
||||
export type { Token } from "./Token";
|
||||
|
||||
export { ERC20__factory } from "./factories/ERC20__factory";
|
||||
export { IERC20Metadata__factory } from "./factories/IERC20Metadata__factory";
|
||||
export { IERC20__factory } from "./factories/IERC20__factory";
|
||||
export { Puller__factory } from "./factories/Puller__factory";
|
||||
export { Spender__factory } from "./factories/Spender__factory";
|
||||
export { Token__factory } from "./factories/Token__factory";
|
||||
7
tailwind.config.js
Normal file
7
tailwind.config.js
Normal file
@@ -0,0 +1,7 @@
|
||||
module.exports = {
|
||||
content: ["./src/**/*.{js,jsx,ts,tsx}"],
|
||||
theme: {
|
||||
extend: {},
|
||||
},
|
||||
plugins: [],
|
||||
};
|
||||
Reference in New Issue
Block a user