UNPKG

@settlemint/solidity-token-erc20-crowdsale

Version:
564 lines (558 loc) 34.9 kB
// 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"]>>; }