diff --git a/src/App.tsx b/src/App.tsx index a8184dd..b696fdc 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -75,13 +75,14 @@ function Profile() { interface AddressesProps { addressList: string[]; setAddressListFn: any; + numTokens: number; + setNumTokens: any; } function Addresses(props: AddressesProps) { const [inputState, setInputState] = useState(""); const [errorText, setErrorText] = useState(""); - const [numTokens, setNumTokens] = useState(0); - const { setAddressListFn, addressList } = props; + const { setAddressListFn, addressList, numTokens, setNumTokens } = props; const save = () => { if (!web3.utils.isAddress(inputState)) { @@ -141,22 +142,32 @@ function AddressList({addressList}: AddressListProps) { function App() { const [addressList, setAddressList] = useState([]); - const { address: ownerAddress } = useAccount() + const [numTokens, setNumTokens] = useState(0); + const { address: ownerAddress, isConnected } = useAccount() async function performAirdrop() { console.log("Performing airdrop"); + const totalCoins = addressList.length * numTokens; - console.log(magnaTokenContract.methods); + console.log(`Owner ${ownerAddress} Airdrop ${airdropAddress}`); const allowance = await magnaTokenContract.methods.allowance(ownerAddress, airdropAddress).call({ from: ownerAddress }); console.log(`Allowance: ${allowance}`); - if (allowance <= 0) { - //TODO prompt to set a positive balance - return; + if (allowance < totalCoins) { + const output = await magnaTokenContract.methods.approve(airdropAddress, totalCoins).send({ from: ownerAddress }); + console.log(output); } + + const recipients = addressList; + const amounts = addressList.map((_addr) => numTokens); + + const output = await airdropContract.methods.airdropTokens(recipients, amounts).send({ from: ownerAddress }); + console.log(output); } + const airdropButtonDisabled = addressList.length == 0 || !isConnected; + return (
@@ -165,8 +176,8 @@ function App() {

Airdrop App

Add an address to airdrop to:

- - + +