12 txs
19 calls
constructor
constructor()
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getChallengeContract
viewfunction getChallengeContract(uint256 index) view returns (address)
getChallengeContractFromTokenId
viewfunction getChallengeContractFromTokenId(uint256 tokenId) view returns (address)
getChallengeContractFullDescription
viewfunction getChallengeContractFullDescription(uint256 tokenId) view returns (string)
getTokenCounter
viewfunction getTokenCounter() view returns (uint256)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isChallengeContract
viewfunction isChallengeContract(address contractAddress) view returns (bool)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
addChallenge
nonpayablefunction addChallenge(address challengeContract) returns (address)
approve
nonpayablefunction approve(address to, uint256 tokenId)
changeBaseUri
nonpayablefunction changeBaseUri(string newUri)
mintNft
nonpayablefunction mintNft(address receiver, string twitterHandle) returns (uint256)
renounceOwnership
nonpayablefunction renounceOwnership()
replaceChallenge
nonpayablefunction replaceChallenge(uint256 challengeIndex, address newChallenge)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BaseTokenImageUriChanged
event BaseTokenImageUriChanged(string newUri)
ChallengeAdded
event ChallengeAdded(address challengeContract)
ChallengeReplaced
event ChallengeReplaced(address oldChallenge, address newChallenge)
ChallengeSolved
event ChallengeSolved(address solver, address challenge, string twitterHandle)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
FoundryCourseNft__NFTNotMinted
error FoundryCourseNft__NFTNotMinted()
FoundryCourseNft__NotChallengeContract
error FoundryCourseNft__NotChallengeContract()
FoundryCourseNft__YouAlreadySolvedThis
error FoundryCourseNft__YouAlreadySolvedThis()
creation bytecode
0x60e060405260356080818152906200256260a039600790620000229082620001b6565b503480156200003057600080fd5b5060405180604001604052806012815260200171119bdd5b991c9e4810dbdd5c9cd94813919560721b815250604051806040016040528060038152602001622321a760e91b8152508160009081620000899190620001b6565b506001620000988282620001b6565b505050620000b5620000af620000bb60201b60201c565b620000bf565b62000282565b3390565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200013c57607f821691505b6020821081036200015d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001b157600081815260208120601f850160051c810160208610156200018c5750805b601f850160051c820191505b81811015620001ad5782815560010162000198565b5050505b505050565b81516001600160401b03811115620001d257620001d262000111565b620001ea81620001e3845462000127565b8462000163565b602080601f831160018114620002225760008415620002095750858301515b600019600386901b1c1916600185901b178555620001ad565b600085815260208120601f198616915b82811015620002535788860151825594840194600190910190840162000232565b5085821015620002725787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6122d080620002926000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c8063715018a6116100de578063b88d4fde11610097578063e985e9c511610071578063e985e9c514610339578063f2fde38b1461034c578063f8242c321461035f578063fd1f7d9f1461037257600080fd5b8063b88d4fde14610300578063c87b56dd14610313578063e65b15b81461032657600080fd5b8063715018a6146102905780638da5cb5b1461029857806395d89b41146102a9578063a22cb465146102b1578063a62b33a6146102c4578063b363ff85146102ed57600080fd5b806323b872dd1161013057806323b872dd1461022957806342842e0e1461023c578063492d306b1461024f5780636352211e146102625780636e02007d1461027557806370a082311461027d57600080fd5b806301ffc9a71461017857806306fdde03146101a0578063081812fc146101b5578063095ea7b3146101e057806311f87b19146101f55780631cc0438714610216575b600080fd5b61018b6101863660046119aa565b610385565b60405190151581526020015b60405180910390f35b6101a86103d7565b6040516101979190611a1e565b6101c86101c3366004611a31565b610469565b6040516001600160a01b039091168152602001610197565b6101f36101ee366004611a61565b610490565b005b610208610203366004611b58565b6105aa565b604051908152602001610197565b6101c8610224366004611a31565b610718565b6101f3610237366004611ba6565b610748565b6101f361024a366004611ba6565b610779565b6101f361025d366004611be2565b610794565b6101c8610270366004611a31565b6107e3565b600854610208565b61020861028b366004611c17565b610843565b6101f36108c9565b6006546001600160a01b03166101c8565b6101a86108dd565b6101f36102bf366004611c32565b6108ec565b6101c86102d2366004611a31565b6000908152600960205260409020546001600160a01b031690565b61018b6102fb366004611c17565b6108fb565b6101f361030e366004611c6e565b610964565b6101a8610321366004611a31565b61099c565b6101a8610334366004611a31565b610e22565b61018b610347366004611cea565b610f3c565b6101f361035a366004611c17565b610f6a565b6101c861036d366004611c17565b610fe3565b6101f3610380366004611d1d565b611076565b60006001600160e01b031982166380ac58cd60e01b14806103b657506001600160e01b03198216635b5e139f60e01b145b806103d157506301ffc9a760e01b6001600160e01b03198316145b92915050565b6060600080546103e690611d40565b80601f016020809104026020016040519081016040528092919081815260200182805461041290611d40565b801561045f5780601f106104345761010080835404028352916020019161045f565b820191906000526020600020905b81548152906001019060200180831161044257829003601f168201915b5050505050905090565b60006104748261112b565b506000908152600460205260409020546001600160a01b031690565b600061049b826107e3565b9050806001600160a01b0316836001600160a01b03160361050d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b60648201526084015b60405180910390fd5b336001600160a01b038216148061052957506105298133610f3c565b61059b5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610504565b6105a5838361118a565b505050565b60003360005b600b548110156106f757816001600160a01b0316600b82815481106105d7576105d7611d7a565b6000918252602090912001546001600160a01b0316036106e5576001600160a01b0385166000908152600a6020908152604080832033845290915290205460ff16151560010361063a57604051630cddde4160e01b815260040160405180910390fd5b600854600081815260096020908152604080832080546001600160a01b031916339081179091556001600160a01b038a168452600a83528184209084529091529020805460ff1916600117905561069186826111f8565b7f37442366d0b66ca2c3c71d814548641318cd87e6479a0bf3d0159595eca674258633876040516106c493929190611d90565b60405180910390a16008546106da906001611ddb565b600855925050610711565b806106ef81611dee565b9150506105b0565b506040516312ae4dff60e11b815260040160405180910390fd5b5092915050565b6000600b828154811061072d5761072d611d7a565b6000918252602090912001546001600160a01b031692915050565b6107523382611212565b61076e5760405162461bcd60e51b815260040161050490611e07565b6105a5838383611271565b6105a583838360405180602001604052806000815250610964565b61079c6113d5565b60076107a88282611ea2565b507fe07a3b51b1a4a4732b2eb40e4cb36772d29a2c632bb61e4567ea04ba447da4e5816040516107d89190611a1e565b60405180910390a150565b6000818152600260205260408120546001600160a01b0316806103d15760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610504565b60006001600160a01b0382166108ad5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610504565b506001600160a01b031660009081526003602052604090205490565b6108d16113d5565b6108db600061142f565b565b6060600180546103e690611d40565b6108f7338383611481565b5050565b6000805b600b5481101561095b57826001600160a01b0316600b828154811061092657610926611d7a565b6000918252602090912001546001600160a01b0316036109495750600192915050565b8061095381611dee565b9150506108ff565b50600092915050565b61096e3383611212565b61098a5760405162461bcd60e51b815260040161050490611e07565b6109968484848461154f565b50505050565b6000818152600260205260409020546060906001600160a01b03166109d457604051636e14090160e11b815260040160405180910390fd5b6000828152600960209081526040808320548151928301825291839052805163383ab57960e11b815290516001600160a01b0390921692917fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709184916370756af29160048082019287929091908290030181865afa158015610a5a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a829190810190611f62565b8051906020012003610b1e5760078054610a9b90611d40565b80601f0160208091040260200160405190810160405280929190818152602001828054610ac790611d40565b8015610b145780601f10610ae957610100808354040283529160200191610b14565b820191906000526020600020905b815481529060010190602001808311610af757829003601f168201915b5050505050610b84565b816001600160a01b03166370756af26040518163ffffffff1660e01b8152600401600060405180830381865afa158015610b5c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610b849190810190611f62565b905060006040518060200160405280600081525080519060200120836001600160a01b03166314b42c776040518163ffffffff1660e01b8152600401600060405180830381865afa158015610bdd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610c059190810190611f62565b8051906020012003610c3f576040518060400160405280601081526020016f47657474696e67206c6561726e65642160801b815250610ca5565b826001600160a01b03166314b42c776040518163ffffffff1660e01b8152600401600060405180830381865afa158015610c7d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610ca59190810190611f62565b90506000610cb2866107e3565b9050610cee60408051808201909152601d81527f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000602082015290565b610df7610cf96103d7565b866001600160a01b0316637284e4166040518163ffffffff1660e01b8152600401600060405180830381865afa158015610d37573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d5f9190810190611f62565b6040516351c94ed360e01b81526001600160a01b0386811660048301528916906351c94ed390602401600060405180830381865afa158015610da5573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610dcd9190810190611f62565b8688604051602001610de3959493929190611fec565b604051602081830303815290604052611582565b604051602001610e08929190612101565b604051602081830303815290604052945050505050919050565b6000818152600960205260408120546060916001600160a01b0390911690610e49846107e3565b90506000826001600160a01b0316637284e4166040518163ffffffff1660e01b8152600401600060405180830381865afa158015610e8b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610eb39190810190611f62565b6040516351c94ed360e01b81526001600160a01b0384811660048301529192506000918516906351c94ed390602401600060405180830381865afa158015610eff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f279190810190611f62565b90508181604051602001610e08929190612101565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205460ff1690565b610f726113d5565b6001600160a01b038116610fd75760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610504565b610fe08161142f565b50565b6000610fed6113d5565b600b80546001810182556000919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90180546001600160a01b0319166001600160a01b0384169081179091556040519081527f2ffa3776d4bcbee1c082f84b2b35d2a24a419de30436c0c4b8f69ea2ced480b09060200160405180910390a150805b919050565b61107e6113d5565b6000600b838154811061109357611093611d7a565b600091825260209091200154600b80546001600160a01b0390921692508391859081106110c2576110c2611d7a565b60009182526020918290200180546001600160a01b0319166001600160a01b03938416179055604080518484168152928516918301919091527fff68c77a28392b9e1cf29901f08935a1afd03d428499f15e46f123ccdef21f02910160405180910390a1505050565b6000818152600260205260409020546001600160a01b0316610fe05760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610504565b600081815260046020526040902080546001600160a01b0319166001600160a01b03841690811790915581906111bf826107e3565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6108f78282604051806020016040528060008152506116d5565b60008061121e836107e3565b9050806001600160a01b0316846001600160a01b0316148061124557506112458185610f3c565b806112695750836001600160a01b031661125e84610469565b6001600160a01b0316145b949350505050565b826001600160a01b0316611284826107e3565b6001600160a01b0316146112aa5760405162461bcd60e51b815260040161050490612130565b6001600160a01b03821661130c5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610504565b826001600160a01b031661131f826107e3565b6001600160a01b0316146113455760405162461bcd60e51b815260040161050490612130565b600081815260046020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260038552838620805460001901905590871680865283862080546001019055868652600290945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6006546001600160a01b031633146108db5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610504565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b816001600160a01b0316836001600160a01b0316036114e25760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610504565b6001600160a01b03838116600081815260056020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61155a848484611271565b61156684848484611708565b6109965760405162461bcd60e51b815260040161050490612175565b606081516000036115a157505060408051602081019091526000815290565b600060405180606001604052806040815260200161225b60409139905060006003845160026115d09190611ddb565b6115da91906121c7565b6115e59060046121e9565b67ffffffffffffffff8111156115fd576115fd611a8b565b6040519080825280601f01601f191660200182016040528015611627576020820181803683370190505b509050600182016020820185865187015b80821015611693576003820191508151603f8160121c168501518453600184019350603f81600c1c168501518453600184019350603f8160061c168501518453600184019350603f8116850151845350600183019250611638565b50506003865106600181146116af57600281146116c2576116ca565b603d6001830353603d60028303536116ca565b603d60018303535b509195945050505050565b6116df8383611809565b6116ec6000848484611708565b6105a55760405162461bcd60e51b815260040161050490612175565b60006001600160a01b0384163b156117fe57604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061174c903390899088908890600401612200565b6020604051808303816000875af1925050508015611787575060408051601f3d908101601f191682019092526117849181019061223d565b60015b6117e4573d8080156117b5576040519150601f19603f3d011682016040523d82523d6000602084013e6117ba565b606091505b5080516000036117dc5760405162461bcd60e51b815260040161050490612175565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611269565b506001949350505050565b6001600160a01b03821661185f5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610504565b6000818152600260205260409020546001600160a01b0316156118c45760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610504565b6000818152600260205260409020546001600160a01b0316156119295760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610504565b6001600160a01b038216600081815260036020908152604080832080546001019055848352600290915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b031981168114610fe057600080fd5b6000602082840312156119bc57600080fd5b81356119c781611994565b9392505050565b60005b838110156119e95781810151838201526020016119d1565b50506000910152565b60008151808452611a0a8160208601602086016119ce565b601f01601f19169290920160200192915050565b6020815260006119c760208301846119f2565b600060208284031215611a4357600080fd5b5035919050565b80356001600160a01b038116811461107157600080fd5b60008060408385031215611a7457600080fd5b611a7d83611a4a565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715611aca57611aca611a8b565b604052919050565b600067ffffffffffffffff821115611aec57611aec611a8b565b50601f01601f191660200190565b6000611b0d611b0884611ad2565b611aa1565b9050828152838383011115611b2157600080fd5b828260208301376000602084830101529392505050565b600082601f830112611b4957600080fd5b6119c783833560208501611afa565b60008060408385031215611b6b57600080fd5b611b7483611a4a565b9150602083013567ffffffffffffffff811115611b9057600080fd5b611b9c85828601611b38565b9150509250929050565b600080600060608486031215611bbb57600080fd5b611bc484611a4a565b9250611bd260208501611a4a565b9150604084013590509250925092565b600060208284031215611bf457600080fd5b813567ffffffffffffffff811115611c0b57600080fd5b61126984828501611b38565b600060208284031215611c2957600080fd5b6119c782611a4a565b60008060408385031215611c4557600080fd5b611c4e83611a4a565b915060208301358015158114611c6357600080fd5b809150509250929050565b60008060008060808587031215611c8457600080fd5b611c8d85611a4a565b9350611c9b60208601611a4a565b925060408501359150606085013567ffffffffffffffff811115611cbe57600080fd5b8501601f81018713611ccf57600080fd5b611cde87823560208401611afa565b91505092959194509250565b60008060408385031215611cfd57600080fd5b611d0683611a4a565b9150611d1460208401611a4a565b90509250929050565b60008060408385031215611d3057600080fd5b82359150611d1460208401611a4a565b600181811c90821680611d5457607f821691505b602082108103611d7457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03848116825283166020820152606060408201819052600090611dbc908301846119f2565b95945050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156103d1576103d1611dc5565b600060018201611e0057611e00611dc5565b5060010190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b601f8211156105a557600081815260208120601f850160051c81016020861015611e7b5750805b601f850160051c820191505b81811015611e9a57828155600101611e87565b505050505050565b815167ffffffffffffffff811115611ebc57611ebc611a8b565b611ed081611eca8454611d40565b84611e54565b602080601f831160018114611f055760008415611eed5750858301515b600019600386901b1c1916600185901b178555611e9a565b600085815260208120601f198616915b82811015611f3457888601518255948401946001909101908401611f15565b5085821015611f525787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208284031215611f7457600080fd5b815167ffffffffffffffff811115611f8b57600080fd5b8201601f81018413611f9c57600080fd5b8051611faa611b0882611ad2565b818152856020838501011115611fbf57600080fd5b611dbc8260208301602086016119ce565b60008151611fe28185602086016119ce565b9290920192915050565b683d913730b6b2911d1160b91b81528551600090612011816009850160208b016119ce565b72111610113232b9b1b934b83a34b7b7111d101160691b600991840191820152865161204481601c840160208b016119ce565b865191019061205a81601c840160208a016119ce565b6009818301019150506201116160ed1b60138201527f2261747472696275746573223a205b7b2274726169745f74797065223a202200601682015284516120a88160358401602089016119ce565b6013818301019150507f222c202276616c7565223a203130307d5d2c2022696d616765223a220000000060228201526120f56120e7603e830186611fd0565b61227d60f01b815260020190565b98975050505050505050565b600083516121138184602088016119ce565b8351908301906121278183602088016119ce565b01949350505050565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6000826121e457634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176103d1576103d1611dc5565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612233908301846119f2565b9695505050505050565b60006020828403121561224f57600080fd5b81516119c78161199456fe4142434445464748494a4b4c4d4e4f505152535455565758595a6162636465666768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2fa264697066735822122031d592b17899fa9b579b5bee628d2ac7e29dae36b6dc0d6107357e653e9f6fec64736f6c63430008140033697066733a2f2f516d5a6737396a64444e425469336678776e6a585476624d394774643143383441786f35354874326b5943654448