├── .DS_Store ├── .gitattributes ├── LICENSE ├── README.md ├── client ├── .gitignore ├── README.md ├── package-lock.json ├── package.json ├── public │ ├── _redirects │ ├── favicon.ico │ ├── images │ │ ├── config.png │ │ ├── export.png │ │ ├── folder.png │ │ ├── illustration.svg │ │ └── layers.png │ ├── index.html │ ├── logo.png │ ├── logo192.png │ ├── logo512.png │ ├── manifest.json │ └── robots.txt ├── src │ ├── App.js │ ├── components │ │ ├── Box.js │ │ ├── chip │ │ │ ├── Chip.js │ │ │ └── chip.scss │ │ ├── loading │ │ │ ├── Loading.js │ │ │ └── loading.scss │ │ └── navbar │ │ │ ├── Navbar.js │ │ │ └── navbar.scss │ ├── contracts │ │ ├── Address.json │ │ ├── AggregatorV3Interface.json │ │ ├── Context.json │ │ ├── Counters.json │ │ ├── CustomCollection.json │ │ ├── ERC165.json │ │ ├── ERC721.json │ │ ├── ERC721URIStorage.json │ │ ├── IERC165.json │ │ ├── IERC721.json │ │ ├── IERC721Metadata.json │ │ ├── IERC721Receiver.json │ │ ├── Marketplace.json │ │ ├── Migrations.json │ │ ├── Pricefeed.json │ │ ├── ReentrancyGuard.json │ │ └── Strings.json │ ├── index.js │ ├── index.scss │ ├── logo.svg │ ├── outfit_regular.ttf │ ├── pages │ │ ├── collection_page │ │ │ ├── CollectionPage.js │ │ │ └── collection_page.scss │ │ ├── doc_page │ │ │ ├── DocPage.js │ │ │ └── doc_page.scss │ │ ├── generate_page │ │ │ ├── GeneratePage.js │ │ │ └── generate_page.scss │ │ ├── landing_page │ │ │ ├── LandingPage.js │ │ │ └── landing_page.scss │ │ ├── mint_page │ │ │ ├── MintPage.js │ │ │ └── mint_page.scss │ │ ├── preview_page │ │ │ └── PreviewPage.js │ │ └── success_page │ │ │ ├── SuccessPage.js │ │ │ └── success_page.scss │ ├── providers │ │ ├── connection_provider.js │ │ ├── generate_provider.js │ │ └── mint_provider.js │ ├── serviceWorker.js │ └── services │ │ └── ipfs_service.js └── yarn.lock ├── contracts ├── CustomCollection.sol ├── Marketplace.sol ├── Migrations.sol └── PriceFeed.sol ├── migrations ├── 1_initial_migration.js └── 2_deploy_contracts.js ├── node_modules ├── .package-lock.json ├── @chainlink │ └── contracts │ │ ├── CHANGELOG.md │ │ ├── README.md │ │ ├── abi │ │ ├── @openzeppelin │ │ │ └── contracts │ │ │ │ ├── proxy │ │ │ │ └── Proxy.sol │ │ │ │ │ └── Proxy.json │ │ │ │ └── security │ │ │ │ └── Pausable.sol │ │ │ │ └── Pausable.json │ │ ├── v0.4 │ │ │ ├── Aggregator.json │ │ │ ├── AggregatorInterface.json │ │ │ ├── AggregatorV3Interface.json │ │ │ ├── BasicConsumer.json │ │ │ ├── BasicToken.json │ │ │ ├── ChainlinkClient.json │ │ │ ├── ChainlinkRequestInterface.json │ │ │ ├── Chainlinked.json │ │ │ ├── ConcreteChainlink.json │ │ │ ├── ConcreteChainlinked.json │ │ │ ├── Consumer.json │ │ │ ├── ENS.json │ │ │ ├── ENSInterface.json │ │ │ ├── ENSRegistry.json │ │ │ ├── ENSResolver.json │ │ │ ├── ERC20.json │ │ │ ├── ERC20Basic.json │ │ │ ├── ERC677.json │ │ │ ├── ERC677Receiver.json │ │ │ ├── ERC677Token.json │ │ │ ├── EmptyOracle.json │ │ │ ├── FlagsInterface.json │ │ │ ├── GetterSetter.json │ │ │ ├── LinkToken.json │ │ │ ├── LinkTokenInterface.json │ │ │ ├── MaliciousChainlinked.json │ │ │ ├── MaliciousConsumer.json │ │ │ ├── MaliciousRequester.json │ │ │ ├── Migrations.json │ │ │ ├── Oracle.json │ │ │ ├── OracleInterface.json │ │ │ ├── Ownable.json │ │ │ ├── Pointer.json │ │ │ ├── PointerInterface.json │ │ │ ├── PublicResolver.json │ │ │ ├── StandardToken.json │ │ │ └── UpdatableConsumer.json │ │ ├── v0.5 │ │ │ ├── AggregatorInterface.json │ │ │ ├── AggregatorV2V3Interface.json │ │ │ ├── AggregatorV3Interface.json │ │ │ ├── BasicConsumer.json │ │ │ ├── ChainlinkClient.json │ │ │ ├── ChainlinkRequestInterface.json │ │ │ ├── ChainlinkTestHelper.json │ │ │ ├── Consumer.json │ │ │ ├── Coordinator.json │ │ │ ├── CoordinatorInterface.json │ │ │ ├── ENSInterface.json │ │ │ ├── ENSResolver.json │ │ │ ├── EmptyAggregator.json │ │ │ ├── FlagsInterface.json │ │ │ ├── GetterSetter.json │ │ │ ├── LinkTokenInterface.json │ │ │ ├── LinkTokenReceiver.json │ │ │ ├── MaliciousChainlinkClient.json │ │ │ ├── MaliciousConsumer.json │ │ │ ├── MaliciousRequester.json │ │ │ ├── MeanAggregator.json │ │ │ ├── MedianTestHelper.json │ │ │ ├── Migrations.json │ │ │ ├── Oracle.json │ │ │ ├── OracleInterface.json │ │ │ ├── Ownable.json │ │ │ ├── PointerInterface.json │ │ │ ├── SchnorrSECP256K1.json │ │ │ ├── ServiceAgreementConsumer.json │ │ │ └── WithdrawalInterface.json │ │ ├── v0.6 │ │ │ ├── AccessControllerInterface.json │ │ │ ├── AggregatorFacade.json │ │ │ ├── AggregatorInterface.json │ │ │ ├── AggregatorV2V3Interface.json │ │ │ ├── AggregatorV3Interface.json │ │ │ ├── AggregatorValidatorInterface.json │ │ │ ├── AggregatorValidatorMock.json │ │ │ ├── BasicConsumer.json │ │ │ ├── BlockHashStoreInterface.json │ │ │ ├── BlockhashStore.json │ │ │ ├── BlockhashStoreTestHelper.json │ │ │ ├── ChainlinkClient.json │ │ │ ├── ChainlinkClientTestHelper.json │ │ │ ├── ChainlinkRequestInterface.json │ │ │ ├── ChainlinkTestHelper.json │ │ │ ├── CheckedMathTestHelper.json │ │ │ ├── ConcreteSignedSafeMath.json │ │ │ ├── Consumer.json │ │ │ ├── Denominations.json │ │ │ ├── DeviationFlaggingValidator.json │ │ │ ├── ENSInterface.json │ │ │ ├── ENSResolver.json │ │ │ ├── EmptyOracle.json │ │ │ ├── FeedRegistryInterface.json │ │ │ ├── Flags.json │ │ │ ├── FlagsInterface.json │ │ │ ├── FlagsTestHelper.json │ │ │ ├── FluxAggregator.json │ │ │ ├── FluxAggregatorTestHelper.json │ │ │ ├── GasGuzzler.json │ │ │ ├── GasGuzzlingConsumer.json │ │ │ ├── KeeperCompatible.json │ │ │ ├── KeeperCompatibleInterface.json │ │ │ ├── KeeperCompatibleTestHelper.json │ │ │ ├── LinkTokenInterface.json │ │ │ ├── LinkTokenReceiver.json │ │ │ ├── MaliciousMultiWordConsumer.json │ │ │ ├── MedianTestHelper.json │ │ │ ├── MockOracle.json │ │ │ ├── MockV3Aggregator.json │ │ │ ├── MultiWordConsumer.json │ │ │ ├── Oracle.json │ │ │ ├── OracleInterface.json │ │ │ ├── Ownable.json │ │ │ ├── Owned.json │ │ │ ├── PointerInterface.json │ │ │ ├── Reverter.json │ │ │ ├── SimpleReadAccessController.json │ │ │ ├── SimpleWriteAccessController.json │ │ │ ├── VRF.json │ │ │ ├── VRFConsumer.json │ │ │ ├── VRFConsumerBase.json │ │ │ ├── VRFCoordinator.json │ │ │ ├── VRFCoordinatorMock.json │ │ │ ├── VRFD20.json │ │ │ ├── VRFRequestIDBaseTestHelper.json │ │ │ ├── VRFTestHelper.json │ │ │ └── WithdrawalInterface.json │ │ ├── v0.7 │ │ │ ├── AggregatorInterface.json │ │ │ ├── AggregatorProxy.json │ │ │ ├── AggregatorProxyInterface.json │ │ │ ├── AggregatorV2V3Interface.json │ │ │ ├── AggregatorV3Interface.json │ │ │ ├── AuthorizedForwarder.json │ │ │ ├── AuthorizedReceiver.json │ │ │ ├── AuthorizedReceiverInterface.json │ │ │ ├── ChainlinkClient.json │ │ │ ├── ChainlinkClientTestHelper.json │ │ │ ├── ChainlinkRequestInterface.json │ │ │ ├── ChainlinkTestHelper.json │ │ │ ├── CompoundPriceFlaggingValidator.json │ │ │ ├── ConfirmedOwner.json │ │ │ ├── ConfirmedOwnerTestHelper.json │ │ │ ├── ConfirmedOwnerWithProposal.json │ │ │ ├── Consumer.json │ │ │ ├── Denominations.json │ │ │ ├── ENSInterface.json │ │ │ ├── ENSResolver.json │ │ │ ├── FeedRegistryInterface.json │ │ │ ├── FlagsInterface.json │ │ │ ├── KeeperCompatible.json │ │ │ ├── KeeperCompatibleInterface.json │ │ │ ├── KeeperCompatibleTestHelper.json │ │ │ ├── KeeperRegistry.json │ │ │ ├── KeeperRegistryBaseInterface.json │ │ │ ├── KeeperRegistryExecutableInterface.json │ │ │ ├── KeeperRegistryInterface.json │ │ │ ├── LinkTokenInterface.json │ │ │ ├── LinkTokenReceiver.json │ │ │ ├── MockCompoundOracle.json │ │ │ ├── MockV2Aggregator.json │ │ │ ├── MockV3Aggregator.json │ │ │ ├── MultiWordConsumer.json │ │ │ ├── Operator.json │ │ │ ├── OperatorFactory.json │ │ │ ├── OperatorInterface.json │ │ │ ├── OracleInterface.json │ │ │ ├── OwnableInterface.json │ │ │ ├── Pausable.json │ │ │ ├── PointerInterface.json │ │ │ ├── StalenessFlaggingValidator.json │ │ │ ├── TypeAndVersionInterface.json │ │ │ ├── UniswapAnchoredView.json │ │ │ ├── UpkeepMock.json │ │ │ ├── UpkeepRegistrationRequests.json │ │ │ ├── UpkeepReverter.json │ │ │ ├── VRFConsumerBase.json │ │ │ ├── VRFCoordinatorMock.json │ │ │ └── WithdrawalInterface.json │ │ └── v0.8 │ │ │ ├── AccessControllerInterface.json │ │ │ ├── AggregatorInterface.json │ │ │ ├── AggregatorV2V3Interface.json │ │ │ ├── AggregatorV3Interface.json │ │ │ ├── AggregatorValidatorInterface.json │ │ │ ├── ArbSys.json │ │ │ ├── ArbitrumCrossDomainForwarder.json │ │ │ ├── ArbitrumValidator.json │ │ │ ├── BlockhashStoreInterface.json │ │ │ ├── ChainlinkClient.json │ │ │ ├── ChainlinkClientTestHelper.json │ │ │ ├── ChainlinkRequestInterface.json │ │ │ ├── ChainlinkTestHelper.json │ │ │ ├── ConfirmedOwner.json │ │ │ ├── ConfirmedOwnerWithProposal.json │ │ │ ├── Cron.json │ │ │ ├── CronExternalTestHelper.json │ │ │ ├── CronInternalTestHelper.json │ │ │ ├── CronReceiver.json │ │ │ ├── CronUpkeep.json │ │ │ ├── CronUpkeepDelegate.json │ │ │ ├── CronUpkeepFactory.json │ │ │ ├── CronUpkeepTestHelper.json │ │ │ ├── CrossDomainForwarder.json │ │ │ ├── Denominations.json │ │ │ ├── ENSInterface.json │ │ │ ├── ENSResolver.json │ │ │ ├── ERC677ReceiverInterface.json │ │ │ ├── EthBalanceMonitor.json │ │ │ ├── EthBalanceMonitorExposed.json │ │ │ ├── FeedRegistryInterface.json │ │ │ ├── Flags.json │ │ │ ├── FlagsInterface.json │ │ │ ├── FlagsTestHelper.json │ │ │ ├── ForwarderInterface.json │ │ │ ├── IBridge.json │ │ │ ├── IInbox.json │ │ │ ├── IMessageProvider.json │ │ │ ├── KeeperBase.json │ │ │ ├── KeeperCompatible.json │ │ │ ├── KeeperCompatibleInterface.json │ │ │ ├── KeeperCompatibleTestHelper.json │ │ │ ├── LinkTokenInterface.json │ │ │ ├── MockAggregator.json │ │ │ ├── MockAggregatorValidator.json │ │ │ ├── OperatorInterface.json │ │ │ ├── OptimismCrossDomainForwarder.json │ │ │ ├── OptimismValidator.json │ │ │ ├── OracleInterface.json │ │ │ ├── OwnableInterface.json │ │ │ ├── PointerInterface.json │ │ │ ├── ReceiveEmitter.json │ │ │ ├── ReceiveFallbackEmitter.json │ │ │ ├── ReceiveReverter.json │ │ │ ├── SimpleReadAccessController.json │ │ │ ├── SimpleWriteAccessController.json │ │ │ ├── TypeAndVersionInterface.json │ │ │ ├── VRFConsumer.json │ │ │ ├── VRFConsumerBase.json │ │ │ ├── VRFConsumerBaseV2.json │ │ │ ├── VRFConsumerV2.json │ │ │ ├── VRFCoordinatorMock.json │ │ │ ├── VRFCoordinatorV2.json │ │ │ ├── VRFCoordinatorV2Interface.json │ │ │ ├── VRFCoordinatorV2TestHelper.json │ │ │ ├── VRFExternalSubOwnerExample.json │ │ │ ├── VRFMaliciousConsumerV2.json │ │ │ ├── VRFRequestIDBaseTestHelper.json │ │ │ ├── VRFSingleConsumerExample.json │ │ │ ├── VRFTestHelper.json │ │ │ ├── ValidatorProxy.json │ │ │ └── iOVM_CrossDomainMessenger.json │ │ ├── package.json │ │ └── src │ │ ├── v0.4 │ │ ├── Aggregator.sol │ │ ├── Chainlink.sol │ │ ├── ChainlinkClient.sol │ │ ├── Chainlinked.sol │ │ ├── ERC677Token.sol │ │ ├── LinkToken.sol │ │ ├── Migrations.sol │ │ ├── Oracle.sol │ │ ├── Pointer.sol │ │ ├── interfaces │ │ │ ├── AggregatorInterface.sol │ │ │ ├── AggregatorV3Interface.sol │ │ │ ├── ChainlinkRequestInterface.sol │ │ │ ├── ENSInterface.sol │ │ │ ├── ERC20.sol │ │ │ ├── ERC20Basic.sol │ │ │ ├── ERC677.sol │ │ │ ├── ERC677Receiver.sol │ │ │ ├── FlagsInterface.sol │ │ │ ├── LinkTokenInterface.sol │ │ │ ├── OracleInterface.sol │ │ │ └── PointerInterface.sol │ │ ├── tests │ │ │ ├── BasicConsumer.sol │ │ │ ├── ConcreteChainlink.sol │ │ │ ├── ConcreteChainlinked.sol │ │ │ ├── Consumer.sol │ │ │ ├── EmptyOracle.sol │ │ │ ├── GetterSetter.sol │ │ │ ├── MaliciousChainlink.sol │ │ │ ├── MaliciousChainlinked.sol │ │ │ ├── MaliciousConsumer.sol │ │ │ ├── MaliciousRequester.sol │ │ │ └── UpdatableConsumer.sol │ │ └── vendor │ │ │ ├── BasicToken.sol │ │ │ ├── Buffer.sol │ │ │ ├── CBOR.sol │ │ │ ├── ENS.sol │ │ │ ├── ENSRegistry.sol │ │ │ ├── ENSResolver.sol │ │ │ ├── Ownable.sol │ │ │ ├── PublicResolver.sol │ │ │ ├── SafeMathChainlink.sol │ │ │ ├── SignedSafeMath.sol │ │ │ └── StandardToken.sol │ │ ├── v0.5 │ │ ├── Chainlink.sol │ │ ├── ChainlinkClient.sol │ │ ├── LinkTokenReceiver.sol │ │ ├── Median.sol │ │ ├── Migrations.sol │ │ ├── Oracle.sol │ │ ├── dev │ │ │ ├── Coordinator.sol │ │ │ ├── CoordinatorInterface.sol │ │ │ ├── OracleSignaturesDecoder.sol │ │ │ ├── SchnorrSECP256K1.sol │ │ │ └── ServiceAgreementDecoder.sol │ │ ├── interfaces │ │ │ ├── AggregatorInterface.sol │ │ │ ├── AggregatorV2V3Interface.sol │ │ │ ├── AggregatorV3Interface.sol │ │ │ ├── ChainlinkRequestInterface.sol │ │ │ ├── ENSInterface.sol │ │ │ ├── FlagsInterface.sol │ │ │ ├── LinkTokenInterface.sol │ │ │ ├── OracleInterface.sol │ │ │ ├── PointerInterface.sol │ │ │ └── WithdrawalInterface.sol │ │ ├── tests │ │ │ ├── BasicConsumer.sol │ │ │ ├── ChainlinkTestHelper.sol │ │ │ ├── Consumer.sol │ │ │ ├── EmptyAggregator.sol │ │ │ ├── GetterSetter.sol │ │ │ ├── MaliciousChainlink.sol │ │ │ ├── MaliciousChainlinkClient.sol │ │ │ ├── MaliciousConsumer.sol │ │ │ ├── MaliciousRequester.sol │ │ │ ├── MeanAggregator.sol │ │ │ ├── MedianTestHelper.sol │ │ │ └── ServiceAgreementConsumer.sol │ │ └── vendor │ │ │ ├── Buffer.sol │ │ │ ├── CBOR.sol │ │ │ ├── ENSResolver.sol │ │ │ ├── Ownable.sol │ │ │ ├── SafeMathChainlink.sol │ │ │ └── SignedSafeMath.sol │ │ ├── v0.6 │ │ ├── AggregatorFacade.sol │ │ ├── Chainlink.sol │ │ ├── ChainlinkClient.sol │ │ ├── CheckedMath.sol │ │ ├── Denominations.sol │ │ ├── DeviationFlaggingValidator.sol │ │ ├── Flags.sol │ │ ├── FluxAggregator.sol │ │ ├── KeeperBase.sol │ │ ├── KeeperCompatible.sol │ │ ├── LinkTokenReceiver.sol │ │ ├── Median.sol │ │ ├── Oracle.sol │ │ ├── Owned.sol │ │ ├── SafeMath128.sol │ │ ├── SafeMath32.sol │ │ ├── SafeMath64.sol │ │ ├── SignedSafeMath.sol │ │ ├── SimpleReadAccessController.sol │ │ ├── SimpleWriteAccessController.sol │ │ ├── VRF.sol │ │ ├── VRFConsumerBase.sol │ │ ├── VRFCoordinator.sol │ │ ├── VRFRequestIDBase.sol │ │ ├── dev │ │ │ └── BlockhashStore.sol │ │ ├── examples │ │ │ └── VRFD20.sol │ │ ├── interfaces │ │ │ ├── AccessControllerInterface.sol │ │ │ ├── AggregatorInterface.sol │ │ │ ├── AggregatorV2V3Interface.sol │ │ │ ├── AggregatorV3Interface.sol │ │ │ ├── AggregatorValidatorInterface.sol │ │ │ ├── BlockHashStoreInterface.sol │ │ │ ├── ChainlinkRequestInterface.sol │ │ │ ├── ENSInterface.sol │ │ │ ├── FeedRegistryInterface.sol │ │ │ ├── FlagsInterface.sol │ │ │ ├── KeeperCompatibleInterface.sol │ │ │ ├── LinkTokenInterface.sol │ │ │ ├── OracleInterface.sol │ │ │ ├── PointerInterface.sol │ │ │ └── WithdrawalInterface.sol │ │ ├── tests │ │ │ ├── AggregatorValidatorMock.sol │ │ │ ├── BasicConsumer.sol │ │ │ ├── BlockhashStoreTestHelper.sol │ │ │ ├── ChainlinkClientTestHelper.sol │ │ │ ├── ChainlinkTestHelper.sol │ │ │ ├── CheckedMathTestHelper.sol │ │ │ ├── ConcreteSignedSafeMath.sol │ │ │ ├── Consumer.sol │ │ │ ├── EmptyOracle.sol │ │ │ ├── FlagsTestHelper.sol │ │ │ ├── FluxAggregatorTestHelper.sol │ │ │ ├── GasGuzzler.sol │ │ │ ├── GasGuzzlingConsumer.sol │ │ │ ├── KeeperCompatibleTestHelper.sol │ │ │ ├── MaliciousMultiWordConsumer.sol │ │ │ ├── MedianTestHelper.sol │ │ │ ├── MockOracle.sol │ │ │ ├── MockV3Aggregator.sol │ │ │ ├── MultiWordConsumer.sol │ │ │ ├── Reverter.sol │ │ │ ├── VRFConsumer.sol │ │ │ ├── VRFCoordinatorMock.sol │ │ │ ├── VRFRequestIDBaseTestHelper.sol │ │ │ └── VRFTestHelper.sol │ │ └── vendor │ │ │ ├── BufferChainlink.sol │ │ │ ├── CBORChainlink.sol │ │ │ ├── ENSResolver.sol │ │ │ ├── Ownable.sol │ │ │ └── SafeMathChainlink.sol │ │ ├── v0.7 │ │ ├── AuthorizedForwarder.sol │ │ ├── AuthorizedReceiver.sol │ │ ├── Chainlink.sol │ │ ├── ChainlinkClient.sol │ │ ├── ConfirmedOwner.sol │ │ ├── ConfirmedOwnerWithProposal.sol │ │ ├── Denominations.sol │ │ ├── KeeperBase.sol │ │ ├── KeeperCompatible.sol │ │ ├── KeeperRegistry.sol │ │ ├── LinkTokenReceiver.sol │ │ ├── Operator.sol │ │ ├── OperatorFactory.sol │ │ ├── UpkeepRegistrationRequests.sol │ │ ├── VRFConsumerBase.sol │ │ ├── VRFRequestIDBase.sol │ │ ├── dev │ │ │ ├── AggregatorProxy.sol │ │ │ ├── CompoundPriceFlaggingValidator.sol │ │ │ └── StalenessFlaggingValidator.sol │ │ ├── interfaces │ │ │ ├── AggregatorInterface.sol │ │ │ ├── AggregatorProxyInterface.sol │ │ │ ├── AggregatorV2V3Interface.sol │ │ │ ├── AggregatorV3Interface.sol │ │ │ ├── AuthorizedReceiverInterface.sol │ │ │ ├── ChainlinkRequestInterface.sol │ │ │ ├── ENSInterface.sol │ │ │ ├── FeedRegistryInterface.sol │ │ │ ├── FlagsInterface.sol │ │ │ ├── KeeperCompatibleInterface.sol │ │ │ ├── KeeperRegistryInterface.sol │ │ │ ├── LinkTokenInterface.sol │ │ │ ├── OperatorInterface.sol │ │ │ ├── OracleInterface.sol │ │ │ ├── OwnableInterface.sol │ │ │ ├── PointerInterface.sol │ │ │ ├── TypeAndVersionInterface.sol │ │ │ ├── UniswapAnchoredView.sol │ │ │ └── WithdrawalInterface.sol │ │ ├── tests │ │ │ ├── ChainlinkClientTestHelper.sol │ │ │ ├── ChainlinkTestHelper.sol │ │ │ ├── ConfirmedOwnerTestHelper.sol │ │ │ ├── Consumer.sol │ │ │ ├── KeeperCompatibleTestHelper.sol │ │ │ ├── MockCompoundOracle.sol │ │ │ ├── MockV2Aggregator.sol │ │ │ ├── MockV3Aggregator.sol │ │ │ ├── MultiWordConsumer.sol │ │ │ ├── UpkeepMock.sol │ │ │ ├── UpkeepReverter.sol │ │ │ └── VRFCoordinatorMock.sol │ │ └── vendor │ │ │ ├── Address.sol │ │ │ ├── BufferChainlink.sol │ │ │ ├── CBORChainlink.sol │ │ │ ├── Context.sol │ │ │ ├── ENSResolver.sol │ │ │ ├── Pausable.sol │ │ │ ├── ReentrancyGuard.sol │ │ │ ├── SafeMath96.sol │ │ │ ├── SafeMathChainlink.sol │ │ │ └── SignedSafeMath.sol │ │ └── v0.8 │ │ ├── Chainlink.sol │ │ ├── ChainlinkClient.sol │ │ ├── ConfirmedOwner.sol │ │ ├── ConfirmedOwnerWithProposal.sol │ │ ├── Denominations.sol │ │ ├── Flags.sol │ │ ├── KeeperBase.sol │ │ ├── KeeperCompatible.sol │ │ ├── SimpleReadAccessController.sol │ │ ├── SimpleWriteAccessController.sol │ │ ├── VRFConsumerBase.sol │ │ ├── VRFRequestIDBase.sol │ │ ├── ValidatorProxy.sol │ │ ├── dev │ │ ├── ArbitrumCrossDomainForwarder.sol │ │ ├── ArbitrumValidator.sol │ │ ├── CrossDomainForwarder.sol │ │ ├── Flags.sol │ │ ├── OptimismCrossDomainForwarder.sol │ │ ├── OptimismValidator.sol │ │ ├── VRF.sol │ │ ├── VRFConsumerBaseV2.sol │ │ ├── VRFCoordinatorV2.sol │ │ ├── interfaces │ │ │ ├── FlagsInterface.sol │ │ │ └── ForwarderInterface.sol │ │ └── vendor │ │ │ ├── @eth-optimism │ │ │ └── contracts │ │ │ │ └── 0.4.7 │ │ │ │ └── contracts │ │ │ │ └── optimistic-ethereum │ │ │ │ └── iOVM │ │ │ │ └── bridge │ │ │ │ └── messaging │ │ │ │ └── iOVM_CrossDomainMessenger.sol │ │ │ ├── arb-bridge-eth │ │ │ └── v0.8.0-custom │ │ │ │ └── contracts │ │ │ │ ├── bridge │ │ │ │ └── interfaces │ │ │ │ │ ├── IBridge.sol │ │ │ │ │ ├── IInbox.sol │ │ │ │ │ └── IMessageProvider.sol │ │ │ │ └── libraries │ │ │ │ └── AddressAliasHelper.sol │ │ │ ├── arb-os │ │ │ └── e8d9696f21 │ │ │ │ └── contracts │ │ │ │ └── arbos │ │ │ │ └── builtin │ │ │ │ └── ArbSys.sol │ │ │ └── openzeppelin-solidity │ │ │ └── v4.3.1 │ │ │ └── contracts │ │ │ └── utils │ │ │ └── Address.sol │ │ ├── factories │ │ └── CronUpkeepFactory.sol │ │ ├── interfaces │ │ ├── AccessControllerInterface.sol │ │ ├── AggregatorInterface.sol │ │ ├── AggregatorV2V3Interface.sol │ │ ├── AggregatorV3Interface.sol │ │ ├── AggregatorValidatorInterface.sol │ │ ├── BlockhashStoreInterface.sol │ │ ├── ChainlinkRequestInterface.sol │ │ ├── ENSInterface.sol │ │ ├── ERC677ReceiverInterface.sol │ │ ├── FeedRegistryInterface.sol │ │ ├── FlagsInterface.sol │ │ ├── KeeperCompatibleInterface.sol │ │ ├── LinkTokenInterface.sol │ │ ├── OperatorInterface.sol │ │ ├── OracleInterface.sol │ │ ├── OwnableInterface.sol │ │ ├── PointerInterface.sol │ │ ├── TypeAndVersionInterface.sol │ │ └── VRFCoordinatorV2Interface.sol │ │ ├── libraries │ │ ├── external │ │ │ └── Cron.sol │ │ └── internal │ │ │ └── Cron.sol │ │ ├── mocks │ │ ├── MockAggregator.sol │ │ ├── MockAggregatorValidator.sol │ │ └── VRFCoordinatorMock.sol │ │ ├── tests │ │ ├── ChainlinkClientTestHelper.sol │ │ ├── ChainlinkTestHelper.sol │ │ ├── CronReceiver.sol │ │ ├── CronTestHelper.sol │ │ ├── CronUpkeepTestHelper.sol │ │ ├── EthBalanceMonitorExposed.sol │ │ ├── FlagsTestHelper.sol │ │ ├── KeeperCompatibleTestHelper.sol │ │ ├── ReceiveEmitter.sol │ │ ├── ReceiveFallbackEmitter.sol │ │ ├── ReceiveReverter.sol │ │ ├── VRFConsumer.sol │ │ ├── VRFConsumerV2.sol │ │ ├── VRFCoordinatorV2TestHelper.sol │ │ ├── VRFExternalSubOwnerExample.sol │ │ ├── VRFMaliciousConsumerV2.sol │ │ ├── VRFRequestIDBaseTestHelper.sol │ │ ├── VRFSingleConsumerExample.sol │ │ └── VRFTestHelper.sol │ │ ├── upkeeps │ │ ├── CronUpkeep.sol │ │ ├── CronUpkeepDelegate.sol │ │ └── EthBalanceMonitor.sol │ │ ├── utils │ │ └── utils.sol │ │ └── vendor │ │ ├── BufferChainlink.sol │ │ ├── CBORChainlink.sol │ │ ├── DateTime.sol │ │ ├── ENSResolver.sol │ │ └── Strings.sol └── @openzeppelin │ └── contracts │ ├── README.md │ ├── access │ ├── AccessControl.sol │ ├── AccessControlEnumerable.sol │ ├── IAccessControl.sol │ ├── IAccessControlEnumerable.sol │ └── Ownable.sol │ ├── build │ └── contracts │ │ ├── AccessControl.json │ │ ├── AccessControlEnumerable.json │ │ ├── Address.json │ │ ├── Arrays.json │ │ ├── BeaconProxy.json │ │ ├── BitMaps.json │ │ ├── Clones.json │ │ ├── ConditionalEscrow.json │ │ ├── Context.json │ │ ├── Counters.json │ │ ├── Create2.json │ │ ├── ECDSA.json │ │ ├── EIP712.json │ │ ├── ERC1155.json │ │ ├── ERC1155Burnable.json │ │ ├── ERC1155Holder.json │ │ ├── ERC1155Pausable.json │ │ ├── ERC1155PresetMinterPauser.json │ │ ├── ERC1155Receiver.json │ │ ├── ERC1155Supply.json │ │ ├── ERC165.json │ │ ├── ERC165Checker.json │ │ ├── ERC165Storage.json │ │ ├── ERC1820Implementer.json │ │ ├── ERC1967Proxy.json │ │ ├── ERC1967Upgrade.json │ │ ├── ERC20.json │ │ ├── ERC20Burnable.json │ │ ├── ERC20Capped.json │ │ ├── ERC20FlashMint.json │ │ ├── ERC20Pausable.json │ │ ├── ERC20Permit.json │ │ ├── ERC20PresetFixedSupply.json │ │ ├── ERC20PresetMinterPauser.json │ │ ├── ERC20Snapshot.json │ │ ├── ERC20Votes.json │ │ ├── ERC20VotesComp.json │ │ ├── ERC20Wrapper.json │ │ ├── ERC2771Context.json │ │ ├── ERC721.json │ │ ├── ERC721Burnable.json │ │ ├── ERC721Enumerable.json │ │ ├── ERC721Holder.json │ │ ├── ERC721Pausable.json │ │ ├── ERC721PresetMinterPauserAutoId.json │ │ ├── ERC721URIStorage.json │ │ ├── ERC777.json │ │ ├── ERC777PresetFixedSupply.json │ │ ├── EnumerableMap.json │ │ ├── EnumerableSet.json │ │ ├── Escrow.json │ │ ├── Governor.json │ │ ├── GovernorCompatibilityBravo.json │ │ ├── GovernorCountingSimple.json │ │ ├── GovernorProposalThreshold.json │ │ ├── GovernorSettings.json │ │ ├── GovernorTimelockCompound.json │ │ ├── GovernorTimelockControl.json │ │ ├── GovernorVotes.json │ │ ├── GovernorVotesComp.json │ │ ├── GovernorVotesQuorumFraction.json │ │ ├── IAccessControl.json │ │ ├── IAccessControlEnumerable.json │ │ ├── IBeacon.json │ │ ├── ICompoundTimelock.json │ │ ├── IERC1155.json │ │ ├── IERC1155MetadataURI.json │ │ ├── IERC1155Receiver.json │ │ ├── IERC1271.json │ │ ├── IERC1363.json │ │ ├── IERC1363Receiver.json │ │ ├── IERC1363Spender.json │ │ ├── IERC165.json │ │ ├── IERC1820Implementer.json │ │ ├── IERC1820Registry.json │ │ ├── IERC20.json │ │ ├── IERC20Metadata.json │ │ ├── IERC20Permit.json │ │ ├── IERC2612.json │ │ ├── IERC2981.json │ │ ├── IERC3156FlashBorrower.json │ │ ├── IERC3156FlashLender.json │ │ ├── IERC721.json │ │ ├── IERC721Enumerable.json │ │ ├── IERC721Metadata.json │ │ ├── IERC721Receiver.json │ │ ├── IERC777.json │ │ ├── IERC777Recipient.json │ │ ├── IERC777Sender.json │ │ ├── IGovernor.json │ │ ├── IGovernorCompatibilityBravo.json │ │ ├── IGovernorTimelock.json │ │ ├── Initializable.json │ │ ├── Math.json │ │ ├── MerkleProof.json │ │ ├── MinimalForwarder.json │ │ ├── Multicall.json │ │ ├── Ownable.json │ │ ├── Pausable.json │ │ ├── PaymentSplitter.json │ │ ├── Proxy.json │ │ ├── ProxyAdmin.json │ │ ├── PullPayment.json │ │ ├── ReentrancyGuard.json │ │ ├── RefundEscrow.json │ │ ├── SafeCast.json │ │ ├── SafeERC20.json │ │ ├── SafeMath.json │ │ ├── SignatureChecker.json │ │ ├── SignedSafeMath.json │ │ ├── StorageSlot.json │ │ ├── Strings.json │ │ ├── TimelockController.json │ │ ├── Timers.json │ │ ├── TokenTimelock.json │ │ ├── TransparentUpgradeableProxy.json │ │ ├── UUPSUpgradeable.json │ │ ├── UpgradeableBeacon.json │ │ └── VestingWallet.json │ ├── finance │ ├── PaymentSplitter.sol │ └── VestingWallet.sol │ ├── governance │ ├── Governor.sol │ ├── IGovernor.sol │ ├── TimelockController.sol │ ├── compatibility │ │ ├── GovernorCompatibilityBravo.sol │ │ └── IGovernorCompatibilityBravo.sol │ └── extensions │ │ ├── GovernorCountingSimple.sol │ │ ├── GovernorProposalThreshold.sol │ │ ├── GovernorSettings.sol │ │ ├── GovernorTimelockCompound.sol │ │ ├── GovernorTimelockControl.sol │ │ ├── GovernorVotes.sol │ │ ├── GovernorVotesComp.sol │ │ ├── GovernorVotesQuorumFraction.sol │ │ └── IGovernorTimelock.sol │ ├── interfaces │ ├── IERC1155.sol │ ├── IERC1155MetadataURI.sol │ ├── IERC1155Receiver.sol │ ├── IERC1271.sol │ ├── IERC1363.sol │ ├── IERC1363Receiver.sol │ ├── IERC1363Spender.sol │ ├── IERC165.sol │ ├── IERC1820Implementer.sol │ ├── IERC1820Registry.sol │ ├── IERC20.sol │ ├── IERC20Metadata.sol │ ├── IERC2981.sol │ ├── IERC3156.sol │ ├── IERC3156FlashBorrower.sol │ ├── IERC3156FlashLender.sol │ ├── IERC721.sol │ ├── IERC721Enumerable.sol │ ├── IERC721Metadata.sol │ ├── IERC721Receiver.sol │ ├── IERC777.sol │ ├── IERC777Recipient.sol │ ├── IERC777Sender.sol │ └── draft-IERC2612.sol │ ├── metatx │ ├── ERC2771Context.sol │ └── MinimalForwarder.sol │ ├── package.json │ ├── proxy │ ├── Clones.sol │ ├── ERC1967 │ │ ├── ERC1967Proxy.sol │ │ └── ERC1967Upgrade.sol │ ├── Proxy.sol │ ├── beacon │ │ ├── BeaconProxy.sol │ │ ├── IBeacon.sol │ │ └── UpgradeableBeacon.sol │ ├── transparent │ │ ├── ProxyAdmin.sol │ │ └── TransparentUpgradeableProxy.sol │ └── utils │ │ ├── Initializable.sol │ │ └── UUPSUpgradeable.sol │ ├── security │ ├── Pausable.sol │ ├── PullPayment.sol │ └── ReentrancyGuard.sol │ ├── token │ ├── ERC1155 │ │ ├── ERC1155.sol │ │ ├── IERC1155.sol │ │ ├── IERC1155Receiver.sol │ │ ├── extensions │ │ │ ├── ERC1155Burnable.sol │ │ │ ├── ERC1155Pausable.sol │ │ │ ├── ERC1155Supply.sol │ │ │ └── IERC1155MetadataURI.sol │ │ ├── presets │ │ │ └── ERC1155PresetMinterPauser.sol │ │ └── utils │ │ │ ├── ERC1155Holder.sol │ │ │ └── ERC1155Receiver.sol │ ├── ERC20 │ │ ├── ERC20.sol │ │ ├── IERC20.sol │ │ ├── extensions │ │ │ ├── ERC20Burnable.sol │ │ │ ├── ERC20Capped.sol │ │ │ ├── ERC20FlashMint.sol │ │ │ ├── ERC20Pausable.sol │ │ │ ├── ERC20Snapshot.sol │ │ │ ├── ERC20Votes.sol │ │ │ ├── ERC20VotesComp.sol │ │ │ ├── ERC20Wrapper.sol │ │ │ ├── IERC20Metadata.sol │ │ │ ├── draft-ERC20Permit.sol │ │ │ └── draft-IERC20Permit.sol │ │ ├── presets │ │ │ ├── ERC20PresetFixedSupply.sol │ │ │ └── ERC20PresetMinterPauser.sol │ │ └── utils │ │ │ ├── SafeERC20.sol │ │ │ └── TokenTimelock.sol │ ├── ERC721 │ │ ├── ERC721.sol │ │ ├── IERC721.sol │ │ ├── IERC721Receiver.sol │ │ ├── extensions │ │ │ ├── ERC721Burnable.sol │ │ │ ├── ERC721Enumerable.sol │ │ │ ├── ERC721Pausable.sol │ │ │ ├── ERC721URIStorage.sol │ │ │ ├── IERC721Enumerable.sol │ │ │ └── IERC721Metadata.sol │ │ ├── presets │ │ │ └── ERC721PresetMinterPauserAutoId.sol │ │ └── utils │ │ │ └── ERC721Holder.sol │ └── ERC777 │ │ ├── ERC777.sol │ │ ├── IERC777.sol │ │ ├── IERC777Recipient.sol │ │ ├── IERC777Sender.sol │ │ └── presets │ │ └── ERC777PresetFixedSupply.sol │ └── utils │ ├── Address.sol │ ├── Arrays.sol │ ├── Context.sol │ ├── Counters.sol │ ├── Create2.sol │ ├── Multicall.sol │ ├── StorageSlot.sol │ ├── Strings.sol │ ├── Timers.sol │ ├── cryptography │ ├── ECDSA.sol │ ├── MerkleProof.sol │ ├── SignatureChecker.sol │ └── draft-EIP712.sol │ ├── escrow │ ├── ConditionalEscrow.sol │ ├── Escrow.sol │ └── RefundEscrow.sol │ ├── introspection │ ├── ERC165.sol │ ├── ERC165Checker.sol │ ├── ERC165Storage.sol │ ├── ERC1820Implementer.sol │ ├── IERC165.sol │ ├── IERC1820Implementer.sol │ └── IERC1820Registry.sol │ ├── math │ ├── Math.sol │ ├── SafeCast.sol │ ├── SafeMath.sol │ └── SignedSafeMath.sol │ └── structs │ ├── BitMaps.sol │ ├── EnumerableMap.sol │ └── EnumerableSet.sol ├── package-lock.json ├── sample_input_output ├── input │ ├── Background │ │ └── Black.png │ ├── Bottom lid │ │ ├── High.png │ │ ├── Low.png │ │ └── Middle.png │ ├── Eye color │ │ ├── Cyan.png │ │ ├── Green.png │ │ ├── Pink.png │ │ ├── Purple.png │ │ ├── Red.png │ │ └── Yellow.png │ ├── Eyeball │ │ ├── Red.png │ │ └── White.png │ ├── Goo │ │ └── Green.png │ ├── Iris │ │ ├── Large.png │ │ ├── Medium.png │ │ └── Small.png │ ├── Shine │ │ └── Shapes.png │ └── Top lid │ │ ├── High.png │ │ ├── Low.png │ │ └── Middle.png └── output │ ├── images │ ├── 1.png │ ├── 10.png │ ├── 11.png │ ├── 12.png │ ├── 13.png │ ├── 14.png │ ├── 15.png │ ├── 16.png │ ├── 17.png │ ├── 18.png │ ├── 19.png │ ├── 2.png │ ├── 20.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── 6.png │ ├── 7.png │ ├── 8.png │ └── 9.png │ └── metadata │ ├── 1.json │ ├── 10.json │ ├── 11.json │ ├── 12.json │ ├── 13.json │ ├── 14.json │ ├── 15.json │ ├── 16.json │ ├── 17.json │ ├── 18.json │ ├── 19.json │ ├── 2.json │ ├── 20.json │ ├── 3.json │ ├── 4.json │ ├── 5.json │ ├── 6.json │ ├── 7.json │ ├── 8.json │ └── 9.json ├── test ├── custom_collection.js └── marketplace.js └── truffle-config.js /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/.DS_Store -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.sol linguist-language=Solidity 2 | -------------------------------------------------------------------------------- /client/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | .env 8 | 9 | # testing 10 | /coverage 11 | 12 | # production 13 | /build 14 | 15 | # misc 16 | .DS_Store 17 | .env.local 18 | .env.development.local 19 | .env.test.local 20 | .env.production.local 21 | 22 | npm-debug.log* 23 | yarn-debug.log* 24 | yarn-error.log* 25 | -------------------------------------------------------------------------------- /client/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "client", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "apollo-client": "^2.6.10", 7 | "axios": "^0.24.0", 8 | "canvas": "^2.8.0", 9 | "node-sass": "^6.0.1", 10 | "react": "17.0.2", 11 | "react-dom": "17.0.2", 12 | "react-router": "^6.0.2", 13 | "react-router-dom": "^6.0.2", 14 | "react-scripts": "4.0.3", 15 | "web3": "1.5.3" 16 | }, 17 | "scripts": { 18 | "start": "react-scripts start", 19 | "build": "react-scripts build", 20 | "test": "react-scripts test", 21 | "eject": "react-scripts eject" 22 | }, 23 | "eslintConfig": { 24 | "extends": "react-app" 25 | }, 26 | "browserslist": { 27 | "production": [ 28 | ">0.2%", 29 | "not dead", 30 | "not op_mini all" 31 | ], 32 | "development": [ 33 | "last 1 chrome version", 34 | "last 1 firefox version", 35 | "last 1 safari version" 36 | ] 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /client/public/_redirects: -------------------------------------------------------------------------------- 1 | /* /index.html 200 -------------------------------------------------------------------------------- /client/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/client/public/favicon.ico -------------------------------------------------------------------------------- /client/public/images/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/client/public/images/config.png -------------------------------------------------------------------------------- /client/public/images/export.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/client/public/images/export.png -------------------------------------------------------------------------------- /client/public/images/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/client/public/images/folder.png -------------------------------------------------------------------------------- /client/public/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/client/public/images/layers.png -------------------------------------------------------------------------------- /client/public/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/client/public/logo.png -------------------------------------------------------------------------------- /client/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/client/public/logo192.png -------------------------------------------------------------------------------- /client/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/client/public/logo512.png -------------------------------------------------------------------------------- /client/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /client/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | -------------------------------------------------------------------------------- /client/src/components/Box.js: -------------------------------------------------------------------------------- 1 | import React from "react"; 2 | 3 | export function Box(props) { 4 | return
5 | } -------------------------------------------------------------------------------- /client/src/components/chip/Chip.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import './chip.scss' 3 | 4 | function Chip(props) { 5 | return ( 6 |
7 |

{props.content}

8 |
9 | ); 10 | } 11 | 12 | export default Chip; -------------------------------------------------------------------------------- /client/src/components/chip/chip.scss: -------------------------------------------------------------------------------- 1 | .chip-container { 2 | padding: 5px 10px; 3 | border-radius: 10px; 4 | text-align: center; 5 | background-color: var(--secondary); 6 | cursor: pointer; 7 | } 8 | 9 | .chip-content { 10 | font-size: var(--xs-text-size); 11 | } -------------------------------------------------------------------------------- /client/src/components/loading/Loading.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import { Box } from '../Box'; 3 | import './loading.scss' 4 | 5 | function Loading(props) { 6 | 7 | return ( 8 |
9 |
10 |
11 | 12 |
13 | 14 |
15 | 16 |
17 |
{props.message}
18 |
19 | ); 20 | } 21 | 22 | export default Loading; -------------------------------------------------------------------------------- /client/src/components/navbar/navbar.scss: -------------------------------------------------------------------------------- 1 | nav { 2 | height: 70px; 3 | width: 100%; 4 | padding: 0% var(--body-padding); 5 | display: flex; 6 | justify-content: space-between; 7 | align-items: center; 8 | } 9 | 10 | .logo { 11 | font-size: var(--lg-text-size); 12 | letter-spacing: 1.5px; 13 | cursor: pointer; 14 | } 15 | 16 | .nav-btn-flex { 17 | display: flex; 18 | } 19 | 20 | .border-button { 21 | background-color: var(--bg-color); 22 | font-size: var(--xs-text-size); 23 | padding: 5px 10px; 24 | border: 1px solid black; 25 | border-radius: 10px; 26 | cursor: pointer; 27 | } 28 | 29 | -------------------------------------------------------------------------------- /client/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import './index.scss'; 4 | import App from './App'; 5 | import * as serviceWorker from './serviceWorker'; 6 | import { ConnectionProvider } from './providers/connection_provider'; 7 | import { GenerateProvider } from './providers/generate_provider'; 8 | import { MintProvider } from './providers/mint_provider'; 9 | 10 | // Wrapped in ConnectionProvider to get a global state using context API 11 | ReactDOM.render( 12 | 13 | 14 | 15 | 16 | 17 | 18 | , 19 | document.getElementById('root') 20 | ); 21 | 22 | // If you want your app to work offline and load faster, you can change 23 | // unregister() to register() below. Note this comes with some pitfalls. 24 | // Learn more about service workers: https://bit.ly/CRA-PWA 25 | serviceWorker.unregister(); 26 | -------------------------------------------------------------------------------- /client/src/outfit_regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/client/src/outfit_regular.ttf -------------------------------------------------------------------------------- /client/src/pages/collection_page/collection_page.scss: -------------------------------------------------------------------------------- 1 | .image-picker { 2 | height: 250px; 3 | width: 250px; 4 | background-color: var(--secondary); 5 | border-radius: 10px; 6 | cursor: pointer; 7 | } 8 | 9 | .flex-child, .selltype { 10 | flex: 1; 11 | display: flex; 12 | align-items: center; 13 | 14 | label { 15 | font-size: var(--sm-text-size); 16 | } 17 | } 18 | 19 | .selltype { 20 | justify-content: space-between; 21 | } 22 | 23 | 24 | -------------------------------------------------------------------------------- /client/src/pages/doc_page/doc_page.scss: -------------------------------------------------------------------------------- 1 | .full-image { 2 | width: calc(100vw - 2 * var(--body-padding)) 3 | } -------------------------------------------------------------------------------- /client/src/pages/landing_page/landing_page.scss: -------------------------------------------------------------------------------- 1 | .landing-flex { 2 | display: flex; 3 | justify-content: space-between; 4 | align-items: center; 5 | } 6 | 7 | .illustration { 8 | height: 375px; 9 | } 10 | 11 | @media (max-width: 1280px) { 12 | .illustration { 13 | height: 300px; 14 | } 15 | } 16 | 17 | ul{ 18 | margin-left: 1.7rem; 19 | text-align: left; 20 | } -------------------------------------------------------------------------------- /client/src/pages/mint_page/mint_page.scss: -------------------------------------------------------------------------------- 1 | .info-flex { 2 | display: flex; 3 | justify-content: space-between; 4 | align-items: center; 5 | } 6 | 7 | .collection-details { 8 | width: 50%; 9 | 10 | .info-box { 11 | display: flex; 12 | justify-content: flex-start; 13 | 14 | .image-box { 15 | aspect-ratio: 1/1; 16 | border-radius: 10px; 17 | height: 100px; 18 | width: 100px 19 | } 20 | 21 | .describe-box { 22 | display: flex; 23 | flex-direction: column; 24 | } 25 | } 26 | } 27 | 28 | .listing-details { 29 | width: 50%; 30 | } 31 | -------------------------------------------------------------------------------- /client/src/pages/success_page/success_page.scss: -------------------------------------------------------------------------------- 1 | .success-parent { 2 | height: calc(100vh - 70px); 3 | } 4 | 5 | .success-flex { 6 | display: flex; 7 | flex-direction: column; 8 | align-items: center; 9 | 10 | .link { 11 | font-size: var(--text-size); 12 | text-decoration: underline; 13 | cursor: pointer; 14 | } 15 | } -------------------------------------------------------------------------------- /client/src/providers/mint_provider.js: -------------------------------------------------------------------------------- 1 | import React, { useContext, useState } from "react"; 2 | 3 | const MintContext = React.createContext(); 4 | 5 | export function useMint() { 6 | return useContext(MintContext); 7 | } 8 | 9 | export function MintProvider(props) { 10 | const [mintState, setMintState] = useState({ 11 | nfts: [], 12 | collection: {} 13 | }); 14 | 15 | return ( 16 | <> 17 | 23 | {props.children} 24 | 25 | 26 | ); 27 | } 28 | -------------------------------------------------------------------------------- /client/src/services/ipfs_service.js: -------------------------------------------------------------------------------- 1 | import axios from "axios"; 2 | 3 | const imageInstance = axios.create({ 4 | baseURL: 'https://api.nft.storage/upload', 5 | headers: { 6 | 'Authorization': 'Bearer ' + process.env.REACT_APP_IMG_KEY, 7 | 'Content-Type': 'image/*', 8 | 'Access-Control-Allow-Origin': '*' 9 | } 10 | }); 11 | 12 | const metadataInstance = axios.create({ 13 | baseURL: 'https://api.nft.storage/upload', 14 | headers: { 15 | 'Authorization': 'Bearer ' + process.env.REACT_APP_METADATA_KEY, 16 | 'Content-Type': 'application/json', 17 | 'Access-Control-Allow-Origin': '*' 18 | } 19 | }); 20 | 21 | async function uploadImage(blob) { 22 | const response = await imageInstance.post("/", blob) 23 | return response.data.value.cid; 24 | } 25 | 26 | async function uploadMetadata(metadata) { 27 | const response = await metadataInstance.post("/", metadata) 28 | return response.data.value.cid; 29 | } 30 | 31 | export { uploadImage, uploadMetadata } -------------------------------------------------------------------------------- /contracts/Migrations.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.6; 3 | 4 | contract Migrations { 5 | address public owner; 6 | uint256 public last_completed_migration; 7 | 8 | modifier restricted() { 9 | if (msg.sender == owner) _; 10 | } 11 | 12 | constructor() { 13 | owner = msg.sender; 14 | } 15 | 16 | function setCompleted(uint256 completed) public restricted { 17 | last_completed_migration = completed; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /contracts/PriceFeed.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.6; 3 | 4 | import "@chainlink/contracts/src/v0.8/interfaces/AggregatorV3Interface.sol"; 5 | 6 | contract Pricefeed { 7 | 8 | AggregatorV3Interface internal priceFeed; 9 | 10 | /** 11 | * Network: Mumbai Testnet 12 | * Aggregator: MATIC/USD 13 | * Decimal: 8 14 | * Address: 0xd0D5e3DB44DE05E9F294BB0a3bEEaF030DE24Ada 15 | */ 16 | constructor() { 17 | priceFeed = AggregatorV3Interface(0xd0D5e3DB44DE05E9F294BB0a3bEEaF030DE24Ada); 18 | } 19 | 20 | /** 21 | * Returns the latest price 22 | */ 23 | function getLatestPrice() public view returns (int) { 24 | ( 25 | uint80 roundID, 26 | int price, 27 | uint startedAt, 28 | uint timeStamp, 29 | uint80 answeredInRound 30 | ) = priceFeed.latestRoundData(); 31 | return price; 32 | } 33 | } -------------------------------------------------------------------------------- /migrations/1_initial_migration.js: -------------------------------------------------------------------------------- 1 | var Migrations = artifacts.require("./Migrations.sol"); 2 | 3 | module.exports = function(deployer) { 4 | deployer.deploy(Migrations); 5 | }; 6 | -------------------------------------------------------------------------------- /migrations/2_deploy_contracts.js: -------------------------------------------------------------------------------- 1 | var Marketplace = artifacts.require('./Marketplace.sol'); 2 | 3 | module.exports = function (deployer) { 4 | deployer.deploy(Marketplace); 5 | }; 6 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/@openzeppelin/contracts/proxy/Proxy.sol/Proxy.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "stateMutability": "payable", 4 | "type": "fallback" 5 | }, 6 | { 7 | "stateMutability": "payable", 8 | "type": "receive" 9 | } 10 | ] 11 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/@openzeppelin/contracts/security/Pausable.sol/Pausable.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": false, 7 | "internalType": "address", 8 | "name": "account", 9 | "type": "address" 10 | } 11 | ], 12 | "name": "Paused", 13 | "type": "event" 14 | }, 15 | { 16 | "anonymous": false, 17 | "inputs": [ 18 | { 19 | "indexed": false, 20 | "internalType": "address", 21 | "name": "account", 22 | "type": "address" 23 | } 24 | ], 25 | "name": "Unpaused", 26 | "type": "event" 27 | }, 28 | { 29 | "inputs": [], 30 | "name": "paused", 31 | "outputs": [ 32 | { 33 | "internalType": "bool", 34 | "name": "", 35 | "type": "bool" 36 | } 37 | ], 38 | "stateMutability": "view", 39 | "type": "function" 40 | } 41 | ] 42 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.4/ChainlinkClient.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": true, 7 | "name": "id", 8 | "type": "bytes32" 9 | } 10 | ], 11 | "name": "ChainlinkRequested", 12 | "type": "event" 13 | }, 14 | { 15 | "anonymous": false, 16 | "inputs": [ 17 | { 18 | "indexed": true, 19 | "name": "id", 20 | "type": "bytes32" 21 | } 22 | ], 23 | "name": "ChainlinkFulfilled", 24 | "type": "event" 25 | }, 26 | { 27 | "anonymous": false, 28 | "inputs": [ 29 | { 30 | "indexed": true, 31 | "name": "id", 32 | "type": "bytes32" 33 | } 34 | ], 35 | "name": "ChainlinkCancelled", 36 | "type": "event" 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.4/Chainlinked.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": true, 7 | "name": "id", 8 | "type": "bytes32" 9 | } 10 | ], 11 | "name": "ChainlinkRequested", 12 | "type": "event" 13 | }, 14 | { 15 | "anonymous": false, 16 | "inputs": [ 17 | { 18 | "indexed": true, 19 | "name": "id", 20 | "type": "bytes32" 21 | } 22 | ], 23 | "name": "ChainlinkFulfilled", 24 | "type": "event" 25 | }, 26 | { 27 | "anonymous": false, 28 | "inputs": [ 29 | { 30 | "indexed": true, 31 | "name": "id", 32 | "type": "bytes32" 33 | } 34 | ], 35 | "name": "ChainlinkCancelled", 36 | "type": "event" 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.4/ENSResolver.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [ 5 | { 6 | "name": "node", 7 | "type": "bytes32" 8 | } 9 | ], 10 | "name": "addr", 11 | "outputs": [ 12 | { 13 | "name": "", 14 | "type": "address" 15 | } 16 | ], 17 | "payable": false, 18 | "stateMutability": "view", 19 | "type": "function" 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.4/ERC677Receiver.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": false, 4 | "inputs": [ 5 | { 6 | "name": "_sender", 7 | "type": "address" 8 | }, 9 | { 10 | "name": "_value", 11 | "type": "uint256" 12 | }, 13 | { 14 | "name": "_data", 15 | "type": "bytes" 16 | } 17 | ], 18 | "name": "onTokenTransfer", 19 | "outputs": [], 20 | "payable": false, 21 | "stateMutability": "nonpayable", 22 | "type": "function" 23 | } 24 | ] 25 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.4/MaliciousChainlinked.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": true, 7 | "name": "id", 8 | "type": "bytes32" 9 | } 10 | ], 11 | "name": "ChainlinkRequested", 12 | "type": "event" 13 | }, 14 | { 15 | "anonymous": false, 16 | "inputs": [ 17 | { 18 | "indexed": true, 19 | "name": "id", 20 | "type": "bytes32" 21 | } 22 | ], 23 | "name": "ChainlinkFulfilled", 24 | "type": "event" 25 | }, 26 | { 27 | "anonymous": false, 28 | "inputs": [ 29 | { 30 | "indexed": true, 31 | "name": "id", 32 | "type": "bytes32" 33 | } 34 | ], 35 | "name": "ChainlinkCancelled", 36 | "type": "event" 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.4/Pointer.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [], 5 | "name": "getAddress", 6 | "outputs": [ 7 | { 8 | "name": "", 9 | "type": "address" 10 | } 11 | ], 12 | "payable": false, 13 | "stateMutability": "view", 14 | "type": "function" 15 | }, 16 | { 17 | "inputs": [ 18 | { 19 | "name": "_addr", 20 | "type": "address" 21 | } 22 | ], 23 | "payable": false, 24 | "stateMutability": "nonpayable", 25 | "type": "constructor" 26 | } 27 | ] 28 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.4/PointerInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [], 5 | "name": "getAddress", 6 | "outputs": [ 7 | { 8 | "name": "", 9 | "type": "address" 10 | } 11 | ], 12 | "payable": false, 13 | "stateMutability": "view", 14 | "type": "function" 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.5/ChainlinkClient.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": true, 7 | "name": "id", 8 | "type": "bytes32" 9 | } 10 | ], 11 | "name": "ChainlinkRequested", 12 | "type": "event" 13 | }, 14 | { 15 | "anonymous": false, 16 | "inputs": [ 17 | { 18 | "indexed": true, 19 | "name": "id", 20 | "type": "bytes32" 21 | } 22 | ], 23 | "name": "ChainlinkFulfilled", 24 | "type": "event" 25 | }, 26 | { 27 | "anonymous": false, 28 | "inputs": [ 29 | { 30 | "indexed": true, 31 | "name": "id", 32 | "type": "bytes32" 33 | } 34 | ], 35 | "name": "ChainlinkCancelled", 36 | "type": "event" 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.5/ENSResolver.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [ 5 | { 6 | "name": "node", 7 | "type": "bytes32" 8 | } 9 | ], 10 | "name": "addr", 11 | "outputs": [ 12 | { 13 | "name": "", 14 | "type": "address" 15 | } 16 | ], 17 | "payable": false, 18 | "stateMutability": "view", 19 | "type": "function" 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.5/LinkTokenReceiver.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [], 5 | "name": "getChainlinkToken", 6 | "outputs": [ 7 | { 8 | "name": "", 9 | "type": "address" 10 | } 11 | ], 12 | "payable": false, 13 | "stateMutability": "view", 14 | "type": "function" 15 | }, 16 | { 17 | "constant": false, 18 | "inputs": [ 19 | { 20 | "name": "_sender", 21 | "type": "address" 22 | }, 23 | { 24 | "name": "_amount", 25 | "type": "uint256" 26 | }, 27 | { 28 | "name": "_data", 29 | "type": "bytes" 30 | } 31 | ], 32 | "name": "onTokenTransfer", 33 | "outputs": [], 34 | "payable": false, 35 | "stateMutability": "nonpayable", 36 | "type": "function" 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.5/MaliciousChainlinkClient.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": true, 7 | "name": "id", 8 | "type": "bytes32" 9 | } 10 | ], 11 | "name": "ChainlinkRequested", 12 | "type": "event" 13 | }, 14 | { 15 | "anonymous": false, 16 | "inputs": [ 17 | { 18 | "indexed": true, 19 | "name": "id", 20 | "type": "bytes32" 21 | } 22 | ], 23 | "name": "ChainlinkFulfilled", 24 | "type": "event" 25 | }, 26 | { 27 | "anonymous": false, 28 | "inputs": [ 29 | { 30 | "indexed": true, 31 | "name": "id", 32 | "type": "bytes32" 33 | } 34 | ], 35 | "name": "ChainlinkCancelled", 36 | "type": "event" 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.5/MedianTestHelper.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [ 5 | { 6 | "name": "_list", 7 | "type": "int256[]" 8 | } 9 | ], 10 | "name": "publicGet", 11 | "outputs": [ 12 | { 13 | "name": "", 14 | "type": "int256" 15 | } 16 | ], 17 | "payable": false, 18 | "stateMutability": "pure", 19 | "type": "function" 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.5/PointerInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [], 5 | "name": "getAddress", 6 | "outputs": [ 7 | { 8 | "name": "", 9 | "type": "address" 10 | } 11 | ], 12 | "payable": false, 13 | "stateMutability": "view", 14 | "type": "function" 15 | } 16 | ] 17 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.5/WithdrawalInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "constant": true, 4 | "inputs": [], 5 | "name": "withdrawable", 6 | "outputs": [ 7 | { 8 | "name": "", 9 | "type": "uint256" 10 | } 11 | ], 12 | "payable": false, 13 | "stateMutability": "view", 14 | "type": "function" 15 | }, 16 | { 17 | "constant": false, 18 | "inputs": [ 19 | { 20 | "name": "recipient", 21 | "type": "address" 22 | }, 23 | { 24 | "name": "amount", 25 | "type": "uint256" 26 | } 27 | ], 28 | "name": "withdraw", 29 | "outputs": [], 30 | "payable": false, 31 | "stateMutability": "nonpayable", 32 | "type": "function" 33 | } 34 | ] 35 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/AccessControllerInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "address", 6 | "name": "user", 7 | "type": "address" 8 | }, 9 | { 10 | "internalType": "bytes", 11 | "name": "data", 12 | "type": "bytes" 13 | } 14 | ], 15 | "name": "hasAccess", 16 | "outputs": [ 17 | { 18 | "internalType": "bool", 19 | "name": "", 20 | "type": "bool" 21 | } 22 | ], 23 | "stateMutability": "view", 24 | "type": "function" 25 | } 26 | ] 27 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/AggregatorValidatorInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "uint256", 6 | "name": "previousRoundId", 7 | "type": "uint256" 8 | }, 9 | { 10 | "internalType": "int256", 11 | "name": "previousAnswer", 12 | "type": "int256" 13 | }, 14 | { 15 | "internalType": "uint256", 16 | "name": "currentRoundId", 17 | "type": "uint256" 18 | }, 19 | { 20 | "internalType": "int256", 21 | "name": "currentAnswer", 22 | "type": "int256" 23 | } 24 | ], 25 | "name": "validate", 26 | "outputs": [ 27 | { 28 | "internalType": "bool", 29 | "name": "", 30 | "type": "bool" 31 | } 32 | ], 33 | "stateMutability": "nonpayable", 34 | "type": "function" 35 | } 36 | ] 37 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/BlockHashStoreInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "uint256", 6 | "name": "number", 7 | "type": "uint256" 8 | } 9 | ], 10 | "name": "getBlockhash", 11 | "outputs": [ 12 | { 13 | "internalType": "bytes32", 14 | "name": "", 15 | "type": "bytes32" 16 | } 17 | ], 18 | "stateMutability": "view", 19 | "type": "function" 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/ChainlinkClient.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": true, 7 | "internalType": "bytes32", 8 | "name": "id", 9 | "type": "bytes32" 10 | } 11 | ], 12 | "name": "ChainlinkCancelled", 13 | "type": "event" 14 | }, 15 | { 16 | "anonymous": false, 17 | "inputs": [ 18 | { 19 | "indexed": true, 20 | "internalType": "bytes32", 21 | "name": "id", 22 | "type": "bytes32" 23 | } 24 | ], 25 | "name": "ChainlinkFulfilled", 26 | "type": "event" 27 | }, 28 | { 29 | "anonymous": false, 30 | "inputs": [ 31 | { 32 | "indexed": true, 33 | "internalType": "bytes32", 34 | "name": "id", 35 | "type": "bytes32" 36 | } 37 | ], 38 | "name": "ChainlinkRequested", 39 | "type": "event" 40 | } 41 | ] 42 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/ENSResolver.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes32", 6 | "name": "node", 7 | "type": "bytes32" 8 | } 9 | ], 10 | "name": "addr", 11 | "outputs": [ 12 | { 13 | "internalType": "address", 14 | "name": "", 15 | "type": "address" 16 | } 17 | ], 18 | "stateMutability": "view", 19 | "type": "function" 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/GasGuzzler.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "stateMutability": "payable", 4 | "type": "fallback" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/KeeperCompatible.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes", 6 | "name": "checkData", 7 | "type": "bytes" 8 | } 9 | ], 10 | "name": "checkUpkeep", 11 | "outputs": [ 12 | { 13 | "internalType": "bool", 14 | "name": "upkeepNeeded", 15 | "type": "bool" 16 | }, 17 | { 18 | "internalType": "bytes", 19 | "name": "performData", 20 | "type": "bytes" 21 | } 22 | ], 23 | "stateMutability": "nonpayable", 24 | "type": "function" 25 | }, 26 | { 27 | "inputs": [ 28 | { 29 | "internalType": "bytes", 30 | "name": "performData", 31 | "type": "bytes" 32 | } 33 | ], 34 | "name": "performUpkeep", 35 | "outputs": [], 36 | "stateMutability": "nonpayable", 37 | "type": "function" 38 | } 39 | ] 40 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/KeeperCompatibleInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes", 6 | "name": "checkData", 7 | "type": "bytes" 8 | } 9 | ], 10 | "name": "checkUpkeep", 11 | "outputs": [ 12 | { 13 | "internalType": "bool", 14 | "name": "upkeepNeeded", 15 | "type": "bool" 16 | }, 17 | { 18 | "internalType": "bytes", 19 | "name": "performData", 20 | "type": "bytes" 21 | } 22 | ], 23 | "stateMutability": "nonpayable", 24 | "type": "function" 25 | }, 26 | { 27 | "inputs": [ 28 | { 29 | "internalType": "bytes", 30 | "name": "performData", 31 | "type": "bytes" 32 | } 33 | ], 34 | "name": "performUpkeep", 35 | "outputs": [], 36 | "stateMutability": "nonpayable", 37 | "type": "function" 38 | } 39 | ] 40 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/KeeperCompatibleTestHelper.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes", 6 | "name": "", 7 | "type": "bytes" 8 | } 9 | ], 10 | "name": "checkUpkeep", 11 | "outputs": [ 12 | { 13 | "internalType": "bool", 14 | "name": "", 15 | "type": "bool" 16 | }, 17 | { 18 | "internalType": "bytes", 19 | "name": "", 20 | "type": "bytes" 21 | } 22 | ], 23 | "stateMutability": "nonpayable", 24 | "type": "function" 25 | }, 26 | { 27 | "inputs": [ 28 | { 29 | "internalType": "bytes", 30 | "name": "", 31 | "type": "bytes" 32 | } 33 | ], 34 | "name": "performUpkeep", 35 | "outputs": [], 36 | "stateMutability": "nonpayable", 37 | "type": "function" 38 | }, 39 | { 40 | "inputs": [], 41 | "name": "testCannotExecute", 42 | "outputs": [], 43 | "stateMutability": "view", 44 | "type": "function" 45 | } 46 | ] 47 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/LinkTokenReceiver.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "getChainlinkToken", 5 | "outputs": [ 6 | { 7 | "internalType": "address", 8 | "name": "", 9 | "type": "address" 10 | } 11 | ], 12 | "stateMutability": "view", 13 | "type": "function" 14 | }, 15 | { 16 | "inputs": [ 17 | { 18 | "internalType": "address", 19 | "name": "_sender", 20 | "type": "address" 21 | }, 22 | { 23 | "internalType": "uint256", 24 | "name": "_amount", 25 | "type": "uint256" 26 | }, 27 | { 28 | "internalType": "bytes", 29 | "name": "_data", 30 | "type": "bytes" 31 | } 32 | ], 33 | "name": "onTokenTransfer", 34 | "outputs": [], 35 | "stateMutability": "nonpayable", 36 | "type": "function" 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/PointerInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "getAddress", 5 | "outputs": [ 6 | { 7 | "internalType": "address", 8 | "name": "", 9 | "type": "address" 10 | } 11 | ], 12 | "stateMutability": "view", 13 | "type": "function" 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/Reverter.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "stateMutability": "payable", 4 | "type": "fallback" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/VRF.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "PROOF_LENGTH", 5 | "outputs": [ 6 | { 7 | "internalType": "uint256", 8 | "name": "", 9 | "type": "uint256" 10 | } 11 | ], 12 | "stateMutability": "view", 13 | "type": "function" 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/VRFConsumerBase.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "address", 6 | "name": "_vrfCoordinator", 7 | "type": "address" 8 | }, 9 | { 10 | "internalType": "address", 11 | "name": "_link", 12 | "type": "address" 13 | } 14 | ], 15 | "stateMutability": "nonpayable", 16 | "type": "constructor" 17 | }, 18 | { 19 | "inputs": [ 20 | { 21 | "internalType": "bytes32", 22 | "name": "requestId", 23 | "type": "bytes32" 24 | }, 25 | { 26 | "internalType": "uint256", 27 | "name": "randomness", 28 | "type": "uint256" 29 | } 30 | ], 31 | "name": "rawFulfillRandomness", 32 | "outputs": [], 33 | "stateMutability": "nonpayable", 34 | "type": "function" 35 | } 36 | ] 37 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.6/WithdrawalInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "address", 6 | "name": "recipient", 7 | "type": "address" 8 | }, 9 | { 10 | "internalType": "uint256", 11 | "name": "amount", 12 | "type": "uint256" 13 | } 14 | ], 15 | "name": "withdraw", 16 | "outputs": [], 17 | "stateMutability": "nonpayable", 18 | "type": "function" 19 | }, 20 | { 21 | "inputs": [], 22 | "name": "withdrawable", 23 | "outputs": [ 24 | { 25 | "internalType": "uint256", 26 | "name": "", 27 | "type": "uint256" 28 | } 29 | ], 30 | "stateMutability": "view", 31 | "type": "function" 32 | } 33 | ] 34 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/ChainlinkClient.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": true, 7 | "internalType": "bytes32", 8 | "name": "id", 9 | "type": "bytes32" 10 | } 11 | ], 12 | "name": "ChainlinkCancelled", 13 | "type": "event" 14 | }, 15 | { 16 | "anonymous": false, 17 | "inputs": [ 18 | { 19 | "indexed": true, 20 | "internalType": "bytes32", 21 | "name": "id", 22 | "type": "bytes32" 23 | } 24 | ], 25 | "name": "ChainlinkFulfilled", 26 | "type": "event" 27 | }, 28 | { 29 | "anonymous": false, 30 | "inputs": [ 31 | { 32 | "indexed": true, 33 | "internalType": "bytes32", 34 | "name": "id", 35 | "type": "bytes32" 36 | } 37 | ], 38 | "name": "ChainlinkRequested", 39 | "type": "event" 40 | } 41 | ] 42 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/ENSResolver.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes32", 6 | "name": "node", 7 | "type": "bytes32" 8 | } 9 | ], 10 | "name": "addr", 11 | "outputs": [ 12 | { 13 | "internalType": "address", 14 | "name": "", 15 | "type": "address" 16 | } 17 | ], 18 | "stateMutability": "view", 19 | "type": "function" 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/KeeperCompatible.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes", 6 | "name": "checkData", 7 | "type": "bytes" 8 | } 9 | ], 10 | "name": "checkUpkeep", 11 | "outputs": [ 12 | { 13 | "internalType": "bool", 14 | "name": "upkeepNeeded", 15 | "type": "bool" 16 | }, 17 | { 18 | "internalType": "bytes", 19 | "name": "performData", 20 | "type": "bytes" 21 | } 22 | ], 23 | "stateMutability": "nonpayable", 24 | "type": "function" 25 | }, 26 | { 27 | "inputs": [ 28 | { 29 | "internalType": "bytes", 30 | "name": "performData", 31 | "type": "bytes" 32 | } 33 | ], 34 | "name": "performUpkeep", 35 | "outputs": [], 36 | "stateMutability": "nonpayable", 37 | "type": "function" 38 | } 39 | ] 40 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/KeeperCompatibleInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes", 6 | "name": "checkData", 7 | "type": "bytes" 8 | } 9 | ], 10 | "name": "checkUpkeep", 11 | "outputs": [ 12 | { 13 | "internalType": "bool", 14 | "name": "upkeepNeeded", 15 | "type": "bool" 16 | }, 17 | { 18 | "internalType": "bytes", 19 | "name": "performData", 20 | "type": "bytes" 21 | } 22 | ], 23 | "stateMutability": "nonpayable", 24 | "type": "function" 25 | }, 26 | { 27 | "inputs": [ 28 | { 29 | "internalType": "bytes", 30 | "name": "performData", 31 | "type": "bytes" 32 | } 33 | ], 34 | "name": "performUpkeep", 35 | "outputs": [], 36 | "stateMutability": "nonpayable", 37 | "type": "function" 38 | } 39 | ] 40 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/KeeperCompatibleTestHelper.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes", 6 | "name": "", 7 | "type": "bytes" 8 | } 9 | ], 10 | "name": "checkUpkeep", 11 | "outputs": [ 12 | { 13 | "internalType": "bool", 14 | "name": "", 15 | "type": "bool" 16 | }, 17 | { 18 | "internalType": "bytes", 19 | "name": "", 20 | "type": "bytes" 21 | } 22 | ], 23 | "stateMutability": "nonpayable", 24 | "type": "function" 25 | }, 26 | { 27 | "inputs": [ 28 | { 29 | "internalType": "bytes", 30 | "name": "", 31 | "type": "bytes" 32 | } 33 | ], 34 | "name": "performUpkeep", 35 | "outputs": [], 36 | "stateMutability": "nonpayable", 37 | "type": "function" 38 | }, 39 | { 40 | "inputs": [], 41 | "name": "testCannotExecute", 42 | "outputs": [], 43 | "stateMutability": "view", 44 | "type": "function" 45 | } 46 | ] 47 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/LinkTokenReceiver.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "getChainlinkToken", 5 | "outputs": [ 6 | { 7 | "internalType": "address", 8 | "name": "", 9 | "type": "address" 10 | } 11 | ], 12 | "stateMutability": "view", 13 | "type": "function" 14 | }, 15 | { 16 | "inputs": [ 17 | { 18 | "internalType": "address", 19 | "name": "sender", 20 | "type": "address" 21 | }, 22 | { 23 | "internalType": "uint256", 24 | "name": "amount", 25 | "type": "uint256" 26 | }, 27 | { 28 | "internalType": "bytes", 29 | "name": "data", 30 | "type": "bytes" 31 | } 32 | ], 33 | "name": "onTokenTransfer", 34 | "outputs": [], 35 | "stateMutability": "nonpayable", 36 | "type": "function" 37 | } 38 | ] 39 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/MockCompoundOracle.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "string", 6 | "name": "symbol", 7 | "type": "string" 8 | } 9 | ], 10 | "name": "price", 11 | "outputs": [ 12 | { 13 | "internalType": "uint256", 14 | "name": "", 15 | "type": "uint256" 16 | } 17 | ], 18 | "stateMutability": "view", 19 | "type": "function" 20 | }, 21 | { 22 | "inputs": [ 23 | { 24 | "internalType": "string", 25 | "name": "symbol", 26 | "type": "string" 27 | }, 28 | { 29 | "internalType": "uint256", 30 | "name": "newPrice", 31 | "type": "uint256" 32 | }, 33 | { 34 | "internalType": "uint256", 35 | "name": "newDecimals", 36 | "type": "uint256" 37 | } 38 | ], 39 | "name": "setPrice", 40 | "outputs": [], 41 | "stateMutability": "nonpayable", 42 | "type": "function" 43 | } 44 | ] 45 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/OwnableInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "acceptOwnership", 5 | "outputs": [], 6 | "stateMutability": "nonpayable", 7 | "type": "function" 8 | }, 9 | { 10 | "inputs": [], 11 | "name": "owner", 12 | "outputs": [ 13 | { 14 | "internalType": "address", 15 | "name": "", 16 | "type": "address" 17 | } 18 | ], 19 | "stateMutability": "nonpayable", 20 | "type": "function" 21 | }, 22 | { 23 | "inputs": [ 24 | { 25 | "internalType": "address", 26 | "name": "recipient", 27 | "type": "address" 28 | } 29 | ], 30 | "name": "transferOwnership", 31 | "outputs": [], 32 | "stateMutability": "nonpayable", 33 | "type": "function" 34 | } 35 | ] 36 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/Pausable.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": false, 7 | "internalType": "address", 8 | "name": "account", 9 | "type": "address" 10 | } 11 | ], 12 | "name": "Paused", 13 | "type": "event" 14 | }, 15 | { 16 | "anonymous": false, 17 | "inputs": [ 18 | { 19 | "indexed": false, 20 | "internalType": "address", 21 | "name": "account", 22 | "type": "address" 23 | } 24 | ], 25 | "name": "Unpaused", 26 | "type": "event" 27 | }, 28 | { 29 | "inputs": [], 30 | "name": "paused", 31 | "outputs": [ 32 | { 33 | "internalType": "bool", 34 | "name": "", 35 | "type": "bool" 36 | } 37 | ], 38 | "stateMutability": "view", 39 | "type": "function" 40 | } 41 | ] 42 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/PointerInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "getAddress", 5 | "outputs": [ 6 | { 7 | "internalType": "address", 8 | "name": "", 9 | "type": "address" 10 | } 11 | ], 12 | "stateMutability": "view", 13 | "type": "function" 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/TypeAndVersionInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "typeAndVersion", 5 | "outputs": [ 6 | { 7 | "internalType": "string", 8 | "name": "", 9 | "type": "string" 10 | } 11 | ], 12 | "stateMutability": "pure", 13 | "type": "function" 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/UniswapAnchoredView.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "string", 6 | "name": "symbol", 7 | "type": "string" 8 | } 9 | ], 10 | "name": "price", 11 | "outputs": [ 12 | { 13 | "internalType": "uint256", 14 | "name": "", 15 | "type": "uint256" 16 | } 17 | ], 18 | "stateMutability": "view", 19 | "type": "function" 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/UpkeepReverter.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes", 6 | "name": "data", 7 | "type": "bytes" 8 | } 9 | ], 10 | "name": "checkUpkeep", 11 | "outputs": [ 12 | { 13 | "internalType": "bool", 14 | "name": "callable", 15 | "type": "bool" 16 | }, 17 | { 18 | "internalType": "bytes", 19 | "name": "executedata", 20 | "type": "bytes" 21 | } 22 | ], 23 | "stateMutability": "view", 24 | "type": "function" 25 | }, 26 | { 27 | "inputs": [ 28 | { 29 | "internalType": "bytes", 30 | "name": "", 31 | "type": "bytes" 32 | } 33 | ], 34 | "name": "performUpkeep", 35 | "outputs": [], 36 | "stateMutability": "pure", 37 | "type": "function" 38 | } 39 | ] 40 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/VRFConsumerBase.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes32", 6 | "name": "requestId", 7 | "type": "bytes32" 8 | }, 9 | { 10 | "internalType": "uint256", 11 | "name": "randomness", 12 | "type": "uint256" 13 | } 14 | ], 15 | "name": "rawFulfillRandomness", 16 | "outputs": [], 17 | "stateMutability": "nonpayable", 18 | "type": "function" 19 | } 20 | ] 21 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.7/WithdrawalInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "address", 6 | "name": "recipient", 7 | "type": "address" 8 | }, 9 | { 10 | "internalType": "uint256", 11 | "name": "amount", 12 | "type": "uint256" 13 | } 14 | ], 15 | "name": "withdraw", 16 | "outputs": [], 17 | "stateMutability": "nonpayable", 18 | "type": "function" 19 | }, 20 | { 21 | "inputs": [], 22 | "name": "withdrawable", 23 | "outputs": [ 24 | { 25 | "internalType": "uint256", 26 | "name": "", 27 | "type": "uint256" 28 | } 29 | ], 30 | "stateMutability": "view", 31 | "type": "function" 32 | } 33 | ] 34 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/AccessControllerInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "address", 6 | "name": "user", 7 | "type": "address" 8 | }, 9 | { 10 | "internalType": "bytes", 11 | "name": "data", 12 | "type": "bytes" 13 | } 14 | ], 15 | "name": "hasAccess", 16 | "outputs": [ 17 | { 18 | "internalType": "bool", 19 | "name": "", 20 | "type": "bool" 21 | } 22 | ], 23 | "stateMutability": "view", 24 | "type": "function" 25 | } 26 | ] 27 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/AggregatorValidatorInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "uint256", 6 | "name": "previousRoundId", 7 | "type": "uint256" 8 | }, 9 | { 10 | "internalType": "int256", 11 | "name": "previousAnswer", 12 | "type": "int256" 13 | }, 14 | { 15 | "internalType": "uint256", 16 | "name": "currentRoundId", 17 | "type": "uint256" 18 | }, 19 | { 20 | "internalType": "int256", 21 | "name": "currentAnswer", 22 | "type": "int256" 23 | } 24 | ], 25 | "name": "validate", 26 | "outputs": [ 27 | { 28 | "internalType": "bool", 29 | "name": "", 30 | "type": "bool" 31 | } 32 | ], 33 | "stateMutability": "nonpayable", 34 | "type": "function" 35 | } 36 | ] 37 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/BlockhashStoreInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "uint256", 6 | "name": "number", 7 | "type": "uint256" 8 | } 9 | ], 10 | "name": "getBlockhash", 11 | "outputs": [ 12 | { 13 | "internalType": "bytes32", 14 | "name": "", 15 | "type": "bytes32" 16 | } 17 | ], 18 | "stateMutability": "view", 19 | "type": "function" 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/ChainlinkClient.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": true, 7 | "internalType": "bytes32", 8 | "name": "id", 9 | "type": "bytes32" 10 | } 11 | ], 12 | "name": "ChainlinkCancelled", 13 | "type": "event" 14 | }, 15 | { 16 | "anonymous": false, 17 | "inputs": [ 18 | { 19 | "indexed": true, 20 | "internalType": "bytes32", 21 | "name": "id", 22 | "type": "bytes32" 23 | } 24 | ], 25 | "name": "ChainlinkFulfilled", 26 | "type": "event" 27 | }, 28 | { 29 | "anonymous": false, 30 | "inputs": [ 31 | { 32 | "indexed": true, 33 | "internalType": "bytes32", 34 | "name": "id", 35 | "type": "bytes32" 36 | } 37 | ], 38 | "name": "ChainlinkRequested", 39 | "type": "event" 40 | } 41 | ] 42 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/CronReceiver.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [], 5 | "name": "Received1", 6 | "type": "event" 7 | }, 8 | { 9 | "anonymous": false, 10 | "inputs": [], 11 | "name": "Received2", 12 | "type": "event" 13 | }, 14 | { 15 | "inputs": [], 16 | "name": "handler1", 17 | "outputs": [], 18 | "stateMutability": "nonpayable", 19 | "type": "function" 20 | }, 21 | { 22 | "inputs": [], 23 | "name": "handler2", 24 | "outputs": [], 25 | "stateMutability": "nonpayable", 26 | "type": "function" 27 | }, 28 | { 29 | "inputs": [], 30 | "name": "revertHandler", 31 | "outputs": [], 32 | "stateMutability": "nonpayable", 33 | "type": "function" 34 | } 35 | ] 36 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/CronUpkeepDelegate.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "UnknownFieldType", 5 | "type": "error" 6 | }, 7 | { 8 | "inputs": [ 9 | { 10 | "internalType": "bytes", 11 | "name": "", 12 | "type": "bytes" 13 | } 14 | ], 15 | "name": "checkUpkeep", 16 | "outputs": [ 17 | { 18 | "internalType": "bool", 19 | "name": "", 20 | "type": "bool" 21 | }, 22 | { 23 | "internalType": "bytes", 24 | "name": "", 25 | "type": "bytes" 26 | } 27 | ], 28 | "stateMutability": "view", 29 | "type": "function" 30 | } 31 | ] 32 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/CronUpkeepFactory.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "stateMutability": "nonpayable", 5 | "type": "constructor" 6 | }, 7 | { 8 | "anonymous": false, 9 | "inputs": [ 10 | { 11 | "indexed": false, 12 | "internalType": "address", 13 | "name": "upkeep", 14 | "type": "address" 15 | }, 16 | { 17 | "indexed": false, 18 | "internalType": "address", 19 | "name": "owner", 20 | "type": "address" 21 | } 22 | ], 23 | "name": "NewCronUpkeepCreated", 24 | "type": "event" 25 | }, 26 | { 27 | "inputs": [], 28 | "name": "cronDelegateAddress", 29 | "outputs": [ 30 | { 31 | "internalType": "address", 32 | "name": "", 33 | "type": "address" 34 | } 35 | ], 36 | "stateMutability": "view", 37 | "type": "function" 38 | }, 39 | { 40 | "inputs": [], 41 | "name": "newCronUpkeep", 42 | "outputs": [], 43 | "stateMutability": "nonpayable", 44 | "type": "function" 45 | } 46 | ] 47 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/ENSResolver.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes32", 6 | "name": "node", 7 | "type": "bytes32" 8 | } 9 | ], 10 | "name": "addr", 11 | "outputs": [ 12 | { 13 | "internalType": "address", 14 | "name": "", 15 | "type": "address" 16 | } 17 | ], 18 | "stateMutability": "view", 19 | "type": "function" 20 | } 21 | ] 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/ERC677ReceiverInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "address", 6 | "name": "sender", 7 | "type": "address" 8 | }, 9 | { 10 | "internalType": "uint256", 11 | "name": "amount", 12 | "type": "uint256" 13 | }, 14 | { 15 | "internalType": "bytes", 16 | "name": "data", 17 | "type": "bytes" 18 | } 19 | ], 20 | "name": "onTokenTransfer", 21 | "outputs": [], 22 | "stateMutability": "nonpayable", 23 | "type": "function" 24 | } 25 | ] 26 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/ForwarderInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "address", 6 | "name": "target", 7 | "type": "address" 8 | }, 9 | { 10 | "internalType": "bytes", 11 | "name": "data", 12 | "type": "bytes" 13 | } 14 | ], 15 | "name": "forward", 16 | "outputs": [], 17 | "stateMutability": "nonpayable", 18 | "type": "function" 19 | } 20 | ] 21 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/IMessageProvider.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": true, 7 | "internalType": "uint256", 8 | "name": "messageNum", 9 | "type": "uint256" 10 | }, 11 | { 12 | "indexed": false, 13 | "internalType": "bytes", 14 | "name": "data", 15 | "type": "bytes" 16 | } 17 | ], 18 | "name": "InboxMessageDelivered", 19 | "type": "event" 20 | }, 21 | { 22 | "anonymous": false, 23 | "inputs": [ 24 | { 25 | "indexed": true, 26 | "internalType": "uint256", 27 | "name": "messageNum", 28 | "type": "uint256" 29 | } 30 | ], 31 | "name": "InboxMessageDeliveredFromOrigin", 32 | "type": "event" 33 | } 34 | ] 35 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/KeeperBase.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "OnlySimulatedBackend", 5 | "type": "error" 6 | } 7 | ] 8 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/KeeperCompatible.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "OnlySimulatedBackend", 5 | "type": "error" 6 | }, 7 | { 8 | "inputs": [ 9 | { 10 | "internalType": "bytes", 11 | "name": "checkData", 12 | "type": "bytes" 13 | } 14 | ], 15 | "name": "checkUpkeep", 16 | "outputs": [ 17 | { 18 | "internalType": "bool", 19 | "name": "upkeepNeeded", 20 | "type": "bool" 21 | }, 22 | { 23 | "internalType": "bytes", 24 | "name": "performData", 25 | "type": "bytes" 26 | } 27 | ], 28 | "stateMutability": "nonpayable", 29 | "type": "function" 30 | }, 31 | { 32 | "inputs": [ 33 | { 34 | "internalType": "bytes", 35 | "name": "performData", 36 | "type": "bytes" 37 | } 38 | ], 39 | "name": "performUpkeep", 40 | "outputs": [], 41 | "stateMutability": "nonpayable", 42 | "type": "function" 43 | } 44 | ] 45 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/KeeperCompatibleInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes", 6 | "name": "checkData", 7 | "type": "bytes" 8 | } 9 | ], 10 | "name": "checkUpkeep", 11 | "outputs": [ 12 | { 13 | "internalType": "bool", 14 | "name": "upkeepNeeded", 15 | "type": "bool" 16 | }, 17 | { 18 | "internalType": "bytes", 19 | "name": "performData", 20 | "type": "bytes" 21 | } 22 | ], 23 | "stateMutability": "nonpayable", 24 | "type": "function" 25 | }, 26 | { 27 | "inputs": [ 28 | { 29 | "internalType": "bytes", 30 | "name": "performData", 31 | "type": "bytes" 32 | } 33 | ], 34 | "name": "performUpkeep", 35 | "outputs": [], 36 | "stateMutability": "nonpayable", 37 | "type": "function" 38 | } 39 | ] 40 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/MockAggregator.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "latestAnswer", 5 | "outputs": [ 6 | { 7 | "internalType": "int256", 8 | "name": "", 9 | "type": "int256" 10 | } 11 | ], 12 | "stateMutability": "view", 13 | "type": "function" 14 | }, 15 | { 16 | "inputs": [], 17 | "name": "s_answer", 18 | "outputs": [ 19 | { 20 | "internalType": "int256", 21 | "name": "", 22 | "type": "int256" 23 | } 24 | ], 25 | "stateMutability": "view", 26 | "type": "function" 27 | }, 28 | { 29 | "inputs": [ 30 | { 31 | "internalType": "int256", 32 | "name": "answer", 33 | "type": "int256" 34 | } 35 | ], 36 | "name": "setLatestAnswer", 37 | "outputs": [], 38 | "stateMutability": "nonpayable", 39 | "type": "function" 40 | } 41 | ] 42 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/OwnableInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "acceptOwnership", 5 | "outputs": [], 6 | "stateMutability": "nonpayable", 7 | "type": "function" 8 | }, 9 | { 10 | "inputs": [], 11 | "name": "owner", 12 | "outputs": [ 13 | { 14 | "internalType": "address", 15 | "name": "", 16 | "type": "address" 17 | } 18 | ], 19 | "stateMutability": "nonpayable", 20 | "type": "function" 21 | }, 22 | { 23 | "inputs": [ 24 | { 25 | "internalType": "address", 26 | "name": "recipient", 27 | "type": "address" 28 | } 29 | ], 30 | "name": "transferOwnership", 31 | "outputs": [], 32 | "stateMutability": "nonpayable", 33 | "type": "function" 34 | } 35 | ] 36 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/PointerInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "getAddress", 5 | "outputs": [ 6 | { 7 | "internalType": "address", 8 | "name": "", 9 | "type": "address" 10 | } 11 | ], 12 | "stateMutability": "view", 13 | "type": "function" 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/ReceiveEmitter.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": false, 7 | "internalType": "uint256", 8 | "name": "amount", 9 | "type": "uint256" 10 | }, 11 | { 12 | "indexed": false, 13 | "internalType": "uint256", 14 | "name": "newBalance", 15 | "type": "uint256" 16 | } 17 | ], 18 | "name": "FundsReceived", 19 | "type": "event" 20 | }, 21 | { 22 | "stateMutability": "payable", 23 | "type": "receive" 24 | } 25 | ] 26 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/ReceiveFallbackEmitter.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "anonymous": false, 4 | "inputs": [ 5 | { 6 | "indexed": false, 7 | "internalType": "uint256", 8 | "name": "amount", 9 | "type": "uint256" 10 | }, 11 | { 12 | "indexed": false, 13 | "internalType": "uint256", 14 | "name": "newBalance", 15 | "type": "uint256" 16 | } 17 | ], 18 | "name": "FundsReceived", 19 | "type": "event" 20 | }, 21 | { 22 | "stateMutability": "payable", 23 | "type": "fallback" 24 | } 25 | ] 26 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/ReceiveReverter.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "stateMutability": "payable", 4 | "type": "receive" 5 | } 6 | ] 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/TypeAndVersionInterface.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [], 4 | "name": "typeAndVersion", 5 | "outputs": [ 6 | { 7 | "internalType": "string", 8 | "name": "", 9 | "type": "string" 10 | } 11 | ], 12 | "stateMutability": "pure", 13 | "type": "function" 14 | } 15 | ] 16 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/VRFConsumerBase.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "bytes32", 6 | "name": "requestId", 7 | "type": "bytes32" 8 | }, 9 | { 10 | "internalType": "uint256", 11 | "name": "randomness", 12 | "type": "uint256" 13 | } 14 | ], 15 | "name": "rawFulfillRandomness", 16 | "outputs": [], 17 | "stateMutability": "nonpayable", 18 | "type": "function" 19 | } 20 | ] 21 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/abi/v0.8/VRFConsumerBaseV2.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "inputs": [ 4 | { 5 | "internalType": "address", 6 | "name": "have", 7 | "type": "address" 8 | }, 9 | { 10 | "internalType": "address", 11 | "name": "want", 12 | "type": "address" 13 | } 14 | ], 15 | "name": "OnlyCoordinatorCanFulfill", 16 | "type": "error" 17 | }, 18 | { 19 | "inputs": [ 20 | { 21 | "internalType": "uint256", 22 | "name": "requestId", 23 | "type": "uint256" 24 | }, 25 | { 26 | "internalType": "uint256[]", 27 | "name": "randomWords", 28 | "type": "uint256[]" 29 | } 30 | ], 31 | "name": "rawFulfillRandomWords", 32 | "outputs": [], 33 | "stateMutability": "nonpayable", 34 | "type": "function" 35 | } 36 | ] 37 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/Migrations.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.24; // solhint-disable-line compiler-fixed 2 | 3 | contract Migrations { 4 | address public owner; 5 | uint public last_completed_migration; 6 | 7 | modifier restricted() { 8 | if (msg.sender == owner) _; 9 | } 10 | 11 | constructor() public { 12 | owner = msg.sender; 13 | } 14 | 15 | function setCompleted(uint completed) public restricted { 16 | last_completed_migration = completed; 17 | } 18 | 19 | function upgrade(address new_address) public restricted { 20 | Migrations upgraded = Migrations(new_address); 21 | upgraded.setCompleted(last_completed_migration); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/Pointer.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.4.24; 2 | 3 | contract Pointer { 4 | address public getAddress; 5 | 6 | constructor(address _addr) public { 7 | getAddress = _addr; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/interfaces/AggregatorInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity >=0.4.24; 2 | 3 | interface AggregatorInterface { 4 | function latestAnswer() external view returns (int256); 5 | function latestTimestamp() external view returns (uint256); 6 | function latestRound() external view returns (uint256); 7 | function getAnswer(uint256 roundId) external view returns (int256); 8 | function getTimestamp(uint256 roundId) external view returns (uint256); 9 | 10 | event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 timestamp); 11 | event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt); 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/interfaces/AggregatorV3Interface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity >=0.4.24; 2 | 3 | interface AggregatorV3Interface { 4 | 5 | function decimals() external view returns (uint8); 6 | function description() external view returns (string memory); 7 | function version() external view returns (uint256); 8 | 9 | // getRoundData and latestRoundData should both raise "No data present" 10 | // if they do not have data to report, instead of returning unset values 11 | // which could be misinterpreted as actual reported values. 12 | function getRoundData(uint80 _roundId) 13 | external 14 | view 15 | returns ( 16 | uint80 roundId, 17 | int256 answer, 18 | uint256 startedAt, 19 | uint256 updatedAt, 20 | uint80 answeredInRound 21 | ); 22 | function latestRoundData() 23 | external 24 | view 25 | returns ( 26 | uint80 roundId, 27 | int256 answer, 28 | uint256 startedAt, 29 | uint256 updatedAt, 30 | uint80 answeredInRound 31 | ); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/interfaces/ChainlinkRequestInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.24; 2 | 3 | interface ChainlinkRequestInterface { 4 | function oracleRequest( 5 | address sender, 6 | uint256 payment, 7 | bytes32 id, 8 | address callbackAddress, 9 | bytes4 callbackFunctionId, 10 | uint256 nonce, 11 | uint256 version, 12 | bytes data 13 | ) external; 14 | 15 | function cancelOracleRequest( 16 | bytes32 requestId, 17 | uint256 payment, 18 | bytes4 callbackFunctionId, 19 | uint256 expiration 20 | ) external; 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/interfaces/ERC20.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.11; 2 | 3 | 4 | import { ERC20Basic as linkERC20Basic } from "./ERC20Basic.sol"; 5 | 6 | 7 | /** 8 | * @title ERC20 interface 9 | * @dev see https://github.com/ethereum/EIPs/issues/20 10 | */ 11 | contract ERC20 is linkERC20Basic { 12 | function allowance(address owner, address spender) constant returns (uint256); 13 | function transferFrom(address from, address to, uint256 value) returns (bool); 14 | function approve(address spender, uint256 value) returns (bool); 15 | event Approval(address indexed owner, address indexed spender, uint256 value); 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/interfaces/ERC20Basic.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.11; 2 | 3 | 4 | /** 5 | * @title ERC20Basic 6 | * @dev Simpler version of ERC20 interface 7 | * @dev see https://github.com/ethereum/EIPs/issues/179 8 | */ 9 | contract ERC20Basic { 10 | uint256 public totalSupply; 11 | function balanceOf(address who) constant returns (uint256); 12 | function transfer(address to, uint256 value) returns (bool); 13 | event Transfer(address indexed from, address indexed to, uint256 value); 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/interfaces/ERC677.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.8; 2 | 3 | import { ERC20 as linkERC20 } from "./ERC20.sol"; 4 | 5 | contract ERC677 is linkERC20 { 6 | function transferAndCall(address to, uint value, bytes data) returns (bool success); 7 | 8 | event Transfer(address indexed from, address indexed to, uint value, bytes data); 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/interfaces/ERC677Receiver.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.8; 2 | 3 | 4 | contract ERC677Receiver { 5 | function onTokenTransfer(address _sender, uint _value, bytes _data); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/interfaces/FlagsInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity >=0.4.24; 2 | 3 | interface FlagsInterface { 4 | function getFlag(address) external view returns (bool); 5 | function getFlags(address[] calldata) external view returns (bool[] memory); 6 | function raiseFlag(address) external; 7 | function raiseFlags(address[] calldata) external; 8 | function lowerFlags(address[] calldata) external; 9 | function setRaisingAccessController(address) external; 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/interfaces/OracleInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.24; 2 | 3 | interface OracleInterface { 4 | function fulfillOracleRequest( 5 | bytes32 requestId, 6 | uint256 payment, 7 | address callbackAddress, 8 | bytes4 callbackFunctionId, 9 | uint256 expiration, 10 | bytes32 data 11 | ) external returns (bool); 12 | function getAuthorizationStatus(address node) external view returns (bool); 13 | function setFulfillmentPermission(address node, bool allowed) external; 14 | function withdraw(address recipient, uint256 amount) external; 15 | function withdrawable() external view returns (uint256); 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/interfaces/PointerInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.24; 2 | 3 | interface PointerInterface { 4 | function getAddress() external view returns (address); 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/tests/BasicConsumer.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.4.24; 2 | 3 | import "./Consumer.sol"; 4 | 5 | contract BasicConsumer is Consumer { 6 | 7 | constructor(address _link, address _oracle, bytes32 _specId) public { 8 | setChainlinkToken(_link); 9 | setChainlinkOracle(_oracle); 10 | specId = _specId; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/tests/EmptyOracle.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.4.24; 2 | 3 | import "../interfaces/ChainlinkRequestInterface.sol"; 4 | import "../interfaces/OracleInterface.sol"; 5 | 6 | /* solhint-disable no-empty-blocks */ 7 | 8 | contract EmptyOracle is ChainlinkRequestInterface, OracleInterface { 9 | 10 | function cancelOracleRequest(bytes32, uint256, bytes4, uint256) external {} 11 | function fulfillOracleRequest(bytes32, uint256, address, bytes4, uint256, bytes32) external returns (bool) {} 12 | function getAuthorizationStatus(address) external view returns (bool) { return false; } 13 | function onTokenTransfer(address, uint256, bytes) external pure {} 14 | function oracleRequest(address, uint256, bytes32, address, bytes4, uint256, uint256, bytes) external {} 15 | function setFulfillmentPermission(address, bool) external {} 16 | function withdraw(address, uint256) external {} 17 | function withdrawable() external view returns (uint256) {} 18 | 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/tests/UpdatableConsumer.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.4.24; 2 | 3 | import "./Consumer.sol"; 4 | 5 | contract UpdatableConsumer is Consumer { 6 | 7 | constructor(bytes32 _specId, address _ens, bytes32 _node) public { 8 | specId = _specId; 9 | useChainlinkWithENS(_ens, _node); 10 | } 11 | 12 | function updateOracle() public { 13 | updateChainlinkOracleWithENS(); 14 | } 15 | 16 | function getChainlinkToken() public view returns (address) { 17 | return chainlinkTokenAddress(); 18 | } 19 | 20 | function getOracle() public view returns (address) { 21 | return chainlinkOracleAddress(); 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.4/vendor/ENSResolver.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.4.24; 2 | 3 | contract ENSResolver { 4 | function addr(bytes32 node) public view returns (address); 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/Migrations.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.5.0; // solhint-disable-line compiler-fixed 2 | 3 | contract Migrations { 4 | address public owner; 5 | uint public last_completed_migration; 6 | 7 | modifier restricted() { 8 | if (msg.sender == owner) _; 9 | } 10 | 11 | constructor() public { 12 | owner = msg.sender; 13 | } 14 | 15 | function setCompleted(uint completed) public restricted { 16 | last_completed_migration = completed; 17 | } 18 | 19 | function upgrade(address new_address) public restricted { 20 | Migrations upgraded = Migrations(new_address); 21 | upgraded.setCompleted(last_completed_migration); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/dev/CoordinatorInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.5.0; 2 | 3 | contract CoordinatorInterface { 4 | 5 | function initiateServiceAgreement( 6 | bytes memory _serviceAgreementData, 7 | bytes memory _oracleSignaturesData) 8 | public returns (bytes32); 9 | 10 | function fulfillOracleRequest( 11 | bytes32 _requestId, 12 | bytes32 _aggregatorArgs) 13 | external returns (bool); 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/dev/OracleSignaturesDecoder.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.5.0; 2 | 3 | contract OracleSignaturesDecoder { 4 | 5 | struct OracleSignatures { 6 | uint8[] vs; 7 | bytes32[] rs; 8 | bytes32[] ss; 9 | } 10 | 11 | function decodeOracleSignatures( 12 | bytes memory _oracleSignaturesData 13 | ) 14 | internal 15 | pure 16 | returns(OracleSignatures memory) 17 | { 18 | // solhint-disable indent 19 | OracleSignatures memory signatures; 20 | ( signatures.vs, signatures.rs, signatures.ss) = 21 | abi.decode(_oracleSignaturesData, ( uint8[], bytes32[], bytes32[] )); 22 | return signatures; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/interfaces/AggregatorInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity >=0.5.0; 2 | 3 | interface AggregatorInterface { 4 | function latestAnswer() external view returns (int256); 5 | function latestTimestamp() external view returns (uint256); 6 | function latestRound() external view returns (uint256); 7 | function getAnswer(uint256 roundId) external view returns (int256); 8 | function getTimestamp(uint256 roundId) external view returns (uint256); 9 | 10 | event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 timestamp); 11 | event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt); 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/interfaces/AggregatorV3Interface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity >=0.5.0; 2 | 3 | interface AggregatorV3Interface { 4 | 5 | function decimals() external view returns (uint8); 6 | function description() external view returns (string memory); 7 | function version() external view returns (uint256); 8 | 9 | // getRoundData and latestRoundData should both raise "No data present" 10 | // if they do not have data to report, instead of returning unset values 11 | // which could be misinterpreted as actual reported values. 12 | function getRoundData(uint80 _roundId) 13 | external 14 | view 15 | returns ( 16 | uint80 roundId, 17 | int256 answer, 18 | uint256 startedAt, 19 | uint256 updatedAt, 20 | uint80 answeredInRound 21 | ); 22 | function latestRoundData() 23 | external 24 | view 25 | returns ( 26 | uint80 roundId, 27 | int256 answer, 28 | uint256 startedAt, 29 | uint256 updatedAt, 30 | uint80 answeredInRound 31 | ); 32 | 33 | } 34 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/interfaces/ChainlinkRequestInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.5.0; 2 | 3 | interface ChainlinkRequestInterface { 4 | function oracleRequest( 5 | address sender, 6 | uint256 requestPrice, 7 | bytes32 serviceAgreementID, 8 | address callbackAddress, 9 | bytes4 callbackFunctionId, 10 | uint256 nonce, 11 | uint256 dataVersion, 12 | bytes calldata data 13 | ) external; 14 | 15 | function cancelOracleRequest( 16 | bytes32 requestId, 17 | uint256 payment, 18 | bytes4 callbackFunctionId, 19 | uint256 expiration 20 | ) external; 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/interfaces/FlagsInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity >=0.5.0; 2 | 3 | interface FlagsInterface { 4 | function getFlag(address) external view returns (bool); 5 | function getFlags(address[] calldata) external view returns (bool[] memory); 6 | function raiseFlag(address) external; 7 | function raiseFlags(address[] calldata) external; 8 | function lowerFlags(address[] calldata) external; 9 | function setRaisingAccessController(address) external; 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/interfaces/OracleInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.5.0; 2 | 3 | interface OracleInterface { 4 | function fulfillOracleRequest( 5 | bytes32 requestId, 6 | uint256 payment, 7 | address callbackAddress, 8 | bytes4 callbackFunctionId, 9 | uint256 expiration, 10 | bytes32 data 11 | ) external returns (bool); 12 | function getAuthorizationStatus(address node) external view returns (bool); 13 | function setFulfillmentPermission(address node, bool allowed) external; 14 | function withdraw(address recipient, uint256 amount) external; 15 | function withdrawable() external view returns (uint256); 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/interfaces/PointerInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.5.0; 2 | 3 | interface PointerInterface { 4 | function getAddress() external view returns (address); 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/interfaces/WithdrawalInterface.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.5.0; 2 | 3 | interface WithdrawalInterface { 4 | /** 5 | * @notice transfer LINK held by the contract belonging to msg.sender to 6 | * another address 7 | * @param recipient is the address to send the LINK to 8 | * @param amount is the amount of LINK to send 9 | */ 10 | function withdraw(address recipient, uint256 amount) external; 11 | 12 | /** 13 | * @notice query the available amount of LINK to withdraw by msg.sender 14 | */ 15 | function withdrawable() external view returns (uint256); 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/tests/BasicConsumer.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.5.0; 2 | 3 | import "./Consumer.sol"; 4 | 5 | contract BasicConsumer is Consumer { 6 | 7 | constructor(address _link, address _oracle, bytes32 _specId) public { 8 | setChainlinkToken(_link); 9 | setChainlinkOracle(_oracle); 10 | specId = _specId; 11 | } 12 | 13 | } 14 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/tests/MedianTestHelper.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.5.0; 2 | 3 | import "../Median.sol"; 4 | 5 | contract MedianTestHelper { 6 | 7 | function publicGet(int256[] memory _list) 8 | public 9 | pure 10 | returns (int256) 11 | { 12 | return Median.calculate(_list); 13 | } 14 | 15 | } 16 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/tests/ServiceAgreementConsumer.sol: -------------------------------------------------------------------------------- 1 | pragma solidity 0.5.0; 2 | 3 | import "../ChainlinkClient.sol"; 4 | 5 | contract ServiceAgreementConsumer is ChainlinkClient { 6 | uint256 constant private ORACLE_PAYMENT = 1 * LINK; 7 | 8 | bytes32 internal sAId; 9 | bytes32 public currentPrice; 10 | 11 | constructor(address _link, address _coordinator, bytes32 _sAId) public { 12 | setChainlinkToken(_link); 13 | setChainlinkOracle(_coordinator); 14 | sAId = _sAId; 15 | } 16 | 17 | function requestEthereumPrice(string memory _currency) public { 18 | Chainlink.Request memory req = buildChainlinkRequest(sAId, address(this), this.fulfill.selector); 19 | req.add("get", "https://min-api.cryptocompare.com/data/price?fsym=ETH&tsyms=USD,EUR,JPY"); 20 | req.add("path", _currency); 21 | sendChainlinkRequest(req, ORACLE_PAYMENT); 22 | } 23 | 24 | function fulfill(bytes32 _requestId, bytes32 _price) 25 | public 26 | recordChainlinkFulfillment(_requestId) 27 | { 28 | currentPrice = _price; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/vendor/ENSResolver.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.5.0; 2 | 3 | contract ENSResolver { 4 | function addr(bytes32 node) public view returns (address); 5 | } 6 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.5/vendor/SignedSafeMath.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.5.0; 2 | 3 | library SignedSafeMath { 4 | 5 | /** 6 | * @dev Adds two int256s and makes sure the result doesn't overflow. Signed 7 | * integers aren't supported by the SafeMath library, thus this method 8 | * @param _a The first number to be added 9 | * @param _a The second number to be added 10 | */ 11 | function add(int256 _a, int256 _b) 12 | internal 13 | pure 14 | returns (int256) 15 | { 16 | // solium-disable-next-line zeppelin/no-arithmetic-operations 17 | int256 c = _a + _b; 18 | require((_b >= 0 && c >= _a) || (_b < 0 && c < _a), "SignedSafeMath: addition overflow"); 19 | 20 | return c; 21 | } 22 | } -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/KeeperBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | contract KeeperBase { 5 | /** 6 | * @notice method that allows it to be simulated via eth_call by checking that 7 | * the sender is the zero address. 8 | */ 9 | function preventExecution() internal view { 10 | require(tx.origin == address(0), "only for simulated backend"); 11 | } 12 | 13 | /** 14 | * @notice modifier that allows it to be simulated via eth_call by checking 15 | * that the sender is the zero address. 16 | */ 17 | modifier cannotExecute() { 18 | preventExecution(); 19 | _; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/KeeperCompatible.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | import "./KeeperBase.sol"; 5 | import "./interfaces/KeeperCompatibleInterface.sol"; 6 | 7 | abstract contract KeeperCompatible is KeeperBase, KeeperCompatibleInterface {} 8 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/interfaces/AccessControllerInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity >0.6.0 <0.8.0; 3 | 4 | interface AccessControllerInterface { 5 | function hasAccess(address user, bytes calldata data) external view returns (bool); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/interfaces/AggregatorInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | interface AggregatorInterface { 5 | function latestAnswer() 6 | external 7 | view 8 | returns ( 9 | int256 10 | ); 11 | 12 | function latestTimestamp() 13 | external 14 | view 15 | returns ( 16 | uint256 17 | ); 18 | 19 | function latestRound() 20 | external 21 | view 22 | returns ( 23 | uint256 24 | ); 25 | 26 | function getAnswer( 27 | uint256 roundId 28 | ) 29 | external 30 | view 31 | returns ( 32 | int256 33 | ); 34 | 35 | function getTimestamp( 36 | uint256 roundId 37 | ) 38 | external 39 | view 40 | returns ( 41 | uint256 42 | ); 43 | 44 | event AnswerUpdated( 45 | int256 indexed current, 46 | uint256 indexed roundId, 47 | uint256 updatedAt 48 | ); 49 | 50 | event NewRound( 51 | uint256 indexed roundId, 52 | address indexed startedBy, 53 | uint256 startedAt 54 | ); 55 | } 56 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/interfaces/AggregatorV2V3Interface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | import "./AggregatorInterface.sol"; 5 | import "./AggregatorV3Interface.sol"; 6 | 7 | interface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface 8 | { 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/interfaces/AggregatorValidatorInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | interface AggregatorValidatorInterface { 5 | function validate( 6 | uint256 previousRoundId, 7 | int256 previousAnswer, 8 | uint256 currentRoundId, 9 | int256 currentAnswer 10 | ) external returns (bool); 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/interfaces/BlockHashStoreInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.6.6; 3 | 4 | interface BlockHashStoreInterface { 5 | function getBlockhash(uint256 number) external view returns (bytes32); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/interfaces/ChainlinkRequestInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | interface ChainlinkRequestInterface { 5 | function oracleRequest( 6 | address sender, 7 | uint256 requestPrice, 8 | bytes32 serviceAgreementID, 9 | address callbackAddress, 10 | bytes4 callbackFunctionId, 11 | uint256 nonce, 12 | uint256 dataVersion, 13 | bytes calldata data 14 | ) external; 15 | 16 | function cancelOracleRequest( 17 | bytes32 requestId, 18 | uint256 payment, 19 | bytes4 callbackFunctionId, 20 | uint256 expiration 21 | ) external; 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/interfaces/FlagsInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | interface FlagsInterface { 5 | function getFlag(address) external view returns (bool); 6 | function getFlags(address[] calldata) external view returns (bool[] memory); 7 | function raiseFlag(address) external; 8 | function raiseFlags(address[] calldata) external; 9 | function lowerFlags(address[] calldata) external; 10 | function setRaisingAccessController(address) external; 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/interfaces/OracleInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | interface OracleInterface { 5 | function fulfillOracleRequest( 6 | bytes32 requestId, 7 | uint256 payment, 8 | address callbackAddress, 9 | bytes4 callbackFunctionId, 10 | uint256 expiration, 11 | bytes32 data 12 | ) external returns (bool); 13 | function getAuthorizationStatus(address node) external view returns (bool); 14 | function setFulfillmentPermission(address node, bool allowed) external; 15 | function withdraw(address recipient, uint256 amount) external; 16 | function withdrawable() external view returns (uint256); 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/interfaces/PointerInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | interface PointerInterface { 5 | function getAddress() external view returns (address); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/interfaces/WithdrawalInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | interface WithdrawalInterface { 5 | /** 6 | * @notice transfer LINK held by the contract belonging to msg.sender to 7 | * another address 8 | * @param recipient is the address to send the LINK to 9 | * @param amount is the amount of LINK to send 10 | */ 11 | function withdraw(address recipient, uint256 amount) external; 12 | 13 | /** 14 | * @notice query the available amount of LINK to withdraw by msg.sender 15 | */ 16 | function withdrawable() external view returns (uint256); 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/AggregatorValidatorMock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.6.6; 3 | 4 | import "../interfaces/AggregatorValidatorInterface.sol"; 5 | 6 | contract AggregatorValidatorMock is AggregatorValidatorInterface { 7 | uint256 public previousRoundId; 8 | int256 public previousAnswer; 9 | uint256 public currentRoundId; 10 | int256 public currentAnswer; 11 | 12 | event Validated( 13 | uint256 _previousRoundId, 14 | int256 indexed _previousAnswer, 15 | uint256 _currentRoundId, 16 | int256 indexed _currentAnswer 17 | ); 18 | 19 | function validate( 20 | uint256 _previousRoundId, 21 | int256 _previousAnswer, 22 | uint256 _currentRoundId, 23 | int256 _currentAnswer 24 | ) 25 | external 26 | override 27 | returns (bool) 28 | { 29 | emit Validated( 30 | _previousRoundId, 31 | _previousAnswer, 32 | _currentRoundId, 33 | _currentAnswer 34 | ); 35 | return true; 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/BasicConsumer.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | import "./Consumer.sol"; 5 | 6 | contract BasicConsumer is Consumer { 7 | 8 | constructor(address _link, address _oracle, bytes32 _specId) public { 9 | setChainlinkToken(_link); 10 | setChainlinkOracle(_oracle); 11 | specId = _specId; 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/BlockhashStoreTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.6.6; 3 | 4 | import "../dev/BlockhashStore.sol"; 5 | 6 | contract BlockhashStoreTestHelper is BlockhashStore { 7 | function godmodeSetHash(uint256 n, bytes32 h) public { 8 | s_blockhashes[n] = h; 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/CheckedMathTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | import "../CheckedMath.sol"; 5 | 6 | contract CheckedMathTestHelper { 7 | using CheckedMath for int256; 8 | 9 | function add(int256 a, int256 b) 10 | external 11 | pure 12 | returns (int256 result, bool ok) 13 | { 14 | return a.add(b); 15 | } 16 | 17 | function sub(int256 a, int256 b) 18 | external 19 | pure 20 | returns (int256 result, bool ok) 21 | { 22 | return a.sub(b); 23 | } 24 | 25 | function mul(int256 a, int256 b) 26 | external 27 | pure 28 | returns (int256 result, bool ok) 29 | { 30 | return a.mul(b); 31 | } 32 | 33 | function div(int256 a, int256 b) 34 | external 35 | pure 36 | returns (int256 result, bool ok) 37 | { 38 | return a.div(b); 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/ConcreteSignedSafeMath.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | import "../SignedSafeMath.sol"; 5 | 6 | contract ConcreteSignedSafeMath { 7 | function testAdd(int256 _a, int256 _b) 8 | external 9 | pure 10 | returns (int256) 11 | { 12 | return SignedSafeMath.add(_a, _b); 13 | } 14 | 15 | function testAvg(int256 _a, int256 _b) 16 | external 17 | pure 18 | returns (int256) 19 | { 20 | return SignedSafeMath.avg(_a, _b); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/FlagsTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | import "../Flags.sol"; 5 | 6 | contract FlagsTestHelper { 7 | Flags public flags; 8 | 9 | constructor( 10 | address flagsContract 11 | ) 12 | public 13 | { 14 | flags = Flags(flagsContract); 15 | } 16 | 17 | function getFlag( 18 | address subject 19 | ) 20 | external 21 | view 22 | returns(bool) 23 | { 24 | return flags.getFlag(subject); 25 | } 26 | 27 | function getFlags( 28 | address[] calldata subjects 29 | ) 30 | external 31 | view 32 | returns(bool[] memory) 33 | { 34 | return flags.getFlags(subjects); 35 | } 36 | 37 | } 38 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/GasGuzzler.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.6.6; 3 | 4 | contract GasGuzzler { 5 | fallback() external payable { 6 | while (true) { 7 | } 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/KeeperCompatibleTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | import "../KeeperCompatible.sol"; 5 | 6 | contract KeeperCompatibleTestHelper is KeeperCompatible { 7 | function checkUpkeep(bytes calldata) external override returns (bool, bytes memory) {} 8 | 9 | function performUpkeep(bytes calldata) external override {} 10 | 11 | function testCannotExecute() public view cannotExecute {} 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/MedianTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | import "../Median.sol"; 5 | 6 | contract MedianTestHelper { 7 | function publicGet(int256[] memory list) 8 | public 9 | pure 10 | returns (int256) 11 | { 12 | return Median.calculate(list); 13 | } 14 | 15 | function publicQuickselectTwo(int256[] memory list, uint256 k1, uint256 k2) 16 | public 17 | pure 18 | returns (int256, int256) 19 | { 20 | return Median.quickselectTwo(list, 0, list.length - 1, k1, k2); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/Reverter.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.6.6; 3 | 4 | contract Reverter { 5 | 6 | fallback() external payable { 7 | require(false, "Raised by Reverter.sol"); 8 | } 9 | 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/VRFConsumer.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.6.6; 3 | 4 | import "../interfaces/LinkTokenInterface.sol"; 5 | import "../VRFCoordinator.sol"; 6 | import "../VRFConsumerBase.sol"; 7 | 8 | contract VRFConsumer is VRFConsumerBase { 9 | 10 | uint256 public randomnessOutput; 11 | bytes32 public requestId; 12 | 13 | constructor(address _vrfCoordinator, address _link) public 14 | // solhint-disable-next-line no-empty-blocks 15 | VRFConsumerBase(_vrfCoordinator, _link) { /* empty */ } 16 | 17 | function fulfillRandomness(bytes32 _requestId, uint256 _randomness) 18 | internal override 19 | { 20 | randomnessOutput = _randomness; 21 | requestId = _requestId; 22 | } 23 | 24 | function testRequestRandomness(bytes32 _keyHash, uint256 _fee) 25 | external returns (bytes32 requestId) 26 | { 27 | return requestRandomness(_keyHash, _fee); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/tests/VRFRequestIDBaseTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity 0.6.6; 3 | 4 | import "../VRFRequestIDBase.sol"; 5 | 6 | contract VRFRequestIDBaseTestHelper is VRFRequestIDBase { 7 | 8 | function makeVRFInputSeed_(bytes32 _keyHash, uint256 _userSeed, 9 | address _requester, uint256 _nonce) 10 | public pure returns (uint256) { 11 | return makeVRFInputSeed(_keyHash, _userSeed, _requester, _nonce); 12 | } 13 | 14 | function makeRequestId_( 15 | bytes32 _keyHash, uint256 _vRFInputSeed) public pure returns (bytes32) { 16 | return makeRequestId(_keyHash, _vRFInputSeed); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.6/vendor/ENSResolver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.6.0; 3 | 4 | abstract contract ENSResolver { 5 | function addr(bytes32 node) public view virtual returns (address); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/ConfirmedOwner.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | import "./ConfirmedOwnerWithProposal.sol"; 5 | 6 | /** 7 | * @title The ConfirmedOwner contract 8 | * @notice A contract with helpers for basic contract ownership. 9 | */ 10 | contract ConfirmedOwner is ConfirmedOwnerWithProposal { 11 | constructor(address newOwner) ConfirmedOwnerWithProposal(newOwner, address(0)) {} 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/KeeperBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | contract KeeperBase { 5 | /** 6 | * @notice method that allows it to be simulated via eth_call by checking that 7 | * the sender is the zero address. 8 | */ 9 | function preventExecution() internal view { 10 | require(tx.origin == address(0), "only for simulated backend"); 11 | } 12 | 13 | /** 14 | * @notice modifier that allows it to be simulated via eth_call by checking 15 | * that the sender is the zero address. 16 | */ 17 | modifier cannotExecute() { 18 | preventExecution(); 19 | _; 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/KeeperCompatible.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | import "./KeeperBase.sol"; 5 | import "./interfaces/KeeperCompatibleInterface.sol"; 6 | 7 | abstract contract KeeperCompatible is KeeperBase, KeeperCompatibleInterface {} 8 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/AggregatorInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | interface AggregatorInterface { 5 | function latestAnswer() external view returns (int256); 6 | 7 | function latestTimestamp() external view returns (uint256); 8 | 9 | function latestRound() external view returns (uint256); 10 | 11 | function getAnswer(uint256 roundId) external view returns (int256); 12 | 13 | function getTimestamp(uint256 roundId) external view returns (uint256); 14 | 15 | event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt); 16 | 17 | event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt); 18 | } 19 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/AggregatorProxyInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | import "./AggregatorV2V3Interface.sol"; 5 | 6 | interface AggregatorProxyInterface is AggregatorV2V3Interface { 7 | function phaseAggregators(uint16 phaseId) external view returns (address); 8 | 9 | function phaseId() external view returns (uint16); 10 | 11 | function proposedAggregator() external view returns (address); 12 | 13 | function proposedGetRoundData(uint80 roundId) 14 | external 15 | view 16 | returns ( 17 | uint80 id, 18 | int256 answer, 19 | uint256 startedAt, 20 | uint256 updatedAt, 21 | uint80 answeredInRound 22 | ); 23 | 24 | function proposedLatestRoundData() 25 | external 26 | view 27 | returns ( 28 | uint80 id, 29 | int256 answer, 30 | uint256 startedAt, 31 | uint256 updatedAt, 32 | uint80 answeredInRound 33 | ); 34 | 35 | function aggregator() external view returns (address); 36 | } 37 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/AggregatorV2V3Interface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | import "./AggregatorInterface.sol"; 5 | import "./AggregatorV3Interface.sol"; 6 | 7 | interface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface {} 8 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/AuthorizedReceiverInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | interface AuthorizedReceiverInterface { 5 | function isAuthorizedSender(address sender) external view returns (bool); 6 | 7 | function getAuthorizedSenders() external returns (address[] memory); 8 | 9 | function setAuthorizedSenders(address[] calldata senders) external; 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/ChainlinkRequestInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | interface ChainlinkRequestInterface { 5 | function oracleRequest( 6 | address sender, 7 | uint256 requestPrice, 8 | bytes32 serviceAgreementID, 9 | address callbackAddress, 10 | bytes4 callbackFunctionId, 11 | uint256 nonce, 12 | uint256 dataVersion, 13 | bytes calldata data 14 | ) external; 15 | 16 | function cancelOracleRequest( 17 | bytes32 requestId, 18 | uint256 payment, 19 | bytes4 callbackFunctionId, 20 | uint256 expiration 21 | ) external; 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/FlagsInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | interface FlagsInterface { 5 | function getFlag(address) external view returns (bool); 6 | 7 | function getFlags(address[] calldata) external view returns (bool[] memory); 8 | 9 | function raiseFlag(address) external; 10 | 11 | function raiseFlags(address[] calldata) external; 12 | 13 | function lowerFlags(address[] calldata) external; 14 | 15 | function setRaisingAccessController(address) external; 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/OperatorInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | import "./ChainlinkRequestInterface.sol"; 5 | import "./OracleInterface.sol"; 6 | 7 | interface OperatorInterface is ChainlinkRequestInterface, OracleInterface { 8 | function operatorRequest( 9 | address sender, 10 | uint256 payment, 11 | bytes32 specId, 12 | bytes4 callbackFunctionId, 13 | uint256 nonce, 14 | uint256 dataVersion, 15 | bytes calldata data 16 | ) external; 17 | 18 | function fulfillOracleRequest2( 19 | bytes32 requestId, 20 | uint256 payment, 21 | address callbackAddress, 22 | bytes4 callbackFunctionId, 23 | uint256 expiration, 24 | bytes calldata data 25 | ) external returns (bool); 26 | 27 | function ownerTransferAndCall( 28 | address to, 29 | uint256 value, 30 | bytes calldata data 31 | ) external returns (bool success); 32 | } 33 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/OracleInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | interface OracleInterface { 5 | function fulfillOracleRequest( 6 | bytes32 requestId, 7 | uint256 payment, 8 | address callbackAddress, 9 | bytes4 callbackFunctionId, 10 | uint256 expiration, 11 | bytes32 data 12 | ) external returns (bool); 13 | 14 | function withdraw(address recipient, uint256 amount) external; 15 | 16 | function withdrawable() external view returns (uint256); 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/OwnableInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | interface OwnableInterface { 5 | function owner() external returns (address); 6 | 7 | function transferOwnership(address recipient) external; 8 | 9 | function acceptOwnership() external; 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/PointerInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | interface PointerInterface { 5 | function getAddress() external view returns (address); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/TypeAndVersionInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | abstract contract TypeAndVersionInterface { 5 | function typeAndVersion() external pure virtual returns (string memory); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/UniswapAnchoredView.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | // Compound Finance's oracle interface 5 | interface UniswapAnchoredView { 6 | function price(string memory symbol) external view returns (uint256); 7 | } 8 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/interfaces/WithdrawalInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | interface WithdrawalInterface { 5 | /** 6 | * @notice transfer LINK held by the contract belonging to msg.sender to 7 | * another address 8 | * @param recipient is the address to send the LINK to 9 | * @param amount is the amount of LINK to send 10 | */ 11 | function withdraw(address recipient, uint256 amount) external; 12 | 13 | /** 14 | * @notice query the available amount of LINK to withdraw by msg.sender 15 | */ 16 | function withdrawable() external view returns (uint256); 17 | } 18 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/tests/ConfirmedOwnerTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | import "../ConfirmedOwner.sol"; 5 | 6 | contract ConfirmedOwnerTestHelper is ConfirmedOwner { 7 | event Here(); 8 | 9 | constructor() ConfirmedOwner(msg.sender) {} 10 | 11 | function modifierOnlyOwner() public onlyOwner { 12 | emit Here(); 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/tests/KeeperCompatibleTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | import "../KeeperCompatible.sol"; 5 | 6 | contract KeeperCompatibleTestHelper is KeeperCompatible { 7 | function checkUpkeep(bytes calldata) external override returns (bool, bytes memory) {} 8 | 9 | function performUpkeep(bytes calldata) external override {} 10 | 11 | function testCannotExecute() public view cannotExecute {} 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/tests/MockCompoundOracle.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | import "../interfaces/UniswapAnchoredView.sol"; 5 | 6 | contract MockCompoundOracle is UniswapAnchoredView { 7 | struct OracleDetails { 8 | uint256 price; 9 | uint256 decimals; 10 | } 11 | 12 | mapping(string => OracleDetails) s_oracleDetails; 13 | 14 | function price(string memory symbol) external view override returns (uint256) { 15 | return s_oracleDetails[symbol].price; 16 | } 17 | 18 | function setPrice( 19 | string memory symbol, 20 | uint256 newPrice, 21 | uint256 newDecimals 22 | ) public { 23 | OracleDetails memory details = s_oracleDetails[symbol]; 24 | details.price = newPrice; 25 | details.decimals = newDecimals; 26 | s_oracleDetails[symbol] = details; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/tests/UpkeepReverter.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | import "../KeeperCompatible.sol"; 5 | 6 | contract UpkeepReverter is KeeperCompatible { 7 | function checkUpkeep(bytes calldata data) 8 | public 9 | view 10 | override 11 | cannotExecute 12 | returns (bool callable, bytes calldata executedata) 13 | { 14 | require(false, "!working"); 15 | return (true, data); 16 | } 17 | 18 | function performUpkeep(bytes calldata) external pure override { 19 | require(false, "!working"); 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.7/vendor/ENSResolver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.7.0; 3 | 4 | abstract contract ENSResolver { 5 | function addr(bytes32 node) public view virtual returns (address); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/ConfirmedOwner.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | import "./ConfirmedOwnerWithProposal.sol"; 5 | 6 | /** 7 | * @title The ConfirmedOwner contract 8 | * @notice A contract with helpers for basic contract ownership. 9 | */ 10 | contract ConfirmedOwner is ConfirmedOwnerWithProposal { 11 | constructor(address newOwner) ConfirmedOwnerWithProposal(newOwner, address(0)) {} 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/KeeperBase.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | contract KeeperBase { 5 | error OnlySimulatedBackend(); 6 | 7 | /** 8 | * @notice method that allows it to be simulated via eth_call by checking that 9 | * the sender is the zero address. 10 | */ 11 | function preventExecution() internal view { 12 | if (tx.origin != address(0)) { 13 | revert OnlySimulatedBackend(); 14 | } 15 | } 16 | 17 | /** 18 | * @notice modifier that allows it to be simulated via eth_call by checking 19 | * that the sender is the zero address. 20 | */ 21 | modifier cannotExecute() { 22 | preventExecution(); 23 | _; 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/KeeperCompatible.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | import "./KeeperBase.sol"; 5 | import "./interfaces/KeeperCompatibleInterface.sol"; 6 | 7 | abstract contract KeeperCompatible is KeeperBase, KeeperCompatibleInterface {} 8 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/dev/interfaces/FlagsInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.6; 3 | 4 | interface FlagsInterface { 5 | function getFlag(address) external view returns (bool); 6 | 7 | function getFlags(address[] calldata) external view returns (bool[] memory); 8 | 9 | function raiseFlag(address) external; 10 | 11 | function raiseFlags(address[] calldata) external; 12 | 13 | function lowerFlag(address) external; 14 | 15 | function lowerFlags(address[] calldata) external; 16 | 17 | function setRaisingAccessController(address) external; 18 | 19 | function setLoweringAccessController(address) external; 20 | } 21 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/dev/interfaces/ForwarderInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | /// @title ForwarderInterface - forwards a call to a target, under some conditions 5 | interface ForwarderInterface { 6 | /** 7 | * @notice forward calls the `target` with `data` 8 | * @param target contract address to be called 9 | * @param data to send to target contract 10 | */ 11 | function forward(address target, bytes memory data) external; 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/AccessControllerInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | interface AccessControllerInterface { 5 | function hasAccess(address user, bytes calldata data) external view returns (bool); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/AggregatorInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | interface AggregatorInterface { 5 | function latestAnswer() external view returns (int256); 6 | 7 | function latestTimestamp() external view returns (uint256); 8 | 9 | function latestRound() external view returns (uint256); 10 | 11 | function getAnswer(uint256 roundId) external view returns (int256); 12 | 13 | function getTimestamp(uint256 roundId) external view returns (uint256); 14 | 15 | event AnswerUpdated(int256 indexed current, uint256 indexed roundId, uint256 updatedAt); 16 | 17 | event NewRound(uint256 indexed roundId, address indexed startedBy, uint256 startedAt); 18 | } 19 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/AggregatorV2V3Interface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | import "./AggregatorInterface.sol"; 5 | import "./AggregatorV3Interface.sol"; 6 | 7 | interface AggregatorV2V3Interface is AggregatorInterface, AggregatorV3Interface {} 8 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/AggregatorValidatorInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | interface AggregatorValidatorInterface { 5 | function validate( 6 | uint256 previousRoundId, 7 | int256 previousAnswer, 8 | uint256 currentRoundId, 9 | int256 currentAnswer 10 | ) external returns (bool); 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/BlockhashStoreInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | interface BlockhashStoreInterface { 5 | function getBlockhash(uint256 number) external view returns (bytes32); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/ChainlinkRequestInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | interface ChainlinkRequestInterface { 5 | function oracleRequest( 6 | address sender, 7 | uint256 requestPrice, 8 | bytes32 serviceAgreementID, 9 | address callbackAddress, 10 | bytes4 callbackFunctionId, 11 | uint256 nonce, 12 | uint256 dataVersion, 13 | bytes calldata data 14 | ) external; 15 | 16 | function cancelOracleRequest( 17 | bytes32 requestId, 18 | uint256 payment, 19 | bytes4 callbackFunctionId, 20 | uint256 expiration 21 | ) external; 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/ERC677ReceiverInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.6; 3 | 4 | interface ERC677ReceiverInterface { 5 | function onTokenTransfer( 6 | address sender, 7 | uint256 amount, 8 | bytes calldata data 9 | ) external; 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/FlagsInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | interface FlagsInterface { 5 | function getFlag(address) external view returns (bool); 6 | 7 | function getFlags(address[] calldata) external view returns (bool[] memory); 8 | 9 | function raiseFlag(address) external; 10 | 11 | function raiseFlags(address[] calldata) external; 12 | 13 | function lowerFlags(address[] calldata) external; 14 | 15 | function setRaisingAccessController(address) external; 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/OracleInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | interface OracleInterface { 5 | function fulfillOracleRequest( 6 | bytes32 requestId, 7 | uint256 payment, 8 | address callbackAddress, 9 | bytes4 callbackFunctionId, 10 | uint256 expiration, 11 | bytes32 data 12 | ) external returns (bool); 13 | 14 | function isAuthorizedSender(address node) external view returns (bool); 15 | 16 | function withdraw(address recipient, uint256 amount) external; 17 | 18 | function withdrawable() external view returns (uint256); 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/OwnableInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | interface OwnableInterface { 5 | function owner() external returns (address); 6 | 7 | function transferOwnership(address recipient) external; 8 | 9 | function acceptOwnership() external; 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/PointerInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | interface PointerInterface { 5 | function getAddress() external view returns (address); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/interfaces/TypeAndVersionInterface.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | abstract contract TypeAndVersionInterface { 5 | function typeAndVersion() external pure virtual returns (string memory); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/mocks/MockAggregator.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | contract MockAggregator { 5 | int256 public s_answer; 6 | 7 | function setLatestAnswer(int256 answer) public { 8 | s_answer = answer; 9 | } 10 | 11 | function latestAnswer() public view returns (int256) { 12 | return s_answer; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/mocks/MockAggregatorValidator.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | import "../interfaces/AggregatorValidatorInterface.sol"; 5 | 6 | contract MockAggregatorValidator is AggregatorValidatorInterface { 7 | uint8 immutable id; 8 | 9 | constructor(uint8 id_) { 10 | id = id_; 11 | } 12 | 13 | event ValidateCalled( 14 | uint8 id, 15 | uint256 previousRoundId, 16 | int256 previousAnswer, 17 | uint256 currentRoundId, 18 | int256 currentAnswer 19 | ); 20 | 21 | function validate( 22 | uint256 previousRoundId, 23 | int256 previousAnswer, 24 | uint256 currentRoundId, 25 | int256 currentAnswer 26 | ) external override returns (bool) { 27 | emit ValidateCalled(id, previousRoundId, previousAnswer, currentRoundId, currentAnswer); 28 | return true; 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/tests/CronReceiver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity 0.8.6; 4 | 5 | contract CronReceiver { 6 | event Received1(); 7 | event Received2(); 8 | 9 | function handler1() external { 10 | emit Received1(); 11 | } 12 | 13 | function handler2() external { 14 | emit Received2(); 15 | } 16 | 17 | function revertHandler() external { 18 | revert("revert!"); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/tests/EthBalanceMonitorExposed.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity 0.8.6; 4 | 5 | import "../upkeeps/EthBalanceMonitor.sol"; 6 | 7 | contract EthBalanceMonitorExposed is EthBalanceMonitor { 8 | constructor(address keeperRegistryAddress, uint256 minWaitPeriod) 9 | EthBalanceMonitor(keeperRegistryAddress, minWaitPeriod) 10 | {} 11 | 12 | function setLastTopUpXXXTestOnly(address target, uint56 lastTopUpTimestamp) external { 13 | s_targets[target].lastTopUpTimestamp = lastTopUpTimestamp; 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/tests/FlagsTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | import "../Flags.sol"; 5 | 6 | contract FlagsTestHelper { 7 | Flags public flags; 8 | 9 | constructor(address flagsContract) { 10 | flags = Flags(flagsContract); 11 | } 12 | 13 | function getFlag(address subject) external view returns (bool) { 14 | return flags.getFlag(subject); 15 | } 16 | 17 | function getFlags(address[] calldata subjects) external view returns (bool[] memory) { 18 | return flags.getFlags(subjects); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/tests/KeeperCompatibleTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | import "../KeeperCompatible.sol"; 5 | 6 | contract KeeperCompatibleTestHelper is KeeperCompatible { 7 | function checkUpkeep(bytes calldata) external override returns (bool, bytes memory) {} 8 | 9 | function performUpkeep(bytes calldata) external override {} 10 | 11 | function testCannotExecute() public view cannotExecute {} 12 | } 13 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/tests/ReceiveEmitter.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity 0.8.6; 4 | 5 | contract ReceiveEmitter { 6 | event FundsReceived(uint256 amount, uint256 newBalance); 7 | 8 | receive() external payable { 9 | emit FundsReceived(msg.value, address(this).balance); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/tests/ReceiveFallbackEmitter.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity 0.8.6; 4 | 5 | contract ReceiveFallbackEmitter { 6 | event FundsReceived(uint256 amount, uint256 newBalance); 7 | 8 | fallback() external payable { 9 | emit FundsReceived(msg.value, address(this).balance); 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/tests/ReceiveReverter.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity 0.8.6; 4 | 5 | contract ReceiveReverter { 6 | receive() external payable { 7 | revert("Can't send funds"); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/tests/VRFConsumer.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | import "../interfaces/LinkTokenInterface.sol"; 5 | import "../VRFConsumerBase.sol"; 6 | 7 | contract VRFConsumer is VRFConsumerBase { 8 | uint256 public randomnessOutput; 9 | bytes32 public requestId; 10 | 11 | constructor(address vrfCoordinator, address link) 12 | // solhint-disable-next-line no-empty-blocks 13 | VRFConsumerBase(vrfCoordinator, link) 14 | { 15 | /* empty */ 16 | } 17 | 18 | function fulfillRandomness( 19 | bytes32, /* requestId */ 20 | uint256 randomness 21 | ) internal override { 22 | randomnessOutput = randomness; 23 | requestId = requestId; 24 | } 25 | 26 | function testRequestRandomness(bytes32 keyHash, uint256 fee) external returns (bytes32) { 27 | return requestRandomness(keyHash, fee); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/tests/VRFRequestIDBaseTestHelper.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | import "../VRFRequestIDBase.sol"; 5 | 6 | contract VRFRequestIDBaseTestHelper is VRFRequestIDBase { 7 | function makeVRFInputSeed_( 8 | bytes32 _keyHash, 9 | uint256 _userSeed, 10 | address _requester, 11 | uint256 _nonce 12 | ) public pure returns (uint256) { 13 | return makeVRFInputSeed(_keyHash, _userSeed, _requester, _nonce); 14 | } 15 | 16 | function makeRequestId_(bytes32 _keyHash, uint256 _vRFInputSeed) public pure returns (bytes32) { 17 | return makeRequestId(_keyHash, _vRFInputSeed); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/utils/utils.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | 3 | pragma solidity 0.8.6; 4 | 5 | /** 6 | * @notice getRevertMsg extracts a revert reason from a failed contract call 7 | */ 8 | function getRevertMsg(bytes memory payload) pure returns (string memory) { 9 | if (payload.length < 68) return "transaction reverted silently"; 10 | assembly { 11 | payload := add(payload, 0x04) 12 | } 13 | return abi.decode(payload, (string)); 14 | } 15 | -------------------------------------------------------------------------------- /node_modules/@chainlink/contracts/src/v0.8/vendor/ENSResolver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | pragma solidity ^0.8.0; 3 | 4 | abstract contract ENSResolver { 5 | function addr(bytes32 node) public view virtual returns (address); 6 | } 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Address.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Address", 4 | "sourceName": "contracts/utils/Address.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207dfabd396a8aa1156722621fdcd4e70661fee88a9c83bd47a83bb252c1e692f064736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212207dfabd396a8aa1156722621fdcd4e70661fee88a9c83bd47a83bb252c1e692f064736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Arrays.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Arrays", 4 | "sourceName": "contracts/utils/Arrays.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122009c8e908574eb277ebc60259a80bab95ad41b552beeda6396d9f9eaee1b6c36164736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122009c8e908574eb277ebc60259a80bab95ad41b552beeda6396d9f9eaee1b6c36164736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/BitMaps.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "BitMaps", 4 | "sourceName": "contracts/utils/structs/BitMaps.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220145c53f830144be40b091aab2c6ebd37fc7fd3ef0d33ec7928918eb8b83a17d764736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220145c53f830144be40b091aab2c6ebd37fc7fd3ef0d33ec7928918eb8b83a17d764736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Clones.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Clones", 4 | "sourceName": "contracts/proxy/Clones.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e08de55d088d7116217a5887cc5c6662cd141e9457c5a6758983aab6b94368b764736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220e08de55d088d7116217a5887cc5c6662cd141e9457c5a6758983aab6b94368b764736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Context.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Context", 4 | "sourceName": "contracts/utils/Context.sol", 5 | "abi": [], 6 | "bytecode": "0x", 7 | "deployedBytecode": "0x", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Counters.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Counters", 4 | "sourceName": "contracts/utils/Counters.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220305e035bccaa308c91a5827088e02dc6fca355b6a1af71fa8fdab828be8b244964736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220305e035bccaa308c91a5827088e02dc6fca355b6a1af71fa8fdab828be8b244964736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Create2.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Create2", 4 | "sourceName": "contracts/utils/Create2.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200015583cf50a14f0323de85afd7323af9520198a95fb4b72683ca2a32e87ac8664736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212200015583cf50a14f0323de85afd7323af9520198a95fb4b72683ca2a32e87ac8664736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/ECDSA.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "ECDSA", 4 | "sourceName": "contracts/utils/cryptography/ECDSA.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220984da206ea5237ad9bd282b677382ceca7b4ab2f95e8ad144eac164f9653f3eb64736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220984da206ea5237ad9bd282b677382ceca7b4ab2f95e8ad144eac164f9653f3eb64736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/EIP712.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "EIP712", 4 | "sourceName": "contracts/utils/cryptography/draft-EIP712.sol", 5 | "abi": [], 6 | "bytecode": "0x", 7 | "deployedBytecode": "0x", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/ERC165.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "ERC165", 4 | "sourceName": "contracts/utils/introspection/ERC165.sol", 5 | "abi": [ 6 | { 7 | "inputs": [ 8 | { 9 | "internalType": "bytes4", 10 | "name": "interfaceId", 11 | "type": "bytes4" 12 | } 13 | ], 14 | "name": "supportsInterface", 15 | "outputs": [ 16 | { 17 | "internalType": "bool", 18 | "name": "", 19 | "type": "bool" 20 | } 21 | ], 22 | "stateMutability": "view", 23 | "type": "function" 24 | } 25 | ], 26 | "bytecode": "0x", 27 | "deployedBytecode": "0x", 28 | "linkReferences": {}, 29 | "deployedLinkReferences": {} 30 | } 31 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/ERC165Checker.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "ERC165Checker", 4 | "sourceName": "contracts/utils/introspection/ERC165Checker.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b70ca1c8d6bd8fc1af346941ef45aaa9c7df1375cbccc82178fc24a04686768f64736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b70ca1c8d6bd8fc1af346941ef45aaa9c7df1375cbccc82178fc24a04686768f64736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/ERC165Storage.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "ERC165Storage", 4 | "sourceName": "contracts/utils/introspection/ERC165Storage.sol", 5 | "abi": [ 6 | { 7 | "inputs": [ 8 | { 9 | "internalType": "bytes4", 10 | "name": "interfaceId", 11 | "type": "bytes4" 12 | } 13 | ], 14 | "name": "supportsInterface", 15 | "outputs": [ 16 | { 17 | "internalType": "bool", 18 | "name": "", 19 | "type": "bool" 20 | } 21 | ], 22 | "stateMutability": "view", 23 | "type": "function" 24 | } 25 | ], 26 | "bytecode": "0x", 27 | "deployedBytecode": "0x", 28 | "linkReferences": {}, 29 | "deployedLinkReferences": {} 30 | } 31 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/ERC2771Context.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "ERC2771Context", 4 | "sourceName": "contracts/metatx/ERC2771Context.sol", 5 | "abi": [ 6 | { 7 | "inputs": [ 8 | { 9 | "internalType": "address", 10 | "name": "forwarder", 11 | "type": "address" 12 | } 13 | ], 14 | "name": "isTrustedForwarder", 15 | "outputs": [ 16 | { 17 | "internalType": "bool", 18 | "name": "", 19 | "type": "bool" 20 | } 21 | ], 22 | "stateMutability": "view", 23 | "type": "function" 24 | } 25 | ], 26 | "bytecode": "0x", 27 | "deployedBytecode": "0x", 28 | "linkReferences": {}, 29 | "deployedLinkReferences": {} 30 | } 31 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/EnumerableMap.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "EnumerableMap", 4 | "sourceName": "contracts/utils/structs/EnumerableMap.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c2e7523c6a7d289cdf441d0876a0718d2cf3b39dc93b2622388de9a3a1d1d0064736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209c2e7523c6a7d289cdf441d0876a0718d2cf3b39dc93b2622388de9a3a1d1d0064736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/EnumerableSet.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "EnumerableSet", 4 | "sourceName": "contracts/utils/structs/EnumerableSet.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd58dfabae2c1584a99e57d9080a8daf3b3a14950dd258df98031bfeef451cc564736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220cd58dfabae2c1584a99e57d9080a8daf3b3a14950dd258df98031bfeef451cc564736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/IBeacon.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "IBeacon", 4 | "sourceName": "contracts/proxy/beacon/IBeacon.sol", 5 | "abi": [ 6 | { 7 | "inputs": [], 8 | "name": "implementation", 9 | "outputs": [ 10 | { 11 | "internalType": "address", 12 | "name": "", 13 | "type": "address" 14 | } 15 | ], 16 | "stateMutability": "view", 17 | "type": "function" 18 | } 19 | ], 20 | "bytecode": "0x", 21 | "deployedBytecode": "0x", 22 | "linkReferences": {}, 23 | "deployedLinkReferences": {} 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/IERC1271.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "IERC1271", 4 | "sourceName": "contracts/interfaces/IERC1271.sol", 5 | "abi": [ 6 | { 7 | "inputs": [ 8 | { 9 | "internalType": "bytes32", 10 | "name": "hash", 11 | "type": "bytes32" 12 | }, 13 | { 14 | "internalType": "bytes", 15 | "name": "signature", 16 | "type": "bytes" 17 | } 18 | ], 19 | "name": "isValidSignature", 20 | "outputs": [ 21 | { 22 | "internalType": "bytes4", 23 | "name": "magicValue", 24 | "type": "bytes4" 25 | } 26 | ], 27 | "stateMutability": "view", 28 | "type": "function" 29 | } 30 | ], 31 | "bytecode": "0x", 32 | "deployedBytecode": "0x", 33 | "linkReferences": {}, 34 | "deployedLinkReferences": {} 35 | } 36 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/IERC1363Spender.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "IERC1363Spender", 4 | "sourceName": "contracts/interfaces/IERC1363Spender.sol", 5 | "abi": [ 6 | { 7 | "inputs": [ 8 | { 9 | "internalType": "address", 10 | "name": "owner", 11 | "type": "address" 12 | }, 13 | { 14 | "internalType": "uint256", 15 | "name": "value", 16 | "type": "uint256" 17 | }, 18 | { 19 | "internalType": "bytes", 20 | "name": "data", 21 | "type": "bytes" 22 | } 23 | ], 24 | "name": "onApprovalReceived", 25 | "outputs": [ 26 | { 27 | "internalType": "bytes4", 28 | "name": "", 29 | "type": "bytes4" 30 | } 31 | ], 32 | "stateMutability": "nonpayable", 33 | "type": "function" 34 | } 35 | ], 36 | "bytecode": "0x", 37 | "deployedBytecode": "0x", 38 | "linkReferences": {}, 39 | "deployedLinkReferences": {} 40 | } 41 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/IERC165.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "IERC165", 4 | "sourceName": "contracts/utils/introspection/IERC165.sol", 5 | "abi": [ 6 | { 7 | "inputs": [ 8 | { 9 | "internalType": "bytes4", 10 | "name": "interfaceId", 11 | "type": "bytes4" 12 | } 13 | ], 14 | "name": "supportsInterface", 15 | "outputs": [ 16 | { 17 | "internalType": "bool", 18 | "name": "", 19 | "type": "bool" 20 | } 21 | ], 22 | "stateMutability": "view", 23 | "type": "function" 24 | } 25 | ], 26 | "bytecode": "0x", 27 | "deployedBytecode": "0x", 28 | "linkReferences": {}, 29 | "deployedLinkReferences": {} 30 | } 31 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/IERC1820Implementer.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "IERC1820Implementer", 4 | "sourceName": "contracts/utils/introspection/IERC1820Implementer.sol", 5 | "abi": [ 6 | { 7 | "inputs": [ 8 | { 9 | "internalType": "bytes32", 10 | "name": "interfaceHash", 11 | "type": "bytes32" 12 | }, 13 | { 14 | "internalType": "address", 15 | "name": "account", 16 | "type": "address" 17 | } 18 | ], 19 | "name": "canImplementInterfaceForAddress", 20 | "outputs": [ 21 | { 22 | "internalType": "bytes32", 23 | "name": "", 24 | "type": "bytes32" 25 | } 26 | ], 27 | "stateMutability": "view", 28 | "type": "function" 29 | } 30 | ], 31 | "bytecode": "0x", 32 | "deployedBytecode": "0x", 33 | "linkReferences": {}, 34 | "deployedLinkReferences": {} 35 | } 36 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Initializable.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Initializable", 4 | "sourceName": "contracts/proxy/utils/Initializable.sol", 5 | "abi": [], 6 | "bytecode": "0x", 7 | "deployedBytecode": "0x", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Math.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Math", 4 | "sourceName": "contracts/utils/math/Math.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209eff901bb1b760973749b4c429b0c7e411d72a4a243a9a695092c552ec01480c64736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212209eff901bb1b760973749b4c429b0c7e411d72a4a243a9a695092c552ec01480c64736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/MerkleProof.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "MerkleProof", 4 | "sourceName": "contracts/utils/cryptography/MerkleProof.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208a3a352cc56638d717fa6c6ab00bdd6ab9495bd8d7d1b0b51c64a3d0391bb80864736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212208a3a352cc56638d717fa6c6ab00bdd6ab9495bd8d7d1b0b51c64a3d0391bb80864736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Multicall.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Multicall", 4 | "sourceName": "contracts/utils/Multicall.sol", 5 | "abi": [ 6 | { 7 | "inputs": [ 8 | { 9 | "internalType": "bytes[]", 10 | "name": "data", 11 | "type": "bytes[]" 12 | } 13 | ], 14 | "name": "multicall", 15 | "outputs": [ 16 | { 17 | "internalType": "bytes[]", 18 | "name": "results", 19 | "type": "bytes[]" 20 | } 21 | ], 22 | "stateMutability": "nonpayable", 23 | "type": "function" 24 | } 25 | ], 26 | "bytecode": "0x", 27 | "deployedBytecode": "0x", 28 | "linkReferences": {}, 29 | "deployedLinkReferences": {} 30 | } 31 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Proxy.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Proxy", 4 | "sourceName": "contracts/proxy/Proxy.sol", 5 | "abi": [ 6 | { 7 | "stateMutability": "payable", 8 | "type": "fallback" 9 | }, 10 | { 11 | "stateMutability": "payable", 12 | "type": "receive" 13 | } 14 | ], 15 | "bytecode": "0x", 16 | "deployedBytecode": "0x", 17 | "linkReferences": {}, 18 | "deployedLinkReferences": {} 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/ReentrancyGuard.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "ReentrancyGuard", 4 | "sourceName": "contracts/security/ReentrancyGuard.sol", 5 | "abi": [], 6 | "bytecode": "0x", 7 | "deployedBytecode": "0x", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/SafeCast.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "SafeCast", 4 | "sourceName": "contracts/utils/math/SafeCast.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220119ce23b82e38e39e47e2070cf05a7c1d9c8fecafcb8fa5374d8aeb2892398ee64736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220119ce23b82e38e39e47e2070cf05a7c1d9c8fecafcb8fa5374d8aeb2892398ee64736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/SafeERC20.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "SafeERC20", 4 | "sourceName": "contracts/token/ERC20/utils/SafeERC20.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220240a04c00bf2f51703fb0131a50af17b8c9d455aed2775d2415a2b7bc684449364736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220240a04c00bf2f51703fb0131a50af17b8c9d455aed2775d2415a2b7bc684449364736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/SafeMath.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "SafeMath", 4 | "sourceName": "contracts/utils/math/SafeMath.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bb2305c5db383a8a23a2c5639a78228972a5baee49c45e5a26441f807702cf5364736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220bb2305c5db383a8a23a2c5639a78228972a5baee49c45e5a26441f807702cf5364736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/SignatureChecker.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "SignatureChecker", 4 | "sourceName": "contracts/utils/cryptography/SignatureChecker.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202262ce6e260d1553d177cbfc56d24e1e3cddb9e3f1d786bb5c2ab80ad81b4fc664736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212202262ce6e260d1553d177cbfc56d24e1e3cddb9e3f1d786bb5c2ab80ad81b4fc664736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/SignedSafeMath.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "SignedSafeMath", 4 | "sourceName": "contracts/utils/math/SignedSafeMath.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a4349ffd9a2a49f3d3516184237a89bbd68b5502800cb58534e367c7edd443e464736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a4349ffd9a2a49f3d3516184237a89bbd68b5502800cb58534e367c7edd443e464736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/StorageSlot.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "StorageSlot", 4 | "sourceName": "contracts/utils/StorageSlot.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b53f68b00a89b9ec2f013d50c1b99271b42862a0080623131a64475bf74b67ce64736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220b53f68b00a89b9ec2f013d50c1b99271b42862a0080623131a64475bf74b67ce64736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Strings.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Strings", 4 | "sourceName": "contracts/utils/Strings.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a3bded0f7557649d73776e86e0c0f597d0a937a8012016cf81293a26bc6bee3a64736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220a3bded0f7557649d73776e86e0c0f597d0a937a8012016cf81293a26bc6bee3a64736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/build/contracts/Timers.json: -------------------------------------------------------------------------------- 1 | { 2 | "_format": "hh-sol-artifact-1", 3 | "contractName": "Timers", 4 | "sourceName": "contracts/utils/Timers.sol", 5 | "abi": [], 6 | "bytecode": "0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122069999d654e748bafe5475d32569b021d02c2f69de43ca63552bdef6fb889e81b64736f6c63430008030033", 7 | "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600080fdfea264697066735822122069999d654e748bafe5475d32569b021d02c2f69de43ca63552bdef6fb889e81b64736f6c63430008030033", 8 | "linkReferences": {}, 9 | "deployedLinkReferences": {} 10 | } 11 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/governance/extensions/GovernorProposalThreshold.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorProposalThreshold.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../Governor.sol"; 7 | 8 | /** 9 | * @dev Extension of {Governor} for proposal restriction to token holders with a minimum balance. 10 | * 11 | * _Available since v4.3._ 12 | * _Deprecated since v4.4._ 13 | */ 14 | abstract contract GovernorProposalThreshold is Governor { 15 | function propose( 16 | address[] memory targets, 17 | uint256[] memory values, 18 | bytes[] memory calldatas, 19 | string memory description 20 | ) public virtual override returns (uint256) { 21 | return super.propose(targets, values, calldatas, description); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotes.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorVotes.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../Governor.sol"; 7 | import "../../token/ERC20/extensions/ERC20Votes.sol"; 8 | import "../../utils/math/Math.sol"; 9 | 10 | /** 11 | * @dev Extension of {Governor} for voting weight extraction from an {ERC20Votes} token. 12 | * 13 | * _Available since v4.3._ 14 | */ 15 | abstract contract GovernorVotes is Governor { 16 | ERC20Votes public immutable token; 17 | 18 | constructor(ERC20Votes tokenAddress) { 19 | token = tokenAddress; 20 | } 21 | 22 | /** 23 | * Read the voting weight from the token's built in snapshot mechanism (see {IGovernor-getVotes}). 24 | */ 25 | function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) { 26 | return token.getPastVotes(account, blockNumber); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/governance/extensions/GovernorVotesComp.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (governance/extensions/GovernorVotesComp.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../Governor.sol"; 7 | import "../../token/ERC20/extensions/ERC20VotesComp.sol"; 8 | 9 | /** 10 | * @dev Extension of {Governor} for voting weight extraction from a Comp token. 11 | * 12 | * _Available since v4.3._ 13 | */ 14 | abstract contract GovernorVotesComp is Governor { 15 | ERC20VotesComp public immutable token; 16 | 17 | constructor(ERC20VotesComp token_) { 18 | token = token_; 19 | } 20 | 21 | /** 22 | * Read the voting weight from the token's built in snapshot mechanism (see {IGovernor-getVotes}). 23 | */ 24 | function getVotes(address account, uint256 blockNumber) public view virtual override returns (uint256) { 25 | return token.getPriorVotes(account, blockNumber); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/governance/extensions/IGovernorTimelock.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (governance/extensions/IGovernorTimelock.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../IGovernor.sol"; 7 | 8 | /** 9 | * @dev Extension of the {IGovernor} for timelock supporting modules. 10 | * 11 | * _Available since v4.3._ 12 | */ 13 | abstract contract IGovernorTimelock is IGovernor { 14 | event ProposalQueued(uint256 proposalId, uint256 eta); 15 | 16 | function timelock() public view virtual returns (address); 17 | 18 | function proposalEta(uint256 proposalId) public view virtual returns (uint256); 19 | 20 | function queue( 21 | address[] memory targets, 22 | uint256[] memory values, 23 | bytes[] memory calldatas, 24 | bytes32 descriptionHash 25 | ) public virtual returns (uint256 proposalId); 26 | } 27 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC1155.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC1155.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC1155/IERC1155.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC1155MetadataURI.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC1155MetadataURI.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC1155/extensions/IERC1155MetadataURI.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC1155Receiver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC1155Receiver.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC1155/IERC1155Receiver.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC1271.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC1271.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | /** 7 | * @dev Interface of the ERC1271 standard signature validation method for 8 | * contracts as defined in https://eips.ethereum.org/EIPS/eip-1271[ERC-1271]. 9 | * 10 | * _Available since v4.1._ 11 | */ 12 | interface IERC1271 { 13 | /** 14 | * @dev Should return whether the signature provided is valid for the provided data 15 | * @param hash Hash of the data to be signed 16 | * @param signature Signature byte array associated with _data 17 | */ 18 | function isValidSignature(bytes32 hash, bytes memory signature) external view returns (bytes4 magicValue); 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC165.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC165.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../utils/introspection/IERC165.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC1820Implementer.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC1820Implementer.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../utils/introspection/IERC1820Implementer.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC1820Registry.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC1820Registry.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../utils/introspection/IERC1820Registry.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC20.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC20.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC20/IERC20.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC20Metadata.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC20Metadata.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC20/extensions/IERC20Metadata.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC2981.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC2981.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "./IERC165.sol"; 7 | 8 | /** 9 | * @dev Interface for the NFT Royalty Standard 10 | */ 11 | interface IERC2981 is IERC165 { 12 | /** 13 | * @dev Called with the sale price to determine how much royalty is owed and to whom. 14 | * @param tokenId - the NFT asset queried for royalty information 15 | * @param salePrice - the sale price of the NFT asset specified by `tokenId` 16 | * @return receiver - address of who should be sent the royalty payment 17 | * @return royaltyAmount - the royalty payment amount for `salePrice` 18 | */ 19 | function royaltyInfo(uint256 tokenId, uint256 salePrice) 20 | external 21 | view 22 | returns (address receiver, uint256 royaltyAmount); 23 | } 24 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC3156.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC3156.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "./IERC3156FlashBorrower.sol"; 7 | import "./IERC3156FlashLender.sol"; 8 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC721.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC721.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/IERC721.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC721Enumerable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC721Enumerable.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/extensions/IERC721Enumerable.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC721Metadata.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC721Metadata.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/extensions/IERC721Metadata.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC721Receiver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC721Receiver.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC721/IERC721Receiver.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC777.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC777.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC777/IERC777.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC777Recipient.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC777Recipient.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC777/IERC777Recipient.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/IERC777Sender.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/IERC777Sender.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC777/IERC777Sender.sol"; 7 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/interfaces/draft-IERC2612.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (interfaces/draft-IERC2612.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../token/ERC20/extensions/draft-IERC20Permit.sol"; 7 | 8 | interface IERC2612 is IERC20Permit {} 9 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/proxy/beacon/IBeacon.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (proxy/beacon/IBeacon.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | /** 7 | * @dev This is the interface that {BeaconProxy} expects of its beacon. 8 | */ 9 | interface IBeacon { 10 | /** 11 | * @dev Must return an address that can be used as a delegate call target. 12 | * 13 | * {BeaconProxy} will check that this address is a contract. 14 | */ 15 | function implementation() external view returns (address); 16 | } 17 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (token/ERC1155/extensions/IERC1155MetadataURI.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../IERC1155.sol"; 7 | 8 | /** 9 | * @dev Interface of the optional ERC1155MetadataExtension interface, as defined 10 | * in the https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[EIP]. 11 | * 12 | * _Available since v3.1._ 13 | */ 14 | interface IERC1155MetadataURI is IERC1155 { 15 | /** 16 | * @dev Returns the URI for token type `id`. 17 | * 18 | * If the `\{id\}` substring is present in the URI, it must be replaced by 19 | * clients with the actual token type ID. 20 | */ 21 | function uri(uint256 id) external view returns (string memory); 22 | } 23 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (token/ERC1155/utils/ERC1155Holder.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "./ERC1155Receiver.sol"; 7 | 8 | /** 9 | * @dev _Available since v3.1._ 10 | */ 11 | contract ERC1155Holder is ERC1155Receiver { 12 | function onERC1155Received( 13 | address, 14 | address, 15 | uint256, 16 | uint256, 17 | bytes memory 18 | ) public virtual override returns (bytes4) { 19 | return this.onERC1155Received.selector; 20 | } 21 | 22 | function onERC1155BatchReceived( 23 | address, 24 | address, 25 | uint256[] memory, 26 | uint256[] memory, 27 | bytes memory 28 | ) public virtual override returns (bytes4) { 29 | return this.onERC1155BatchReceived.selector; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/token/ERC1155/utils/ERC1155Receiver.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (token/ERC1155/utils/ERC1155Receiver.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../IERC1155Receiver.sol"; 7 | import "../../../utils/introspection/ERC165.sol"; 8 | 9 | /** 10 | * @dev _Available since v3.1._ 11 | */ 12 | abstract contract ERC1155Receiver is ERC165, IERC1155Receiver { 13 | /** 14 | * @dev See {IERC165-supportsInterface}. 15 | */ 16 | function supportsInterface(bytes4 interfaceId) public view virtual override(ERC165, IERC165) returns (bool) { 17 | return interfaceId == type(IERC1155Receiver).interfaceId || super.supportsInterface(interfaceId); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (token/ERC20/extensions/IERC20Metadata.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../IERC20.sol"; 7 | 8 | /** 9 | * @dev Interface for the optional metadata functions from the ERC20 standard. 10 | * 11 | * _Available since v4.1._ 12 | */ 13 | interface IERC20Metadata is IERC20 { 14 | /** 15 | * @dev Returns the name of the token. 16 | */ 17 | function name() external view returns (string memory); 18 | 19 | /** 20 | * @dev Returns the symbol of the token. 21 | */ 22 | function symbol() external view returns (string memory); 23 | 24 | /** 25 | * @dev Returns the decimals places of the token. 26 | */ 27 | function decimals() external view returns (uint8); 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/token/ERC721/extensions/ERC721Burnable.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/ERC721Burnable.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../ERC721.sol"; 7 | import "../../../utils/Context.sol"; 8 | 9 | /** 10 | * @title ERC721 Burnable Token 11 | * @dev ERC721 Token that can be irreversibly burned (destroyed). 12 | */ 13 | abstract contract ERC721Burnable is Context, ERC721 { 14 | /** 15 | * @dev Burns `tokenId`. See {ERC721-_burn}. 16 | * 17 | * Requirements: 18 | * 19 | * - The caller must own `tokenId` or be an approved operator. 20 | */ 21 | function burn(uint256 tokenId) public virtual { 22 | //solhint-disable-next-line max-line-length 23 | require(_isApprovedOrOwner(_msgSender(), tokenId), "ERC721Burnable: caller is not owner nor approved"); 24 | _burn(tokenId); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (token/ERC721/extensions/IERC721Metadata.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../IERC721.sol"; 7 | 8 | /** 9 | * @title ERC-721 Non-Fungible Token Standard, optional metadata extension 10 | * @dev See https://eips.ethereum.org/EIPS/eip-721 11 | */ 12 | interface IERC721Metadata is IERC721 { 13 | /** 14 | * @dev Returns the token collection name. 15 | */ 16 | function name() external view returns (string memory); 17 | 18 | /** 19 | * @dev Returns the token collection symbol. 20 | */ 21 | function symbol() external view returns (string memory); 22 | 23 | /** 24 | * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. 25 | */ 26 | function tokenURI(uint256 tokenId) external view returns (string memory); 27 | } 28 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (token/ERC721/utils/ERC721Holder.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "../IERC721Receiver.sol"; 7 | 8 | /** 9 | * @dev Implementation of the {IERC721Receiver} interface. 10 | * 11 | * Accepts all token transfers. 12 | * Make sure the contract is able to use its token with {IERC721-safeTransferFrom}, {IERC721-approve} or {IERC721-setApprovalForAll}. 13 | */ 14 | contract ERC721Holder is IERC721Receiver { 15 | /** 16 | * @dev See {IERC721Receiver-onERC721Received}. 17 | * 18 | * Always returns `IERC721Receiver.onERC721Received.selector`. 19 | */ 20 | function onERC721Received( 21 | address, 22 | address, 23 | uint256, 24 | bytes memory 25 | ) public virtual override returns (bytes4) { 26 | return this.onERC721Received.selector; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/token/ERC777/presets/ERC777PresetFixedSupply.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (token/ERC777/presets/ERC777PresetFixedSupply.sol) 3 | pragma solidity ^0.8.0; 4 | 5 | import "../ERC777.sol"; 6 | 7 | /** 8 | * @dev {ERC777} token, including: 9 | * 10 | * - Preminted initial supply 11 | * - No access control mechanism (for minting/pausing) and hence no governance 12 | * 13 | * _Available since v3.4._ 14 | */ 15 | contract ERC777PresetFixedSupply is ERC777 { 16 | /** 17 | * @dev Mints `initialSupply` amount of token and transfers them to `owner`. 18 | * 19 | * See {ERC777-constructor}. 20 | */ 21 | constructor( 22 | string memory name, 23 | string memory symbol, 24 | address[] memory defaultOperators, 25 | uint256 initialSupply, 26 | address owner 27 | ) ERC777(name, symbol, defaultOperators) { 28 | _mint(owner, initialSupply, "", ""); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/utils/Context.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (utils/Context.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | /** 7 | * @dev Provides information about the current execution context, including the 8 | * sender of the transaction and its data. While these are generally available 9 | * via msg.sender and msg.data, they should not be accessed in such a direct 10 | * manner, since when dealing with meta-transactions the account sending and 11 | * paying for execution may not be the actual sender (as far as an application 12 | * is concerned). 13 | * 14 | * This contract is only required for intermediate, library-like contracts. 15 | */ 16 | abstract contract Context { 17 | function _msgSender() internal view virtual returns (address) { 18 | return msg.sender; 19 | } 20 | 21 | function _msgData() internal view virtual returns (bytes calldata) { 22 | return msg.data; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/utils/Multicall.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (utils/Multicall.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "./Address.sol"; 7 | 8 | /** 9 | * @dev Provides a function to batch together multiple calls in a single external call. 10 | * 11 | * _Available since v4.1._ 12 | */ 13 | abstract contract Multicall { 14 | /** 15 | * @dev Receives and executes a batch of function calls on this contract. 16 | */ 17 | function multicall(bytes[] calldata data) external returns (bytes[] memory results) { 18 | results = new bytes[](data.length); 19 | for (uint256 i = 0; i < data.length; i++) { 20 | results[i] = Address.functionDelegateCall(address(this), data[i]); 21 | } 22 | return results; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/utils/escrow/ConditionalEscrow.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (utils/escrow/ConditionalEscrow.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | import "./Escrow.sol"; 7 | 8 | /** 9 | * @title ConditionalEscrow 10 | * @dev Base abstract escrow to only allow withdrawal if a condition is met. 11 | * @dev Intended usage: See {Escrow}. Same usage guidelines apply here. 12 | */ 13 | abstract contract ConditionalEscrow is Escrow { 14 | /** 15 | * @dev Returns whether an address is allowed to withdraw their funds. To be 16 | * implemented by derived contracts. 17 | * @param payee The destination address of the funds. 18 | */ 19 | function withdrawalAllowed(address payee) public view virtual returns (bool); 20 | 21 | function withdraw(address payable payee) public virtual override { 22 | require(withdrawalAllowed(payee), "ConditionalEscrow: payee is not allowed to withdraw"); 23 | super.withdraw(payee); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (utils/introspection/IERC165.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | /** 7 | * @dev Interface of the ERC165 standard, as defined in the 8 | * https://eips.ethereum.org/EIPS/eip-165[EIP]. 9 | * 10 | * Implementers can declare support of contract interfaces, which can then be 11 | * queried by others ({ERC165Checker}). 12 | * 13 | * For an implementation, see {ERC165}. 14 | */ 15 | interface IERC165 { 16 | /** 17 | * @dev Returns true if this contract implements the interface defined by 18 | * `interfaceId`. See the corresponding 19 | * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] 20 | * to learn more about how these ids are created. 21 | * 22 | * This function call must use less than 30 000 gas. 23 | */ 24 | function supportsInterface(bytes4 interfaceId) external view returns (bool); 25 | } 26 | -------------------------------------------------------------------------------- /node_modules/@openzeppelin/contracts/utils/introspection/IERC1820Implementer.sol: -------------------------------------------------------------------------------- 1 | // SPDX-License-Identifier: MIT 2 | // OpenZeppelin Contracts v4.4.0 (utils/introspection/IERC1820Implementer.sol) 3 | 4 | pragma solidity ^0.8.0; 5 | 6 | /** 7 | * @dev Interface for an ERC1820 implementer, as defined in the 8 | * https://eips.ethereum.org/EIPS/eip-1820#interface-implementation-erc1820implementerinterface[EIP]. 9 | * Used by contracts that will be registered as implementers in the 10 | * {IERC1820Registry}. 11 | */ 12 | interface IERC1820Implementer { 13 | /** 14 | * @dev Returns a special value (`ERC1820_ACCEPT_MAGIC`) if this contract 15 | * implements `interfaceHash` for `account`. 16 | * 17 | * See {IERC1820Registry-setInterfaceImplementer}. 18 | */ 19 | function canImplementInterfaceForAddress(bytes32 interfaceHash, address account) external view returns (bytes32); 20 | } 21 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "requires": true, 3 | "lockfileVersion": 1, 4 | "dependencies": { 5 | "@chainlink/contracts": { 6 | "version": "0.3.0", 7 | "resolved": "https://registry.npmjs.org/@chainlink/contracts/-/contracts-0.3.0.tgz", 8 | "integrity": "sha512-Pxu5qMTa0gc28Sxf9hyBkvwhPMn3HD62cGXy54RkL9PcabOHlUsk1i3BoFf3rwFr7T30N/obYn4de3ZrG12PDA==" 9 | }, 10 | "@openzeppelin/contracts": { 11 | "version": "4.4.0", 12 | "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-4.4.0.tgz", 13 | "integrity": "sha512-dlKiZmDvJnGRLHojrDoFZJmsQVeltVeoiRN7RK+cf2FmkhASDEblE0RiaYdxPNsUZa6mRG8393b9bfyp+V5IAw==" 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /sample_input_output/input/Background/Black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Background/Black.png -------------------------------------------------------------------------------- /sample_input_output/input/Bottom lid/High.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Bottom lid/High.png -------------------------------------------------------------------------------- /sample_input_output/input/Bottom lid/Low.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Bottom lid/Low.png -------------------------------------------------------------------------------- /sample_input_output/input/Bottom lid/Middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Bottom lid/Middle.png -------------------------------------------------------------------------------- /sample_input_output/input/Eye color/Cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Eye color/Cyan.png -------------------------------------------------------------------------------- /sample_input_output/input/Eye color/Green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Eye color/Green.png -------------------------------------------------------------------------------- /sample_input_output/input/Eye color/Pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Eye color/Pink.png -------------------------------------------------------------------------------- /sample_input_output/input/Eye color/Purple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Eye color/Purple.png -------------------------------------------------------------------------------- /sample_input_output/input/Eye color/Red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Eye color/Red.png -------------------------------------------------------------------------------- /sample_input_output/input/Eye color/Yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Eye color/Yellow.png -------------------------------------------------------------------------------- /sample_input_output/input/Eyeball/Red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Eyeball/Red.png -------------------------------------------------------------------------------- /sample_input_output/input/Eyeball/White.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Eyeball/White.png -------------------------------------------------------------------------------- /sample_input_output/input/Goo/Green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Goo/Green.png -------------------------------------------------------------------------------- /sample_input_output/input/Iris/Large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Iris/Large.png -------------------------------------------------------------------------------- /sample_input_output/input/Iris/Medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Iris/Medium.png -------------------------------------------------------------------------------- /sample_input_output/input/Iris/Small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Iris/Small.png -------------------------------------------------------------------------------- /sample_input_output/input/Shine/Shapes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Shine/Shapes.png -------------------------------------------------------------------------------- /sample_input_output/input/Top lid/High.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Top lid/High.png -------------------------------------------------------------------------------- /sample_input_output/input/Top lid/Low.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Top lid/Low.png -------------------------------------------------------------------------------- /sample_input_output/input/Top lid/Middle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/input/Top lid/Middle.png -------------------------------------------------------------------------------- /sample_input_output/output/images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/1.png -------------------------------------------------------------------------------- /sample_input_output/output/images/10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/10.png -------------------------------------------------------------------------------- /sample_input_output/output/images/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/11.png -------------------------------------------------------------------------------- /sample_input_output/output/images/12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/12.png -------------------------------------------------------------------------------- /sample_input_output/output/images/13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/13.png -------------------------------------------------------------------------------- /sample_input_output/output/images/14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/14.png -------------------------------------------------------------------------------- /sample_input_output/output/images/15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/15.png -------------------------------------------------------------------------------- /sample_input_output/output/images/16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/16.png -------------------------------------------------------------------------------- /sample_input_output/output/images/17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/17.png -------------------------------------------------------------------------------- /sample_input_output/output/images/18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/18.png -------------------------------------------------------------------------------- /sample_input_output/output/images/19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/19.png -------------------------------------------------------------------------------- /sample_input_output/output/images/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/2.png -------------------------------------------------------------------------------- /sample_input_output/output/images/20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/20.png -------------------------------------------------------------------------------- /sample_input_output/output/images/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/3.png -------------------------------------------------------------------------------- /sample_input_output/output/images/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/4.png -------------------------------------------------------------------------------- /sample_input_output/output/images/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/5.png -------------------------------------------------------------------------------- /sample_input_output/output/images/6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/6.png -------------------------------------------------------------------------------- /sample_input_output/output/images/7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/7.png -------------------------------------------------------------------------------- /sample_input_output/output/images/8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/8.png -------------------------------------------------------------------------------- /sample_input_output/output/images/9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/sumit-mahajan/generative-nft-interface/75382b180f57ee23eed6be838dd5cb90521e81aa/sample_input_output/output/images/9.png -------------------------------------------------------------------------------- /sample_input_output/output/metadata/1.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #1","description":"A collection of mysterious eyes","image":"bafkreifh57kvzdaiuveonhlzhtmdyxlvjcq37jmj5xf2lixfy2blakqxqm","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Cyan"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Small"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"Low"},{"type":"Top lid","value":"High"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/10.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #10","description":"A collection of mysterious eyes","image":"bafkreieic6sfk5rkqb5zniav6fylptag7d2nbj3oxzrjy4ml42qotmqj64","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Pink"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Medium"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"Low"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/11.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #11","description":"A collection of mysterious eyes","image":"bafkreibmlumnm6t5dxkxg6drbvwjf22qlgpz6nkivrokkjsmjap42trzme","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"Red"},{"type":"Eye color","value":"Purple"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Medium"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"High"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/12.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #12","description":"A collection of mysterious eyes","image":"bafkreigykepmmsadtiyvonfboo426huzfc7mblkk2qg3k4rrmtix5jrboa","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"Red"},{"type":"Eye color","value":"Yellow"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Medium"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"High"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/13.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #13","description":"A collection of mysterious eyes","image":"bafkreiegqk4yt5enqwp3ue2zfjpuixea34uabkrikn236rpb3qbbvkzh6u","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Green"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Large"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"Middle"},{"type":"Top lid","value":"High"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/14.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #14","description":"A collection of mysterious eyes","image":"bafkreif4hakjdgybwc4abongr4rkkukakaxfkdfwzceodiliiykokcnswa","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Purple"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Small"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"Middle"},{"type":"Top lid","value":"High"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/15.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #15","description":"A collection of mysterious eyes","image":"bafkreihvhczwdc3d4dyxkalnfyyxevgukybaigfqy7mghqyc4cx52woh5i","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Purple"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Large"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"Middle"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/16.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #16","description":"A collection of mysterious eyes","image":"bafkreifkxwxs2twink7wdnnwtzruneq4t6turlnld3fouahl3cb7qkdln4","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"Red"},{"type":"Eye color","value":"Cyan"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Medium"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"Middle"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/17.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #17","description":"A collection of mysterious eyes","image":"bafkreiab3ulexsyn3ac3kwepczgjent6pb6awbo76umlpwozfrs5no2sva","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Purple"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Medium"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"Low"},{"type":"Top lid","value":"Low"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/18.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #18","description":"A collection of mysterious eyes","image":"bafkreiga3ok7qsjgu3psjn2nj4tp255petdr4gpjgc76w35iz6vaz6i6mi","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"Red"},{"type":"Eye color","value":"Pink"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Medium"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"Low"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/19.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #19","description":"A collection of mysterious eyes","image":"bafkreib6xutgqa3oxagu57ecnnubxc45422u6yxdyp77trsgsjy2g643xa","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Purple"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Medium"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"Low"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/2.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #2","description":"A collection of mysterious eyes","image":"bafkreiaya4wvjk3ivb7tmhk2j67vgofhmkmu5aim474hp5eqyq4f564gjq","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"Red"},{"type":"Eye color","value":"Red"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Medium"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"High"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/20.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #20","description":"A collection of mysterious eyes","image":"bafkreiawigtuhfjiet6r4ehlocjaq6teicsn7dnq5eotz547vkaaietcjy","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"Red"},{"type":"Eye color","value":"Pink"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Medium"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"Middle"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/3.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #3","description":"A collection of mysterious eyes","image":"bafkreico7prudefj2tssaps55waer4us7mxnczguyukz7rbmckg2cxgoe4","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Cyan"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Small"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"Low"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/4.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #4","description":"A collection of mysterious eyes","image":"bafkreidt2i2yejndnmpwdpuwteajvqsla4nxlle7mtmbn5scddpuhvazp4","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"Red"},{"type":"Eye color","value":"Purple"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Large"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"Low"},{"type":"Top lid","value":"Middle"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/5.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #5","description":"A collection of mysterious eyes","image":"bafkreicwti7yjkv5o3ch2qf5dfgiybqiiekhuyjwzzit7tb5oxppqccbga","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Cyan"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Large"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"Middle"},{"type":"Top lid","value":"High"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/6.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #6","description":"A collection of mysterious eyes","image":"bafkreihj2gpcq2crezvyltzjcppf3he4kdkmutiqlg5cgfluarayuhaq7u","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Green"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Large"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"High"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/7.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #7","description":"A collection of mysterious eyes","image":"bafkreibczgez6l3a3u2e3zigwemukbxikii5mwebkjzn5z75elzdhdmjpu","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Red"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Large"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"High"},{"type":"Top lid","value":"High"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/8.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #8","description":"A collection of mysterious eyes","image":"bafkreickouy4ekkyslfwp3qwtakzaji7qjkc4rjfigukzlbxset2cesscu","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"White"},{"type":"Eye color","value":"Yellow"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Large"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"Low"},{"type":"Top lid","value":"High"}]} -------------------------------------------------------------------------------- /sample_input_output/output/metadata/9.json: -------------------------------------------------------------------------------- 1 | {"name":"Rinnegan #9","description":"A collection of mysterious eyes","image":"bafkreig3azyqpl6npsvublaxlov2nq7brrn75qdkc42bpicttk2evx73ya","properties":[{"type":"Background","value":"Black"},{"type":"Eyeball","value":"Red"},{"type":"Eye color","value":"Green"},{"type":"Goo","value":"Green"},{"type":"Iris","value":"Medium"},{"type":"Shine","value":"Shapes"},{"type":"Bottom lid","value":"Low"},{"type":"Top lid","value":"Middle"}]} -------------------------------------------------------------------------------- /test/custom_collection.js: -------------------------------------------------------------------------------- 1 | const { assert } = require("chai"); 2 | 3 | const Marketplace = artifacts.require("./Marketplace.sol"); 4 | const CustomCollection = artifacts.require("./CustomCollection.sol"); 5 | 6 | contract("CustomCollection", (accounts) => { 7 | let marketplaceInstance; 8 | let collectionInstance; 9 | 10 | beforeEach("Access deployed contract", async () => { 11 | // marketplaceInstance = await Marketplace.deployed(); 12 | 13 | // await marketplaceInstance.createCollection("", { from: accounts[0] }); 14 | 15 | // const cAddress = await marketplaceInstance.collections.call(0); 16 | 17 | // collectionInstance = await CustomCollection.at(cAddress); 18 | }); 19 | 20 | it("Stores creator", async () => { 21 | 22 | }); 23 | 24 | 25 | }); 26 | -------------------------------------------------------------------------------- /test/marketplace.js: -------------------------------------------------------------------------------- 1 | const Marketplace = artifacts.require("./Marketplace.sol"); 2 | 3 | contract("Marketplace", (accounts) => { 4 | let marketplaceInstance; 5 | 6 | beforeEach("Access deployed contract", async () => { 7 | // Access deployed contract 8 | marketplaceInstance = await Marketplace.deployed(); 9 | }); 10 | 11 | it("Creates a collection", async () => { 12 | 13 | }); 14 | }); 15 | -------------------------------------------------------------------------------- /truffle-config.js: -------------------------------------------------------------------------------- 1 | const path = require("path"); 2 | 3 | module.exports = { 4 | // See 5 | // to customize your Truffle configuration! 6 | contracts_build_directory: path.join(__dirname, "client/src/contracts"), 7 | networks: { 8 | develop: { 9 | port: 7545, 10 | }, 11 | }, 12 | compilers: { 13 | solc: { 14 | version: "^0.8.6", // A version or constraint - Ex. "^0.5.0" 15 | // Can be set to "native" to use a native solc or 16 | // "pragma" which attempts to autodetect compiler versions 17 | settings: { 18 | optimizer: { 19 | enabled: true, 20 | runs: 200, 21 | }, 22 | }, 23 | }, 24 | }, 25 | }; 26 | --------------------------------------------------------------------------------