Feature Tip: Add private address tag to any address under My Name Tag !
ERC-721
Overview
Max Total Supply
0 FEMALE
Holders
67
Market
Volume (24H)
N/A
Min Price (24H)
N/A
Max Price (24H)
N/A
Other Info
Token Contract
Balance
5 FEMALELoading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
FEMALE
Compiler Version
v0.8.7+commit.e28d00a7
Optimization Enabled:
Yes with 300 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /// @title: Editions /// @author: manifold.xyz import "./ERC721Creator.sol"; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // // // // ;S8. .S@88S%S8;t:;@:;;X@; ttXS;;;:.:::.:.:.::::::::::tSS;:%;::::::::::;;::::..::.:.. %%...... . . ..: S8@.;Xt. %8:8: // // X8t@:8t: 8S%8%X@8SX%.;; X@%%; :t8%S:..........::.:.:.:.:t%@%;;:.::::::::.:........... ..::;......::t;:tX8 %X8S8XXSXt @88 // // 88.8.S;8; 8; 88SXXSX8..;:%;: ;St::@..:.::....:.:.::::::.::;::.:::.::::........:;. ... .....;;.%S8@S%%:SS: ;%:;@S@[email protected] // // @88t:@8@X;%X8SXX@ %8 8t ;t% : S@Stt:S .:.:..:.:.:.....:.:..::....::.:.::.:.:....::: ... ;tttS88.%.;;%%@. 88t%:8X ;@.t:%@ // // t. X@S88SStt X@SS8X88S@@8@. %SX%: t: :.:tXXt..:......:.:..::..:.:.::..:::::. :...:...t8@8@@S88S@S %X ;t;;888@;S:.8 8X. // // @S.:SX%:XS ..:8 888S@: @ @X88888@t .X;::X%XS8..::......................:.::::..:..:. @SX8@S@@X%:.;t% . :: 88X .;S. 8 // // : 8:@X8@ X t8: X8St@ t;: 888S; @ X.; t @@Xtt.::::::.::::.::.::...;;;::...::....... 8@8%8@8%t.: %t; S% 88.X .%8;8.8 // // S8XX :. @S% 888 XSX%SX@ 8 .X8.S t@t8.;S;8StX8888SX@XSt888@8@XXS@888888888@SX%S%;.;X888 8:;8.::.:;::.... .:t // // S:%8;t8X S8t8@888X 888 .8X:.S88@X%t%@88X8S@8X888888t88%S88S%S:.: ;888888@8S%;@X8%ttXS 8:;8 8;8S8@S8 8 ::8 88::;@ 8 ::.8 // // . %:8St88@ @8 @S %88X: 8%8::.8;@;tS8XtSX8888X888X8@X@8@@@S ;%8%88S88@888@@t888tt%.8@; 8 .88:; @.8 8. 8%;. S;%8.:;; @ // // S88888 tXX;;tt;;t;;:@:.;% ;t8%S@8;8 8@888@X888XX8 t8888:S@S8: 8:8X 8tX;8888S8;8;. 888 8.; 8;88 .% @;%.888 t:.X %@8.@ 8 // // : 8 @8S::;t%;::::;S8%8.8:. XS8%8%@%88t8@8X888888tt. @@S; ;;;;;8tSt8: @ X88@888@8X88S. S8888888 %8 [email protected]:@X8.;;.%S 8 // // S8X@8:8:@SSS.SSXt8S888Xt%tXS8. .X@X%8SX8S8X8XX@t .88XtX 8888@SX8 8%S;t%t 888@tX; 8t: 88@8XS8%.; 8S88 :8tt88%S:.8 .8 // // 8X8 S%.88%;;8tS8tt%SS8X.S XXX8X8S8:;t;88X;S88S@88.:888@888@S8 @S :8.: ..88. @@88888 .;SSS X 8%t 8XS X.:t@:t:t:t8 .@ // // X X8 X tt88t@:X%St%S%8@%8XS8%X%8 8X8S S@8888X8S8888@S8@X8888888 88888 X888 S8 88;XXt88:.: @.8tXttSX88S:.;tX %%t;% 8 8X // // 8.8@8 @@.X8S8t8;X@XX8%@S;;8:88t;@%XSS :S88;t8X@.@88S88X 8888t;8: 88@: :;.88S .@ 8 888.8 8Xt888 ;;S% ;;8; :% @8@8 ;8 S8 8 // // : 8 :[email protected]%8X8S .8 8 X88%tt;8SS X8%Xt8:. S88;%88:8t X@.:8 %%.88888:t88%t 8::@ ;X8t8%8 8888 ;@.%t%S .%8@ 8.%8% // // %t8 X S8SS88. X 8888 88 8X;S;t;8%8@@8@S8;;.;.8; 88:%S8888;; XS88X8X;@8 S@S8X.@ S :X8 .8 %.8S SSS; 8 @SS @t8@ 8X8% // // X 8:@SS@8 888 X 8% 8888;X@ S.;;%@8S8888.88 8%8. 8%t8; S8:88 88:8. X8 88888XS8888%:8 t@88888:%X @ 8 8 8 :: // // 8X: 8Xt;S88@S888 88%;8 8 8888 8:% t8.:S88888;.8t888 t;t888888 t XX8 :8:8 ;;:tXS%%ttt@%88%. 8t8 ttX .@8 X .:8..8.S // // 8;;;@X@8 88888 88@ t 88S 8:SX8 88888@%88888:8X@S8X%@ tX8t8S888:8t8tt8888t888888tS8:X8:; @ 8 : : 8 88.;8::8:;8 // // 8 X8 X.:X@S 8 8888%SX88 ;;8@%SSX.t%X8S 8:SX8S 8t88%8S. .S8888%88t8S8t 8S8X888888%8 88S8tt 8: [email protected] 88.;t8t8.8 8S // // @ t@@8t8:tS88@8XSXX X ;8@ 88;X8;t8ttXX S XX%S;SS88SS8::tt;SX@SX88% 8%tt8;888888@88@tS8;88X8.t:X888%@ 8888%%%8;t8:8.8S // // X@88.:t@8SS @ SSS %8S8S::8SX@:X888 8X% X8X .888:8:%;;tt%88@X88.% S88S88%X8@@88@88t 888888;t@%@88t8 88X%SX8%S8;8;8S. // // ;;.S8;t.t;:8t; 8 t@t8888S88 [email protected] ;8@8 8 88@ S%88S.t8t8S;.;;@@88.8@S8;;88%8%8%X8@@8888X88:88%%88S8X%.:%:8SS8XXX8t8.S8:8@ // // X8S8%%%. X8X8 8X88SS@8@88; %8X8 888 88@8 88888 S@@t.t: tt;%88@@8t%S:S@;;X@%SX@X88S;%8%8%8888%8 X;XS88tX@@88SXX%8:Xt@8 // // 88%.8.X: 8.8@SX8@XSS88S%t88%XSS8t8888@888:8;8 8@88SS8X;:;;:. ..;@ Xt;:.. ;tt%X8Xt;t;t88888S8@8XSt8%Xt@88::@X8S8.%8XtS8 // // t88X88@;88@X888:8XSS@888S8@XX@tS%[email protected]%8.@88X8888%888SS%X SSX;X:: S %S: 8@:. :%tttt%%t8St88@888;@8%8S;X8%%8:8.SS@@@8;%8 // // X@@8@@888X@88888%XSX88S8%88X@ t@t;% 8t88@8%XSX8 88S88888%% 8SX8S%%8; 8.:.88S @%%S%S@X8X%8S8;; 8:S@X8:8X. ;8;8t@8S8S% 8 // // 8 ;:@8@8 S ;8XX@@88t%S8X8%%X%8 S;8 88888S88;888@ XX;@;%%S8X@.%8t8888%888 X ;X%%tS8S8888%:t8S8%[email protected] 8S::S8%8%8%8 % // // @ 8::8:. @S888t@8;%8S%8t8%;;:t;X888 8%8XX X SStSXXS8%S888%%S.88:8@888888:8 8 ::@t%%t@:.; .8t8.%8SX%8@@X@@:@t8XXtS.:88X; // // t8:8t8 8 @888X88;.%8 8S;t%S%SX;8%8t8 S@@S88X8%t :.8@ 8888888X88888X88@%88 8 : %8X%@8 ;;.;:@X@@@;X%:.;:S.XX:8St%;88%;8;% // // 8@ 8tX;X%S%S8888%.88.888t8SS@X@88@:@8;8 %:8tX%@;888;@@@SS%tS:;X88X88888888S@XS88t8SX 88XXS@t@X8S8@@;tS tt:X8@ .8X;tSXXX // // ;%S:;@8:tt% S%.888:8X@X8 8@%%@SX@%SX8%t. SX@X88t%;XXt.;:;@88888 8SS%%SSSS;;S .8;8 :: ;8;:.8XXS8 @:.t8t88X;S88@X88 ..S8 // // :@ttX:X@S%;S8X;@SX8888888X8%8t@8%X8X 8.8:X;t:8; ;8@888S%XX88@ 88 88Xt;;tXS@88 8 ;;: .8;88S;t @@@% ;.8S: Xt ;; %XX; :88 // // %@8: ;:t8%S8%tS8X8%@8S8@@8.SXtSX8XXS::tX8@S8;888Xt X88;8@@ 88 .8 88t8 8X 8 8:8888X.888888888@88:88888@888@8X8X 8 // // S%@@8%t%;S88X.8 S88@t; %@tS%@;%%t888X8@. XS8@@8@ %X8 8 t;.t888 8 8 @ 8 888 8.8 88. .:.%%%%%S:%t;.8 ;SX8XStXttXX.:;8 // // S;8: ;@8;8@888;88%@@8X8%88XX.SS%S88X88.%X 8. @S@ 888t88t ::88 888 X 8 8 8 8tS88@8@8888@8@@%.%S%%%: S:SS // // 8888S@S8;8:X8;%Xt;.;88% :@X@8S@8S8@@@ :@@.8;8 S8 @ @8X 88 88 8S888 88 S@X 88 ;8S;;.:t;:....:;;;t;tt;::: tX:t; // // 8X88S8:8X8X888 .tS88 %;%. 888S8.SXX@XS:8@8; 88@@t S ;: 8 :88 S888X @8X@8 888@X88888t%8 .: . .:::;t%ttt;t;;;;;;:SX.;S% // // 88@S8:88.888 8t888%[email protected]:@:S 8.8S; SX::tt 8 8 ; SX S % 8 8 8 ;8:..;;;;;;:t@8:88X;;;;;:; t;. @ // // 88X.%8t.@8SStX8%8 XtXX8888X;StX.S;8@X. 8 @: X88X @88 SX8X88 S8 :: .8 t8 X%:.t;t.88SSXX:8;S;S;;;:;:SSt.8@ // // 8X8S @t8X%X.::.@@t;X@8S8tXS88@t8 S8S8.:X88@88%8:%tS8888XS8@;8S88888 8 : .;8.. 88@Xt.:%t:%%88. 88t @t8tt;;t %%S%: // // 888 88888 S@X@8%8t@:8X.8%@%;X 8. S.;88.8@ @X:8X8X@88XSX8X@%88@8@@@%Xt@ ; .. ..8.: 8S %%..St8@SSXt8888@ 8SX%t;t:%%SX8X // // @ X: @ @888XS S :S8888 8 8X .t.Xt;. % 8.S8888888888S88888X88@X@@8 : .;;;.;;:; t 888 t: tX8S:Xt SSX ;88%888S%..;SS88 // // ;8 ;t 8 X88888 X; t8 8@88 8SX:%t%t.t :::@ .8888X8888888XX8@88888@@: 88 : 8.t t 88 S8; %@%%S 8888S;88:%8t%;8tX%8S // // .;t: SX @XX8 ;888:.8 X88X88@8 ;Xt%%%.:t8X@888888@8888@S8X888SX8@8@@ t @ %888% :%X888 88 8SX;888SS8S;8%Xt.% // // St% .%% 88 @88.X8888@88 ;%t.:: %8S@@88X8@8@8888888@@88SX8@@S8 X 88 @88 8 @% 8@.;X@8:t S888 8 8t:8888%%SSS%8X // // 8%: : : 8 [email protected] 88S @ 8 X8 8. :.. ;X888888X8;88XS888@@88X8;@888888S8 S8888:88;88%:%888%888S888S 8 888X %;S8@X8@ // // .S%. 88 X X88888 888 8 88@ X%;t.;@88@8888@8@88S8X8%8 8@8X88;88@8X8@@8S@ 8@88888.;S :tX8 X88 888S88@%88;% 8@X8 // // . 8 888 @ @S%X 8SX .88%%8S 888 S S tt. @8@88X888X@X@X8@8X@@88@@88X8t88888888X8 8%8%@8;%S%8@8XS 8XSX8X8.SXS8%t% @8@S8 // // :8%8% 88 @ S 88888888 888888888888% 8 @ @@@888888%X888X8t8888888888t t;S:88888X888:88:;X 8.X8;8X 8X8SS88 ;X888SX:@:S // // SS;% @88 S8 88888888888%8888888888@X88t8888S88888888@XX8@88888888@888@8S8;88@88S X888@S8; :8888X%;888t88@%tXX888@;S;X8t // // t8t% 888@ 8S%88888S@88X88 888888888X8 8@888XXS8@@@8%[email protected];t88.S 8S8@8X@@ 888;88S8.888888@888888%888@S88X8t88 S // // :XS 88 S88X8@8888%88S8888888888% X@SS 8%t@@SXX@888t8888;88S%888888%X8 88X88@ 8S8X;t:%@888%:.88 ::%SXS88X88@888@; // // 88SS :8X; S 8 8@S88t%@88S888888888 88888 @88888@88@@@88888@@@@88@;88@8888888 8 8 :8;.8.888:@:@X88@88888@XX@8888;%%8 t // // t 88 888 S%%S8X88 X S@88@X888888888S:88 88S8888S@88S88SS88S8888%@[email protected]@ 8. 8 @8% .X8X888@8X888@888888888888%8S:XS // // @tS88 . S@8SX@:SSSS %SS@88S8 88888@;8 88. 8888%8X88@S8Xtt @8 XS%8 S::88888 ;S88X 88;%XX8@88@@8@8@[email protected]@.: // // ;@XX8 8@8%88@X8888t8%S;8X@@t8S8888 8%;8t888%888888@8 S:S;X.:t@S X ;S @ %t88t@@8888.8888888S88888X88@S88@88888888@88% // // X88 8SS@S@X:8 88SX8X@88%%8;@8888888%@SS ;888S88888%@ .%8%@ @; 8 %88 8 S8 8 8:S8888XX88888S@S@88@888888@XS88@SX8 // // %8X 8: 8S8X 88888%888S%8%8S8X88 88XS 8@8XS8XX8888@8 X%8 888 8888@ 8X 8 S%8 .888X@8X888888;S@88;t:8888S88888 ;[email protected] // // ; .8 .8 8S 88 888S@@XS888888888 88S8t8@8@8;[email protected]@@t.888.8.8S;888%8@X8@% % :t8888 XX@8888X8X 8X 8;8@88 X 888@% // // ;X 888.8888@@SSX888X SSS 8XXS8@888888SX@.. X:X%88X8X;8X ;888888888X888X88X8%8.;.8888X;8X@X888@8S@@ 888 @;8S:88S888@88 // // X 8 88:X8 :%X888XXS;.%X8SS8888@8XSS8@@8tS8%[email protected];S%X@8XS88X8X8888@X88S@@88Xt8888XX8SX888888%8888@S:8@8;8 @ 88S88 // // 8St ;S88888 % @S@X@S@%888t %X8@X@88%@@S88X8 8%tX8%88.8888SS8888X@SS%S8@88S8888 St 8;@888tXS@ 8%%@ X8 88X8X88888S8888X // // 8t @S8%.8t ..%X@X@;;8;X@8@8 @%88S:@8@%@@88@%;8 S8888 8X888%t@@%SSSXXX8888t@X8S8S88888S tS88.X;@:@; .S88SS 8S888XXS..8X // // S% 8:8888@S%t8@%@@Xt8S88@888@@888@ @ ;SX8; S88 8XSX8 8;8@@X%XX%S%SSXX@@XX@8 ;XS;t888 @ .;t 8@8St8 8S.8S888X%@88X@ S @X // // %% @ @8%8S@@8Xt@:%%:XXX@[email protected]@%88X%8;XX @8 :S8;@S8888@88t8XX88@X%X@S8S@SXX@@S :St %@8S8@8%@:8@8X8@8%XS8888@X88888X8@:8X% // // tt%. 8SX .S8;88@@X;.@%@S8 : 8; %:%% :S@88;t%8;S% .S8%8 :@@88888SXS8S@SX88888t@t;; @:@;88X88888S@@888@8ttX888888XS8X8t:@ // // .:.8888S@@S :%%.;: % ;X88;X8; %tS: ;ttt@%:@8@8 S8@% t .8S888888S88@@S88888888% 8:88S:S%X8SS8888X888@88@88@8 ;8@S8888888 // // t8888;S%S8@8tt%t;t;%X8:.88@ @@8S88S @8 %X S8 8;8 X %8%88@88@8X@@S888@88888t 88X8:8@8 :88XS88@88S@@%XX8@8888@88@88X88 // // t8.:@S@S@8:888S;;t:@@@t@888%88 88SS888@SS8X 8 8X.8t8 8 S@888888@X8888888@888@ 8t%@:X8X%88t88X@[email protected]@X88888:8@ // // . 8S8S8X8X;8X8%t;tt8 @ 888S8 88888888888S @8 88. 8:S @@8S8SX88888888S8X888@8X88:.;8888@S@X8S@S8X8@88S@88888t@S8S8888S // // 8%8t8@@8%@ % X;t;S %@ 8.888888 XXX@88888888St:. 888888t8888S88@8X88S888t88S X ..X ;888 @S8X@@88@@888@%8888@S8X888 @@ S // // :S8tX88S8t8XX88S;;St8S%8 88@S :t;;.::...:;%@ @8S8SX:;S8@SX8888888888SX88%@888@@ .8 8:8888 8S8888@XS@X888@@X88@8.%%XS8 88 // // : t@%8X@SX%;888::;t88X:t... .;::...;::..:::%8@SX... :8t8XX8888@88;8888S%X8XX88 8 8X88%888%8@88S88888@8@@88888888SS88X 8 // // 8:.@@888ttX%X;8;88@. . . . ...;:....::%XXX S S;X8 8%8@8888S8888888@8@8X8S%:88 888 @8t [email protected]%S88888;8%XX@. 8 // // :: t8X8%X;t%;XSS8Xtt:. . . . .....: .:;:%X% 8 ;@@ SSS8888X8@8888888888%8@88 @ .8888888% @8;%@@@888@8@X@S8 8tX;S888@ // // .;8%8@;%8tX8%8;S8%%S%t%;t;;t;tt%S%%%%tt;:8;8X; 88 : ;;S@88888888t88X8@:8XX8; 888 .8@%.@ %% 8S8@X88S@@@88X8SX88@8S8;8S // // ;%@8@t8t@tS@SSt@8t:t%%%%%%%%%%t%t%t%%%%%St888; 8@:t8 %;S88888888@X@88888%@S8% . @8X8888 888%88t888%888X88%8@8888% 8:8 // // :8 S;.SttX8% .X@%tS@@%%%%%%%tt%ttt%%%%%%StXt %88 8;St ;%S@8X@X8888@8@88XSSX8@X888888X:888 XX88@X88%88@8888@8S88@8X X: // // .:tS % ; 8S:%tXt8@88;S; 8t;tt%t;t;t;ttS%SSt88;888%SX.X@SSX@@@8@8@%S88888@@[email protected] 8 88.888S8S88 :8@88XX88X8% 8 88S 88S:8 // // XS88.@ 8@8% .;%t8888@8 8t :X%tt;;;t;;ttX%XS8 .tSXSX S%@ XS8@88888%@XX888X8X88@% 888:8%88 88 888 @88X%8%8S8:@888SS 8S88t // // .@% .%X8S88S ...X%t88S88 t 888X%;;ttt%XXX@tXS : tX8%; 8X88@@@8S@@88S@88S8Xt@%888t8@8@88888888@X ;@8.S888888S8@@888X8:8 // // XS; X; 88X t@S..:888X88S 8.@@88.%XS%:t%XX@@8 SX : : %@ t%t tS 8@@@:.88SX@@ :;X8 8t88.S8888 88888S8@ 8 SX.@ ; S8 8S88 // // XXS%88 8S8 8:;.;:;t;:t;.SS@@St8X88 @;%SXX8 t8.8:%:.; X88S 8%.XS888 88XS. .%8: % 8 8888:8888S8X.@8X8SX88S8;X8.S 888.t@% // // S8@ ..;8 8 @ SX:@SS%%%ttt%@X%; 8S :.St%SXX@ @t8%XX 8.;S88@@@t.:@:: X:8@X; tS.. .Xt.%XX 88 88888X 88S 88S88@8S 8888 t%. // // ;t;XS 8.@88X88@%S%;%SSS8@S88@%@888%@@@@X8@ S%8SX % @ t8X:88;S t 8.S8.S %S: :.@888%8;;@888 88XS8@8S8S88888 888 8 X%X // // :@88X8@S8;S@88SXX8 ::: .::. ;:..:;%8t8S@% S:8%888%.S SS%X:@@8%@8 8 88tX;SttX.8:8 888 8.X888@X8.;@%StX%8SSX [email protected] // // ;;8.88X8S8X@S888SX:. S%t% ;S@;;8@88X888@8t;;88S8@ 8:@@ % . @ @ 88:8S.@S ;S8%%%@t%8888t8888 8 S;t@@@@@@Xt8@8@%SSS8S:S // // t8:.S@:;S ;%S8 . :X@88@8S%: SS X8 ..@888tt@8X 8%;8%@ 888XX;@St.XS S ; @S:8 %:8t;:888%:888%8X8S St8t:88S:S@88%8@@:88S // // 8@@ 8S;8X8%tX88.S@[email protected]%8.@X888@@;SS.@SXX @t8S88XX:88 X@; 8 8 8@;t 8X Xt88 %t8tX8S%:S8 % 8t8X@S8%X@SXX:S@@ .@ // // 8t:: XX.%8X;t@;@X%@XS@@SXXt:S88 %:;8:;[email protected] @%8:.8@ ; . t8X8%.:tS t888X %8%tX8. :%8S.X@SXSS8%8;%8St8S8 SS@XS88@:X@ // // S88@;S%@8SSX@@:;SS. .XS88:t8X@SS8SS@ %X:t%St:XS X % @:.:%888%.tX: .8X.8:[email protected]%tS@;88S SSS8 . ; tX%S@XX: .:@ X // // %8X@%: @;88%.X 88t ;;t8 8@ @8X 8X8 @X:t @ 8 SS;@S@ t:@@t ;S%t%S8S .t8X 88;S 8@8 ;@t@88SX; :8;:;%8;St88 ;.; @t@;tSS // // // // // // // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// contract FEMALE is ERC721Creator { constructor() ERC721Creator("Editions", "FEMALE") {} }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /// @author: manifold.xyz import "@openzeppelin/contracts/proxy/Proxy.sol"; import "@openzeppelin/contracts/utils/Address.sol"; import "@openzeppelin/contracts/utils/StorageSlot.sol"; contract ERC721Creator is Proxy { constructor(string memory name, string memory symbol) { assert(_IMPLEMENTATION_SLOT == bytes32(uint256(keccak256("eip1967.proxy.implementation")) - 1)); StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = 0xe4E4003afE3765Aca8149a82fc064C0b125B9e5a; Address.functionDelegateCall( 0xe4E4003afE3765Aca8149a82fc064C0b125B9e5a, abi.encodeWithSignature("initialize(string,string)", name, symbol) ); } /** * @dev Storage slot with the address of the current implementation. * This is the keccak-256 hash of "eip1967.proxy.implementation" subtracted by 1, and is * validated in the constructor. */ bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; /** * @dev Returns the current implementation address. */ function implementation() public view returns (address) { return _implementation(); } function _implementation() internal override view returns (address) { return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.6.0) (proxy/Proxy.sol) pragma solidity ^0.8.0; /** * @dev This abstract contract provides a fallback function that delegates all calls to another contract using the EVM * instruction `delegatecall`. We refer to the second contract as the _implementation_ behind the proxy, and it has to * be specified by overriding the virtual {_implementation} function. * * Additionally, delegation to the implementation can be triggered manually through the {_fallback} function, or to a * different contract through the {_delegate} function. * * The success and return data of the delegated call will be returned back to the caller of the proxy. */ abstract contract Proxy { /** * @dev Delegates the current call to `implementation`. * * This function does not return to its internal call site, it will return directly to the external caller. */ function _delegate(address implementation) internal virtual { assembly { // Copy msg.data. We take full control of memory in this inline assembly // block because it will not return to Solidity code. We overwrite the // Solidity scratch pad at memory position 0. calldatacopy(0, 0, calldatasize()) // Call the implementation. // out and outsize are 0 because we don't know the size yet. let result := delegatecall(gas(), implementation, 0, calldatasize(), 0, 0) // Copy the returned data. returndatacopy(0, 0, returndatasize()) switch result // delegatecall returns 0 on error. case 0 { revert(0, returndatasize()) } default { return(0, returndatasize()) } } } /** * @dev This is a virtual function that should be overridden so it returns the address to which the fallback function * and {_fallback} should delegate. */ function _implementation() internal view virtual returns (address); /** * @dev Delegates the current call to the address returned by `_implementation()`. * * This function does not return to its internal call site, it will return directly to the external caller. */ function _fallback() internal virtual { _beforeFallback(); _delegate(_implementation()); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if no other * function in the contract matches the call data. */ fallback() external payable virtual { _fallback(); } /** * @dev Fallback function that delegates calls to the address returned by `_implementation()`. Will run if call data * is empty. */ receive() external payable virtual { _fallback(); } /** * @dev Hook that is called before falling back to the implementation. Can happen as part of a manual `_fallback` * call, or as part of the Solidity `fallback` or `receive` functions. * * If overridden should call `super._beforeFallback()`. */ function _beforeFallback() internal virtual {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (utils/Address.sol) pragma solidity ^0.8.1; /** * @dev Collection of functions related to the address type */ library Address { /** * @dev Returns true if `account` is a contract. * * [IMPORTANT] * ==== * It is unsafe to assume that an address for which this function returns * false is an externally-owned account (EOA) and not a contract. * * Among others, `isContract` will return false for the following * types of addresses: * * - an externally-owned account * - a contract in construction * - an address where a contract will be created * - an address where a contract lived, but was destroyed * ==== * * [IMPORTANT] * ==== * You shouldn't rely on `isContract` to protect against flash loan attacks! * * Preventing calls from contracts is highly discouraged. It breaks composability, breaks support for smart wallets * like Gnosis Safe, and does not provide security since it can be circumvented by calling from a contract * constructor. * ==== */ function isContract(address account) internal view returns (bool) { // This method relies on extcodesize/address.code.length, which returns 0 // for contracts in construction, since the code is only stored at the end // of the constructor execution. return account.code.length > 0; } /** * @dev Replacement for Solidity's `transfer`: sends `amount` wei to * `recipient`, forwarding all available gas and reverting on errors. * * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost * of certain opcodes, possibly making contracts go over the 2300 gas limit * imposed by `transfer`, making them unable to receive funds via * `transfer`. {sendValue} removes this limitation. * * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more]. * * IMPORTANT: because control is transferred to `recipient`, care must be * taken to not create reentrancy vulnerabilities. Consider using * {ReentrancyGuard} or the * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern]. */ function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); (bool success, ) = recipient.call{value: amount}(""); require(success, "Address: unable to send value, recipient may have reverted"); } /** * @dev Performs a Solidity function call using a low level `call`. A * plain `call` is an unsafe replacement for a function call: use this * function instead. * * If `target` reverts with a revert reason, it is bubbled up by this * function (like regular Solidity function calls). * * Returns the raw returned data. To convert to the expected return value, * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`]. * * Requirements: * * - `target` must be a contract. * - calling `target` with `data` must not revert. * * _Available since v3.1._ */ function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with * `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { return functionCallWithValue(target, data, 0, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but also transferring `value` wei to `target`. * * Requirements: * * - the calling contract must have an ETH balance of at least `value`. * - the called Solidity function must be `payable`. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value ) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } /** * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but * with `errorMessage` as a fallback revert reason when `target` reverts. * * _Available since v3.1._ */ function functionCallWithValue( address target, bytes memory data, uint256 value, string memory errorMessage ) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{value: value}(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) { return functionStaticCall(target, data, "Address: low-level static call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a static call. * * _Available since v3.3._ */ function functionStaticCall( address target, bytes memory data, string memory errorMessage ) internal view returns (bytes memory) { require(isContract(target), "Address: static call to non-contract"); (bool success, bytes memory returndata) = target.staticcall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) { return functionDelegateCall(target, data, "Address: low-level delegate call failed"); } /** * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`], * but performing a delegate call. * * _Available since v3.4._ */ function functionDelegateCall( address target, bytes memory data, string memory errorMessage ) internal returns (bytes memory) { require(isContract(target), "Address: delegate call to non-contract"); (bool success, bytes memory returndata) = target.delegatecall(data); return verifyCallResult(success, returndata, errorMessage); } /** * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the * revert reason using the provided one. * * _Available since v4.3._ */ function verifyCallResult( bool success, bytes memory returndata, string memory errorMessage ) internal pure returns (bytes memory) { if (success) { return returndata; } else { // Look for revert reason and bubble it up if present if (returndata.length > 0) { // The easiest way to bubble the revert reason is using memory via assembly /// @solidity memory-safe-assembly assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.7.0) (utils/StorageSlot.sol) pragma solidity ^0.8.0; /** * @dev Library for reading and writing primitive types to specific storage slots. * * Storage slots are often used to avoid storage conflict when dealing with upgradeable contracts. * This library helps with reading and writing to such slots without the need for inline assembly. * * The functions in this library return Slot structs that contain a `value` member that can be used to read or write. * * Example usage to set ERC1967 implementation slot: * ``` * contract ERC1967 { * bytes32 internal constant _IMPLEMENTATION_SLOT = 0x360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc; * * function _getImplementation() internal view returns (address) { * return StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value; * } * * function _setImplementation(address newImplementation) internal { * require(Address.isContract(newImplementation), "ERC1967: new implementation is not a contract"); * StorageSlot.getAddressSlot(_IMPLEMENTATION_SLOT).value = newImplementation; * } * } * ``` * * _Available since v4.1 for `address`, `bool`, `bytes32`, and `uint256`._ */ library StorageSlot { struct AddressSlot { address value; } struct BooleanSlot { bool value; } struct Bytes32Slot { bytes32 value; } struct Uint256Slot { uint256 value; } /** * @dev Returns an `AddressSlot` with member `value` located at `slot`. */ function getAddressSlot(bytes32 slot) internal pure returns (AddressSlot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `BooleanSlot` with member `value` located at `slot`. */ function getBooleanSlot(bytes32 slot) internal pure returns (BooleanSlot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `Bytes32Slot` with member `value` located at `slot`. */ function getBytes32Slot(bytes32 slot) internal pure returns (Bytes32Slot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } /** * @dev Returns an `Uint256Slot` with member `value` located at `slot`. */ function getUint256Slot(bytes32 slot) internal pure returns (Uint256Slot storage r) { /// @solidity memory-safe-assembly assembly { r.slot := slot } } }
{ "remappings": [ "@openzeppelin/=node_modules/@openzeppelin/" ], "optimizer": { "enabled": true, "runs": 300 }, "metadata": { "bytecodeHash": "ipfs" }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "evmVersion": "london", "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"implementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
608060405234801561001057600080fd5b50604080518082018252600881526745646974696f6e7360c01b6020808301919091528251808401909352600683526546454d414c4560d01b908301529061007960017f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbd61032d565b6000805160206106ce8339815191521461009557610095610382565b73e4e4003afe3765aca8149a82fc064c0b125b9e5a6100ce6000805160206106ce83398151915260001b61015960201b6100dd1760201c565b80546001600160a01b0319166001600160a01b03929092169190911790556040516101519073e4e4003afe3765aca8149a82fc064c0b125b9e5a9061011990859085906024016102ff565b60408051601f19818403018152919052602080820180516001600160e01b031663266c45bb60e11b1790526100e061015c821b17901c565b505050610398565b90565b606061018183836040518060600160405280602781526020016106ee60279139610188565b9392505050565b60606001600160a01b0384163b6101f55760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b03168560405161021091906102d0565b600060405180830381855af49150503d806000811461024b576040519150601f19603f3d011682016040523d82523d6000602084013e610250565b606091505b50909250905061026182828661026b565b9695505050505050565b6060831561027a575081610181565b82511561028a5782518084602001fd5b8160405162461bcd60e51b81526004016101ec91906102ec565b600081518084526102bc816020860160208601610352565b601f01601f19169290920160200192915050565b600082516102e2818460208701610352565b9190910192915050565b60208152600061018160208301846102a4565b60408152600061031260408301856102a4565b828103602084015261032481856102a4565b95945050505050565b60008282101561034d57634e487b7160e01b600052601160045260246000fd5b500390565b60005b8381101561036d578181015183820152602001610355565b8381111561037c576000848401525b50505050565b634e487b7160e01b600052600160045260246000fd5b610327806103a76000396000f3fe6080604052600436106100225760003560e01c80635c60da1b1461003957610031565b366100315761002f61006a565b005b61002f61006a565b34801561004557600080fd5b5061004e6100a5565b6040516001600160a01b03909116815260200160405180910390f35b6100a361009e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b61010c565b565b60006100d87f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b90565b606061010583836040518060600160405280602781526020016102cb60279139610130565b9392505050565b3660008037600080366000845af43d6000803e80801561012b573d6000f35b3d6000fd5b60606001600160a01b0384163b61019d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b0316856040516101b8919061024b565b600060405180830381855af49150503d80600081146101f3576040519150601f19603f3d011682016040523d82523d6000602084013e6101f8565b606091505b5091509150610208828286610212565b9695505050505050565b60608315610221575081610105565b8251156102315782518084602001fd5b8160405162461bcd60e51b81526004016101949190610267565b6000825161025d81846020870161029a565b9190910192915050565b602081526000825180602084015261028681604085016020870161029a565b601f01601f19169190910160400192915050565b60005b838110156102b557818101518382015260200161029d565b838111156102c4576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202942a28ef32d7a664841d4d39aea8044043439caa1c07545f1e4a1f180beef1c64736f6c63430008070033360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564
Deployed Bytecode
0x6080604052600436106100225760003560e01c80635c60da1b1461003957610031565b366100315761002f61006a565b005b61002f61006a565b34801561004557600080fd5b5061004e6100a5565b6040516001600160a01b03909116815260200160405180910390f35b6100a361009e7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b61010c565b565b60006100d87f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b90565b606061010583836040518060600160405280602781526020016102cb60279139610130565b9392505050565b3660008037600080366000845af43d6000803e80801561012b573d6000f35b3d6000fd5b60606001600160a01b0384163b61019d5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b60648201526084015b60405180910390fd5b600080856001600160a01b0316856040516101b8919061024b565b600060405180830381855af49150503d80600081146101f3576040519150601f19603f3d011682016040523d82523d6000602084013e6101f8565b606091505b5091509150610208828286610212565b9695505050505050565b60608315610221575081610105565b8251156102315782518084602001fd5b8160405162461bcd60e51b81526004016101949190610267565b6000825161025d81846020870161029a565b9190910192915050565b602081526000825180602084015261028681604085016020870161029a565b601f01601f19169190910160400192915050565b60005b838110156102b557818101518382015260200161029d565b838111156102c4576000848401525b5050505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212202942a28ef32d7a664841d4d39aea8044043439caa1c07545f1e4a1f180beef1c64736f6c63430008070033
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.