@settlemint/solidity-token-erc20-crowdsale
Version:
Smart contract set to build an ERC20 token sale in SettleMint
564 lines (558 loc) • 34.9 kB
TypeScript
// This file was autogenerated by hardhat-viem, do not edit it.
// prettier-ignore
// tslint:disable
// eslint-disable
import type { Address } from "viem";
import type { AbiParameterToPrimitiveType, GetContractReturnType } from "@nomicfoundation/hardhat-viem/types";
import "@nomicfoundation/hardhat-viem/types";
export interface ExampleCrowdSale$Type {
"_format": "hh-sol-artifact-1",
"contractName": "ExampleCrowdSale",
"sourceName": "contracts/ExampleCrowdSale.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "priceFeed_",
"type": "address"
},
{
"internalType": "address",
"name": "token_",
"type": "address"
},
{
"internalType": "address payable",
"name": "wallet_",
"type": "address"
},
{
"internalType": "uint256",
"name": "usdRate_",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "vestingEndDate_",
"type": "uint256"
},
{
"internalType": "address",
"name": "vestingVault_",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"inputs": [],
"name": "AccessControlBadConfirmation",
"type": "error"
},
{
"inputs": [
{
"internalType": "address",
"name": "account",
"type": "address"
},
{
"internalType": "bytes32",
"name": "neededRole",
"type": "bytes32"
}
],
"name": "AccessControlUnauthorizedAccount",
"type": "error"
},
{
"inputs": [],
"name": "EnforcedPause",
"type": "error"
},
{
"inputs": [],
"name": "ExpectedPause",
"type": "error"
},
{
"inputs": [],
"name": "ReentrancyGuardReentrantCall",
"type": "error"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Paused",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "purchaser",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "beneficiary",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "amount",
"type": "uint256"
}
],
"name": "TokensPurchased",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "Unpaused",
"type": "event"
},
{
"stateMutability": "payable",
"type": "fallback"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "WHITELISTED_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "beneficiary",
"type": "address"
}
],
"name": "buyTokens",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "beneficiary",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenAmount",
"type": "uint256"
}
],
"name": "externalBuyTokens",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "fundsRaised",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "weiAmount",
"type": "uint256"
}
],
"name": "getTokenAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenAmount",
"type": "uint256"
}
],
"name": "getWeiAmount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "pause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "paused",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "callerConfirmation",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "token",
"outputs": [
{
"internalType": "contract IERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "tokensAvailable",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "unpause",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "wallet",
"outputs": [
{
"internalType": "address payable",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x6080346101b457601f61154b38819003918201601f19168301916001600160401b038311848410176101b95780849260c0946040528339810103126101b457610047816101cf565b90610054602082016101cf565b60408201519092906001600160a01b038116908190036101b45760608301519161008560a0608086015195016101cf565b9460016002558215610161576001600160a01b0316908115610110576100aa336101e3565b5060018060a01b031660018060a01b0319600454161760045560018060a01b0319600354161760035560018060a01b0319600654161760065560055560085560018060a01b031660018060a01b031960095416176009556040516112b990816102728239f35b60405162461bcd60e51b8152602060048201526024808201527f43726f776473616c653a20746f6b656e20697320746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602560248201527f43726f776473616c653a2077616c6c657420697320746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036101b457565b6001600160a01b038116600090815260008051602061152b833981519152602052604090205460ff1661026b576001600160a01b0316600081815260008051602061152b83398151915260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b5060009056fe6080806040526004361015610028575b5036156100205761001e610b7e565b005b61001e610b7e565b60003560e01c90816301ffc9a71461076357508063248a9ca3146107365780632f2ff15d146106f657806336568abe1461068a5780633f4ba83a14610615578063521eb273146105e15780635c975abb146105be5780635f1c3766146104aa57806360659a92146103fe5780636681b9fd146103e05780637a3226ec146103a557806382d5d7ac146103875780638456cb591461030f57806391d14854146102b4578063a217fddf14610298578063c2507ac114610272578063d547741f1461022d578063ec8ac4d81461013f5763fc0c546a14610106573861000f565b3461013a57600060031936011261013a57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b600080fd5b602060031936011261013a57610153610888565b61015b610f18565b610163610f51565b61016b610c36565b6101753482610f87565b73ffffffffffffffffffffffffffffffffffffffff61019334610abc565b916101a0346007546108ab565b6007556101ad838261108b565b60405192348452602084015216907f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b60403392a3600080808073ffffffffffffffffffffffffffffffffffffffff6006541681903415610223575b3491f115610217576001600255005b6040513d6000823e3d90fd5b6108fc9150610208565b3461013a57604060031936011261013a5761001e60043561024c610865565b9061026d61026882600052600160205260016040600020015490565b610cc1565b610e0d565b3461013a57602060031936011261013a576020610290600435610abc565b604051908152f35b3461013a57600060031936011261013a57602060405160008152f35b3461013a57604060031936011261013a576102cd610865565b600435600052600160205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b3461013a57600060031936011261013a57610328610f51565b610330610f51565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461013a57602060031936011261013a5760206102906004356109b6565b3461013a57600060031936011261013a5760206040517f8429d542926e6695b59ac6fbdcd9b37e8b1aeb757afab06ab60b1bb5878c3b498152f35b3461013a57600060031936011261013a576020600754604051908152f35b3461013a57600060031936011261013a576024602073ffffffffffffffffffffffffffffffffffffffff60035416604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa801561021757600090610477575b602090604051908152f35b506020813d6020116104a2575b81610491602093836108e7565b8101031261013a576020905161046c565b3d9150610484565b3461013a57604060031936011261013a576104c3610888565b602435906104cf610f18565b6104d7610f51565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff161561058b5773ffffffffffffffffffffffffffffffffffffffff9061052d836109b6565b926105388483610f87565b610544846007546108ab565b600755610551818361108b565b604051938452602084015216907f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b60403392a36001600255005b7fe2517d3f0000000000000000000000000000000000000000000000000000000060005233600452600060245260446000fd5b3461013a57600060031936011261013a57602060ff600054166040519015158152f35b3461013a57600060031936011261013a57602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b3461013a57600060031936011261013a5761062e610ee1565b610636610ee1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600054166000557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b3461013a57604060031936011261013a576106a3610865565b3373ffffffffffffffffffffffffffffffffffffffff8216036106cc5761001e90600435610e0d565b7f6697b2320000000000000000000000000000000000000000000000000000000060005260046000fd5b3461013a57604060031936011261013a5761001e600435610715610865565b9061073161026882600052600160205260016040600020015490565b610d2e565b3461013a57602060031936011261013a576020610290600435600052600160205260016040600020015490565b3461013a57602060031936011261013a57600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361013a57817f1b6036c8000000000000000000000000000000000000000000000000000000006020931490811561083b575b81156107de575b5015158152f35b7f7965db0b00000000000000000000000000000000000000000000000000000000811491508115610811575b50836107d7565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148361080a565b7f5c975abb00000000000000000000000000000000000000000000000000000000811491506107d0565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013a57565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013a57565b919082018092116108b857565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761092857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b519069ffffffffffffffffffff8216820361013a57565b908160a091031261013a5761098281610957565b916020820151916040810151916109a0608060608401519301610957565b90565b818102929181159184041417156108b857565b73ffffffffffffffffffffffffffffffffffffffff60045416806109e857506109e4600a91600554906109a3565b0490565b60a0600491604051928380927ffeaf968c0000000000000000000000000000000000000000000000000000000082525afa90811561021757600091610a88575b506305f5e1008202918083046305f5e10014901517156108b857600554610a4e916109a3565b908115610a59570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b610aaa915060a03d60a011610ab5575b610aa281836108e7565b81019061096e565b505050905038610a28565b503d610a98565b73ffffffffffffffffffffffffffffffffffffffff6004541680610afa5750600a810290808204600a14901517156108b8576005546109a0916109a3565b9060a0600492604051938480927ffeaf968c0000000000000000000000000000000000000000000000000000000082525afa918215610217576305f5e100926109e492610b4f92600092610b58575b506109a3565b600554906109a3565b610b7291925060a03d60a011610ab557610aa281836108e7565b50505090509038610b49565b610b86610f18565b610b8e610f51565b610b96610c36565b610ba03433610f87565b610ba934610abc565b610bb5346007546108ab565b600755610bc2813361108b565b60405190348252602082015233907f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b60403392a3600080808073ffffffffffffffffffffffffffffffffffffffff6006541681903415610c2c575b3491f115610217576001600255565b6108fc9150610c1d565b3360009081527f9a12e7d163daa3679fdde2f980fb077ecd75d9611348bc15a31355afb064154e602052604090205460ff1615610c6f57565b7fe2517d3f00000000000000000000000000000000000000000000000000000000600052336004527f8429d542926e6695b59ac6fbdcd9b37e8b1aeb757afab06ab60b1bb5878c3b4960245260446000fd5b806000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff331660005260205260ff6040600020541615610cfd5750565b7fe2517d3f000000000000000000000000000000000000000000000000000000006000523360045260245260446000fd5b806000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615600014610e0657806000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff8316600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d600080a4600190565b5050600090565b806000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416600014610e0657806000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b600080a4600190565b60ff6000541615610eee57565b7f8dfc202b0000000000000000000000000000000000000000000000000000000060005260046000fd5b6002805414610f275760028055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60ff60005416610f5d57565b7fd93c06650000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff16156110075715610fa957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43726f776473616c653a20616d6f756e742069732030000000000000000000006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f43726f776473616c653a2062656e656669636961727920697320746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152fd5b600854909291906000901561116c5773ffffffffffffffffffffffffffffffffffffffff600954169360085494803b1561116857606483928373ffffffffffffffffffffffffffffffffffffffff93604051998a9586947ff74bc9d600000000000000000000000000000000000000000000000000000000865216600485015260248401528760448401525af193841561115b57611149939461114b575b505073ffffffffffffffffffffffffffffffffffffffff60095416611173565b565b81611155916108e7565b38611129565b50604051903d90823e3d90fd5b8280fd5b5061114991925b73ffffffffffffffffffffffffffffffffffffffff60446020926000836003541660405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865216600485015260248401525af190811561021757600091611241575b50156111e357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5472616e7366657220756e7375636365737366756c00000000000000000000006044820152fd5b6020813d60201161127b575b8161125a602093836108e7565b8101031261127757519081151582036112745750386111db565b80fd5b5080fd5b3d915061124d56fea26469706673582212205bf3fd9073f5061daf374d574041b6436de91daf00d672a5ae6142b05c4e543464736f6c634300081b0033a6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49",
"deployedBytecode": "0x6080806040526004361015610028575b5036156100205761001e610b7e565b005b61001e610b7e565b60003560e01c90816301ffc9a71461076357508063248a9ca3146107365780632f2ff15d146106f657806336568abe1461068a5780633f4ba83a14610615578063521eb273146105e15780635c975abb146105be5780635f1c3766146104aa57806360659a92146103fe5780636681b9fd146103e05780637a3226ec146103a557806382d5d7ac146103875780638456cb591461030f57806391d14854146102b4578063a217fddf14610298578063c2507ac114610272578063d547741f1461022d578063ec8ac4d81461013f5763fc0c546a14610106573861000f565b3461013a57600060031936011261013a57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b600080fd5b602060031936011261013a57610153610888565b61015b610f18565b610163610f51565b61016b610c36565b6101753482610f87565b73ffffffffffffffffffffffffffffffffffffffff61019334610abc565b916101a0346007546108ab565b6007556101ad838261108b565b60405192348452602084015216907f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b60403392a3600080808073ffffffffffffffffffffffffffffffffffffffff6006541681903415610223575b3491f115610217576001600255005b6040513d6000823e3d90fd5b6108fc9150610208565b3461013a57604060031936011261013a5761001e60043561024c610865565b9061026d61026882600052600160205260016040600020015490565b610cc1565b610e0d565b3461013a57602060031936011261013a576020610290600435610abc565b604051908152f35b3461013a57600060031936011261013a57602060405160008152f35b3461013a57604060031936011261013a576102cd610865565b600435600052600160205273ffffffffffffffffffffffffffffffffffffffff60406000209116600052602052602060ff604060002054166040519015158152f35b3461013a57600060031936011261013a57610328610f51565b610330610f51565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586020604051338152a1005b3461013a57602060031936011261013a5760206102906004356109b6565b3461013a57600060031936011261013a5760206040517f8429d542926e6695b59ac6fbdcd9b37e8b1aeb757afab06ab60b1bb5878c3b498152f35b3461013a57600060031936011261013a576020600754604051908152f35b3461013a57600060031936011261013a576024602073ffffffffffffffffffffffffffffffffffffffff60035416604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa801561021757600090610477575b602090604051908152f35b506020813d6020116104a2575b81610491602093836108e7565b8101031261013a576020905161046c565b3d9150610484565b3461013a57604060031936011261013a576104c3610888565b602435906104cf610f18565b6104d7610f51565b3360009081527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb49602052604090205460ff161561058b5773ffffffffffffffffffffffffffffffffffffffff9061052d836109b6565b926105388483610f87565b610544846007546108ab565b600755610551818361108b565b604051938452602084015216907f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b60403392a36001600255005b7fe2517d3f0000000000000000000000000000000000000000000000000000000060005233600452600060245260446000fd5b3461013a57600060031936011261013a57602060ff600054166040519015158152f35b3461013a57600060031936011261013a57602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b3461013a57600060031936011261013a5761062e610ee1565b610636610ee1565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600054166000557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6020604051338152a1005b3461013a57604060031936011261013a576106a3610865565b3373ffffffffffffffffffffffffffffffffffffffff8216036106cc5761001e90600435610e0d565b7f6697b2320000000000000000000000000000000000000000000000000000000060005260046000fd5b3461013a57604060031936011261013a5761001e600435610715610865565b9061073161026882600052600160205260016040600020015490565b610d2e565b3461013a57602060031936011261013a576020610290600435600052600160205260016040600020015490565b3461013a57602060031936011261013a57600435907fffffffff00000000000000000000000000000000000000000000000000000000821680920361013a57817f1b6036c8000000000000000000000000000000000000000000000000000000006020931490811561083b575b81156107de575b5015158152f35b7f7965db0b00000000000000000000000000000000000000000000000000000000811491508115610811575b50836107d7565b7f01ffc9a7000000000000000000000000000000000000000000000000000000009150148361080a565b7f5c975abb00000000000000000000000000000000000000000000000000000000811491506107d0565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361013a57565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361013a57565b919082018092116108b857565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761092857604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b519069ffffffffffffffffffff8216820361013a57565b908160a091031261013a5761098281610957565b916020820151916040810151916109a0608060608401519301610957565b90565b818102929181159184041417156108b857565b73ffffffffffffffffffffffffffffffffffffffff60045416806109e857506109e4600a91600554906109a3565b0490565b60a0600491604051928380927ffeaf968c0000000000000000000000000000000000000000000000000000000082525afa90811561021757600091610a88575b506305f5e1008202918083046305f5e10014901517156108b857600554610a4e916109a3565b908115610a59570490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b610aaa915060a03d60a011610ab5575b610aa281836108e7565b81019061096e565b505050905038610a28565b503d610a98565b73ffffffffffffffffffffffffffffffffffffffff6004541680610afa5750600a810290808204600a14901517156108b8576005546109a0916109a3565b9060a0600492604051938480927ffeaf968c0000000000000000000000000000000000000000000000000000000082525afa918215610217576305f5e100926109e492610b4f92600092610b58575b506109a3565b600554906109a3565b610b7291925060a03d60a011610ab557610aa281836108e7565b50505090509038610b49565b610b86610f18565b610b8e610f51565b610b96610c36565b610ba03433610f87565b610ba934610abc565b610bb5346007546108ab565b600755610bc2813361108b565b60405190348252602082015233907f6faf93231a456e552dbc9961f58d9713ee4f2e69d15f1975b050ef0911053a7b60403392a3600080808073ffffffffffffffffffffffffffffffffffffffff6006541681903415610c2c575b3491f115610217576001600255565b6108fc9150610c1d565b3360009081527f9a12e7d163daa3679fdde2f980fb077ecd75d9611348bc15a31355afb064154e602052604090205460ff1615610c6f57565b7fe2517d3f00000000000000000000000000000000000000000000000000000000600052336004527f8429d542926e6695b59ac6fbdcd9b37e8b1aeb757afab06ab60b1bb5878c3b4960245260446000fd5b806000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff331660005260205260ff6040600020541615610cfd5750565b7fe2517d3f000000000000000000000000000000000000000000000000000000006000523360045260245260446000fd5b806000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff6040600020541615600014610e0657806000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff8316600052602052604060002060017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0082541617905573ffffffffffffffffffffffffffffffffffffffff339216907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d600080a4600190565b5050600090565b806000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260ff60406000205416600014610e0657806000526001602052604060002073ffffffffffffffffffffffffffffffffffffffff831660005260205260406000207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00815416905573ffffffffffffffffffffffffffffffffffffffff339216907ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b600080a4600190565b60ff6000541615610eee57565b7f8dfc202b0000000000000000000000000000000000000000000000000000000060005260046000fd5b6002805414610f275760028055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b60ff60005416610f5d57565b7fd93c06650000000000000000000000000000000000000000000000000000000060005260046000fd5b73ffffffffffffffffffffffffffffffffffffffff16156110075715610fa957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f43726f776473616c653a20616d6f756e742069732030000000000000000000006044820152fd5b60846040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f43726f776473616c653a2062656e656669636961727920697320746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152fd5b600854909291906000901561116c5773ffffffffffffffffffffffffffffffffffffffff600954169360085494803b1561116857606483928373ffffffffffffffffffffffffffffffffffffffff93604051998a9586947ff74bc9d600000000000000000000000000000000000000000000000000000000865216600485015260248401528760448401525af193841561115b57611149939461114b575b505073ffffffffffffffffffffffffffffffffffffffff60095416611173565b565b81611155916108e7565b38611129565b50604051903d90823e3d90fd5b8280fd5b5061114991925b73ffffffffffffffffffffffffffffffffffffffff60446020926000836003541660405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865216600485015260248401525af190811561021757600091611241575b50156111e357565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f5472616e7366657220756e7375636365737366756c00000000000000000000006044820152fd5b6020813d60201161127b575b8161125a602093836108e7565b8101031261127757519081151582036112745750386111db565b80fd5b5080fd5b3d915061124d56fea26469706673582212205bf3fd9073f5061daf374d574041b6436de91daf00d672a5ae6142b05c4e543464736f6c634300081b0033",
"linkReferences": {},
"deployedLinkReferences": {}
}
declare module "@nomicfoundation/hardhat-viem/types" {
export function deployContract(
contractName: "ExampleCrowdSale",
constructorArgs: [priceFeed_: AbiParameterToPrimitiveType<{"name":"priceFeed_","type":"address"}>, token_: AbiParameterToPrimitiveType<{"name":"token_","type":"address"}>, wallet_: AbiParameterToPrimitiveType<{"name":"wallet_","type":"address"}>, usdRate_: AbiParameterToPrimitiveType<{"name":"usdRate_","type":"uint256"}>, vestingEndDate_: AbiParameterToPrimitiveType<{"name":"vestingEndDate_","type":"uint256"}>, vestingVault_: AbiParameterToPrimitiveType<{"name":"vestingVault_","type":"address"}>],
config?: DeployContractConfig
): Promise<GetContractReturnType<ExampleCrowdSale$Type["abi"]>>;
export function deployContract(
contractName: "contracts/ExampleCrowdSale.sol:ExampleCrowdSale",
constructorArgs: [priceFeed_: AbiParameterToPrimitiveType<{"name":"priceFeed_","type":"address"}>, token_: AbiParameterToPrimitiveType<{"name":"token_","type":"address"}>, wallet_: AbiParameterToPrimitiveType<{"name":"wallet_","type":"address"}>, usdRate_: AbiParameterToPrimitiveType<{"name":"usdRate_","type":"uint256"}>, vestingEndDate_: AbiParameterToPrimitiveType<{"name":"vestingEndDate_","type":"uint256"}>, vestingVault_: AbiParameterToPrimitiveType<{"name":"vestingVault_","type":"address"}>],
config?: DeployContractConfig
): Promise<GetContractReturnType<ExampleCrowdSale$Type["abi"]>>;
export function sendDeploymentTransaction(
contractName: "ExampleCrowdSale",
constructorArgs: [priceFeed_: AbiParameterToPrimitiveType<{"name":"priceFeed_","type":"address"}>, token_: AbiParameterToPrimitiveType<{"name":"token_","type":"address"}>, wallet_: AbiParameterToPrimitiveType<{"name":"wallet_","type":"address"}>, usdRate_: AbiParameterToPrimitiveType<{"name":"usdRate_","type":"uint256"}>, vestingEndDate_: AbiParameterToPrimitiveType<{"name":"vestingEndDate_","type":"uint256"}>, vestingVault_: AbiParameterToPrimitiveType<{"name":"vestingVault_","type":"address"}>],
config?: SendDeploymentTransactionConfig
): Promise<{
contract: GetContractReturnType<ExampleCrowdSale$Type["abi"]>;
deploymentTransaction: GetTransactionReturnType;
}>;
export function sendDeploymentTransaction(
contractName: "contracts/ExampleCrowdSale.sol:ExampleCrowdSale",
constructorArgs: [priceFeed_: AbiParameterToPrimitiveType<{"name":"priceFeed_","type":"address"}>, token_: AbiParameterToPrimitiveType<{"name":"token_","type":"address"}>, wallet_: AbiParameterToPrimitiveType<{"name":"wallet_","type":"address"}>, usdRate_: AbiParameterToPrimitiveType<{"name":"usdRate_","type":"uint256"}>, vestingEndDate_: AbiParameterToPrimitiveType<{"name":"vestingEndDate_","type":"uint256"}>, vestingVault_: AbiParameterToPrimitiveType<{"name":"vestingVault_","type":"address"}>],
config?: SendDeploymentTransactionConfig
): Promise<{
contract: GetContractReturnType<ExampleCrowdSale$Type["abi"]>;
deploymentTransaction: GetTransactionReturnType;
}>;
export function getContractAt(
contractName: "ExampleCrowdSale",
address: Address,
config?: GetContractAtConfig
): Promise<GetContractReturnType<ExampleCrowdSale$Type["abi"]>>;
export function getContractAt(
contractName: "contracts/ExampleCrowdSale.sol:ExampleCrowdSale",
address: Address,
config?: GetContractAtConfig
): Promise<GetContractReturnType<ExampleCrowdSale$Type["abi"]>>;
}