diff --git a/.all-contributorsrc b/.all-contributorsrc index ecd794d1fb2..a02c6180b5d 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -1,7 +1,5 @@ { - "files": [ - "README.md" - ], + "files": ["README.md"], "imageSize": 100, "commit": false, "contributors": [ @@ -10,1707 +8,1281 @@ "name": "ExodusActual", "avatar_url": "https://avatars3.githubusercontent.com/u/56446532?v=4", "profile": "https://github.com/ExodusActual", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "P1X3L0V4", "name": "Anna Karpińska", "avatar_url": "https://avatars2.githubusercontent.com/u/3372341?v=4", "profile": "https://github.com/P1X3L0V4", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "8bitp", "name": "8bitp", "avatar_url": "https://avatars2.githubusercontent.com/u/8021176?v=4", "profile": "https://github.com/8bitp", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "AlexandrouR", "name": "Rousos Alexandros", "avatar_url": "https://avatars1.githubusercontent.com/u/21177075?v=4", "profile": "https://github.com/AlexandrouR", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "EvanVanNessEth", "name": "EvanVanNessEth", "avatar_url": "https://avatars3.githubusercontent.com/u/34992008?v=4", "profile": "https://github.com/EvanVanNessEth", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "JesseAbram", "name": "JesseAbram", "avatar_url": "https://avatars0.githubusercontent.com/u/33698952?v=4", "profile": "https://github.com/JesseAbram", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Lililashka", "name": "Lililashka", "avatar_url": "https://avatars1.githubusercontent.com/u/28689401?v=4", "profile": "http://impermanence.co", - "contributions": [ - "design", - "bug" - ] + "contributions": ["design", "bug"] }, { "login": "vrde", "name": "vrde", "avatar_url": "https://avatars1.githubusercontent.com/u/134680?v=4", "profile": "https://github.com/vrde", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "RichardMcSorley", "name": "Richard McSorley", "avatar_url": "https://avatars2.githubusercontent.com/u/6407008?v=4", "profile": "https://github.com/RichardMcSorley", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ajsantander", "name": "Alejandro Santander", "avatar_url": "https://avatars2.githubusercontent.com/u/550409?v=4", "profile": "http://ajsantander.github.io/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "carver", "name": "Jason Carver", "avatar_url": "https://avatars0.githubusercontent.com/u/205327?v=4", "profile": "https://github.com/carver", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "chaitanyapotti", "name": "Chaitanya Potti", "avatar_url": "https://avatars1.githubusercontent.com/u/1688380?v=4", "profile": "https://github.com/chaitanyapotti", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "chriseth", "name": "chriseth", "avatar_url": "https://avatars2.githubusercontent.com/u/9073706?v=4", "profile": "https://github.com/chriseth", - "contributions": [ - "content", - "review" - ] + "contributions": ["content", "review"] }, { "login": "craigwilliams84", "name": "Craig Williams", "avatar_url": "https://avatars2.githubusercontent.com/u/11519649?v=4", "profile": "https://github.com/craigwilliams84", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "damianrusinek", "name": "Damian Rusinek", "avatar_url": "https://avatars3.githubusercontent.com/u/3885749?v=4", "profile": "https://github.com/damianrusinek", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "djrtwo", "name": "Danny Ryan", "avatar_url": "https://avatars0.githubusercontent.com/u/1433595?v=4", "profile": "https://github.com/djrtwo", - "contributions": [ - "content", - "review" - ] + "contributions": ["content", "review"] }, { "login": "fzeoli", "name": "Franco Zeoli", "avatar_url": "https://avatars2.githubusercontent.com/u/232174?v=4", "profile": "https://nomiclabs.io", - "contributions": [ - "content", - "review" - ] + "contributions": ["content", "review"] }, { "login": "guylando", "name": "Guy Lando", "avatar_url": "https://avatars2.githubusercontent.com/u/14879163?v=4", "profile": "https://secinfodb.wordpress.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jamesconnolly93", "name": "James Connolly", "avatar_url": "https://avatars1.githubusercontent.com/u/6970414?v=4", "profile": "https://github.com/jamesconnolly93", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jekrb", "name": "Jacob Burden", "avatar_url": "https://avatars3.githubusercontent.com/u/2081699?v=4", "profile": "https://burden.blog", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "joshorig", "name": "joshorig", "avatar_url": "https://avatars3.githubusercontent.com/u/852671?v=4", "profile": "https://github.com/joshorig", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "mariapaulafn", "name": "mariapaulafn", "avatar_url": "https://avatars1.githubusercontent.com/u/27913589?v=4", "profile": "https://github.com/mariapaulafn", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "martintel", "name": "Martín", "avatar_url": "https://avatars0.githubusercontent.com/u/447637?v=4", "profile": "https://openzeppelin.com/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "mat7ias", "name": "Mattias Nystrom", "avatar_url": "https://avatars2.githubusercontent.com/u/35585644?v=4", "profile": "https://github.com/mat7ias", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "nabetse00", "name": "nabetse", "avatar_url": "https://avatars0.githubusercontent.com/u/4185026?v=4", "profile": "http://iteasys.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "nicksavers", "name": "Nick Savers", "avatar_url": "https://avatars0.githubusercontent.com/u/7483198?v=4", "profile": "https://github.com/nicksavers", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ninabreznik", "name": "Nina Breznik", "avatar_url": "https://avatars1.githubusercontent.com/u/1076427?v=4", "profile": "http://playproject.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "oovg", "name": "Ven Gist", "avatar_url": "https://avatars2.githubusercontent.com/u/23664663?v=4", "profile": "https://odyssy.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "pfletcherhill", "name": "Paul Fletcher-Hill", "avatar_url": "https://avatars0.githubusercontent.com/u/1607180?v=4", "profile": "http://paulfletcherhill.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "phillux", "name": "Phil ", "avatar_url": "https://avatars1.githubusercontent.com/u/6450379?v=4", "profile": "https://github.com/phillux", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "remiprev", "name": "Rémi Prévost", "avatar_url": "https://avatars1.githubusercontent.com/u/11348?v=4", "profile": "https://exomel.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "shanejonas", "name": "Shane", "avatar_url": "https://avatars2.githubusercontent.com/u/364566?v=4", "profile": "http://shanejonas.net", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "shazow", "name": "Andrey Petrov", "avatar_url": "https://avatars3.githubusercontent.com/u/6292?v=4", "profile": "https://shazow.net/", - "contributions": [ - "content", - "ideas", - "a11y" - ] + "contributions": ["content", "ideas", "a11y"] }, { "login": "spalladino", "name": "Santiago Palladino", "avatar_url": "https://avatars2.githubusercontent.com/u/429604?v=4", "profile": "https://twitter.com/smpalladino", - "contributions": [ - "content", - "ideas" - ] + "contributions": ["content", "ideas"] }, { "login": "timbeiko", "name": "Tim Beiko", "avatar_url": "https://avatars0.githubusercontent.com/u/9390255?v=4", "profile": "http://www.twitter.com/timbeiko", - "contributions": [ - "content", - "review" - ] + "contributions": ["content", "review"] }, { "login": "wanseob", "name": "Wanseob Lim", "avatar_url": "https://avatars2.githubusercontent.com/u/8542397?v=4", "profile": "https://wanseob.com", - "contributions": [ - "content", - "translation" - ] + "contributions": ["content", "translation"] }, { "login": "wilbarnes", "name": "Wil Barnes", "avatar_url": "https://avatars1.githubusercontent.com/u/31866314?v=4", "profile": "https://github.com/wilbarnes", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Aniket-Engg", "name": "Aniket", "avatar_url": "https://avatars2.githubusercontent.com/u/30843294?v=4", "profile": "https://github.com/Aniket-Engg", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ChrisChinchilla", "name": "Chris Chinchilla", "avatar_url": "https://avatars2.githubusercontent.com/u/42080?v=4", "profile": "http://chrischinchilla.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Perseverance", "name": "George Spasov", "avatar_url": "https://avatars0.githubusercontent.com/u/5130509?v=4", "profile": "https://github.com/Perseverance", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "PierrickGT", "name": "Pierrick TURELIER", "avatar_url": "https://avatars3.githubusercontent.com/u/2401738?v=4", "profile": "http://pierrickturelier.fr", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Solexplorer", "name": "Solexplorer", "avatar_url": "https://avatars3.githubusercontent.com/u/50027175?v=4", "profile": "https://github.com/Solexplorer", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Sunghee2", "name": "Sunghee Lee", "avatar_url": "https://avatars2.githubusercontent.com/u/31603479?v=4", "profile": "https://github.com/Sunghee2", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "awallendahl", "name": "awallendahl", "avatar_url": "https://avatars1.githubusercontent.com/u/32873416?v=4", "profile": "https://github.com/awallendahl", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "bmann", "name": "Boris Mann", "avatar_url": "https://avatars2.githubusercontent.com/u/280420?v=4", "profile": "https://blog.bmannconsulting.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "carumusan", "name": "carumusan", "avatar_url": "https://avatars1.githubusercontent.com/u/879525?v=4", "profile": "https://github.com/carumusan", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "econoar", "name": "econoar", "avatar_url": "https://avatars1.githubusercontent.com/u/5050615?v=4", "profile": "https://github.com/econoar", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "gesquinca", "name": "Gustavo Esquinca", "avatar_url": "https://avatars1.githubusercontent.com/u/1707044?v=4", "profile": "http://twitter.com/gesq_", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "javier-tarazaga", "name": "Javier Tarazaga", "avatar_url": "https://avatars3.githubusercontent.com/u/7814134?v=4", "profile": "http://www.superblocks.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "kcole16", "name": "Kendall Cole", "avatar_url": "https://avatars2.githubusercontent.com/u/5624527?v=4", "profile": "https://github.com/kcole16", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "lbrendanl", "name": "Brendan Lee", "avatar_url": "https://avatars3.githubusercontent.com/u/5441045?v=4", "profile": "https://github.com/lbrendanl", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "maheshmurthy", "name": "Mahesh Murthy", "avatar_url": "https://avatars3.githubusercontent.com/u/70360?v=4", "profile": "https://www.zastrin.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "pi0neerpat", "name": "Patrick Gallagher", "avatar_url": "https://avatars1.githubusercontent.com/u/35622595?v=4", "profile": "http://oneclickdapp.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "realabbas", "name": "Ali Abbas", "avatar_url": "https://avatars0.githubusercontent.com/u/43527087?v=4", "profile": "https://www.mrroom.in", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "wtf", "name": "wtf", "avatar_url": "https://avatars3.githubusercontent.com/u/2460739?v=4", "profile": "https://github.com/wtf", - "contributions": [ - "code", - "review", - "infra" - ] + "contributions": ["code", "review", "infra"] }, { "login": "s0b0lev", "name": " Aleksandr Sobolev", "avatar_url": "https://avatars1.githubusercontent.com/u/2613381?v=4", "profile": "https://s0b0lev.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "zscole", "name": "Zak Cole", "avatar_url": "https://avatars1.githubusercontent.com/u/20308948?v=4", "profile": "http://www.whiteblock.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "BogdanHabic", "name": "Bogdan Habic", "avatar_url": "https://avatars2.githubusercontent.com/u/5364073?v=4", "profile": "https://github.com/BogdanHabic", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sneg55", "name": "Nick Sawinyh", "avatar_url": "https://avatars1.githubusercontent.com/u/7769371?v=4", "profile": "https://sawinyh.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "zoek1", "name": "Miguel Angel Gordián", "avatar_url": "https://avatars1.githubusercontent.com/u/660973?v=4", "profile": "http://zoek1.github.com", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "eswarasai", "name": "Eswara Sai", "avatar_url": "https://avatars2.githubusercontent.com/u/5172086?v=4", "profile": "https://eswarasai.com", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ethers", "name": "ethers", "avatar_url": "https://avatars1.githubusercontent.com/u/6937903?v=4", "profile": "https://github.com/ethers", - "contributions": [ - "content", - "ideas" - ] + "contributions": ["content", "ideas"] }, { "login": "faraggi", "name": "Felipe Faraggi", "avatar_url": "https://avatars2.githubusercontent.com/u/264382?v=4", "profile": "http://faraggi.org", - "contributions": [ - "content", - "translation", - "ideas", - "review" - ] + "contributions": ["content", "translation", "ideas", "review"] }, { "login": "maurelian", "name": "Maurelian", "avatar_url": "https://avatars3.githubusercontent.com/u/23033765?v=4", "profile": "https://github.com/maurelian", - "contributions": [ - "code", - "review", - "content" - ] + "contributions": ["code", "review", "content"] }, { "login": "CPSTL", "name": "CPSTL", "avatar_url": "https://avatars0.githubusercontent.com/u/32653033?v=4", "profile": "https://github.com/CPSTL", - "contributions": [ - "content", - "review", - "doc" - ] + "contributions": ["content", "review", "doc"] }, { "login": "Souptacular", "name": "Hudson Jameson", "avatar_url": "https://avatars1.githubusercontent.com/u/3460120?v=4", "profile": "http://www.hudsonjameson.com", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "shayanb", "name": "Shayan Eskandari", "avatar_url": "https://avatars2.githubusercontent.com/u/309108?v=4", "profile": "https://shayan.es/", - "contributions": [ - "code", - "translation", - "doc" - ] + "contributions": ["code", "translation", "doc"] }, { "login": "ScyDev", "name": "Lukas Sägesser", "avatar_url": "https://avatars3.githubusercontent.com/u/1307146?v=4", "profile": "http://www.scydev.ch", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "virgil", "name": "Virgil Griffith", "avatar_url": "https://avatars2.githubusercontent.com/u/81322?v=4", "profile": "http://virgil.gr", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "easeev", "name": "Eugene Aseev", "avatar_url": "https://avatars3.githubusercontent.com/u/14873170?v=4", "profile": "https://github.com/easeev", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Jannis", "name": "Jannis Pohlmann", "avatar_url": "https://avatars0.githubusercontent.com/u/19324?v=4", "profile": "http://jannispohlmann.de/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "think-in-universe", "name": "think-in-universe", "avatar_url": "https://avatars0.githubusercontent.com/u/46699230?v=4", "profile": "https://steemblog.github.io/@robertyan", - "contributions": [ - "code", - "content" - ] + "contributions": ["code", "content"] }, { "login": "jjmstark", "name": "Josh Stark", "avatar_url": "https://avatars3.githubusercontent.com/u/17183498?v=4", "profile": "http://l4v.io", - "contributions": [ - "content", - "review", - "projectManagement" - ] + "contributions": ["content", "review", "projectManagement"] }, { "login": "alancwoo", "name": "Alan Woo", "avatar_url": "https://avatars0.githubusercontent.com/u/1481890?v=4", "profile": "https://www.alanwoo.ca", - "contributions": [ - "code", - "design" - ] + "contributions": ["code", "design"] }, { "login": "Man-Jain", "name": "Manank Patni", "avatar_url": "https://avatars3.githubusercontent.com/u/12700384?v=4", "profile": "https://manankpatni.wordpress.com/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "rodgeraraujo", "name": "Rogério Araújo", "avatar_url": "https://avatars0.githubusercontent.com/u/20842252?v=4", "profile": "http://www.rogerioaraujo.co.nf/", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "natacha-involves", "name": "Natacha Souza", "avatar_url": "https://avatars1.githubusercontent.com/u/49870579?v=4", "profile": "https://github.com/natacha-involves", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "sorumfactory", "name": "sorumfactory", "avatar_url": "https://avatars1.githubusercontent.com/u/15648718?v=4", "profile": "https://github.com/sorumfactory", - "contributions": [ - "translation", - "projectManagement", - "content", - "bug" - ] + "contributions": ["translation", "projectManagement", "content", "bug"] }, { "login": "samajammin", "name": "Sam Richards", "avatar_url": "https://avatars1.githubusercontent.com/u/8097623?v=4", "profile": "https://www.samajammin.com/", - "contributions": [ - "code", - "content", - "doc", - "projectManagement" - ] + "contributions": ["code", "content", "doc", "projectManagement"] }, { "login": "antodp", "name": "Antonio Della Porta", "avatar_url": "https://avatars3.githubusercontent.com/u/20992089?v=4", "profile": "http://antodp.xyz", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Abhimanyu121", "name": "Abhimanyu Shekhawat", "avatar_url": "https://avatars0.githubusercontent.com/u/16034874?v=4", "profile": "https://github.com/Abhimanyu121", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "fulldecent", "name": "William Entriken", "avatar_url": "https://avatars0.githubusercontent.com/u/382183?v=4", "profile": "http://phor.net", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "sangphilkim", "name": "Sangphil Kim", "avatar_url": "https://avatars1.githubusercontent.com/u/13456532?v=4", "profile": "http://sangphilkim.me", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "tstt", "name": "peijie", "avatar_url": "https://avatars2.githubusercontent.com/u/16997688?v=4", "profile": "https://github.com/tstt", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "Jokyash", "name": "Jokyash", "avatar_url": "https://avatars1.githubusercontent.com/u/44118299?v=4", "profile": "https://github.com/Jokyash", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "pedrorivera", "name": "Pedro Rivera", "avatar_url": "https://avatars2.githubusercontent.com/u/4961012?v=4", "profile": "https://github.com/pedrorivera", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "gabririgo", "name": "Gabriele Rigo", "avatar_url": "https://avatars1.githubusercontent.com/u/12066256?v=4", "profile": "https://beta.rigoblock.com", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "dTilen", "name": "Tilen Držan", "avatar_url": "https://avatars1.githubusercontent.com/u/912560?v=4", "profile": "https://dtilen.si", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "jJosko1986", "name": "jJosko1986", "avatar_url": "https://avatars2.githubusercontent.com/u/54378053?v=4", "profile": "https://github.com/jJosko1986", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "EthereumCommunityNetwork", "name": "ECN", "avatar_url": "https://avatars1.githubusercontent.com/u/53846157?v=4", "profile": "https://ethereum.cn", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "damianoazzolini", "name": "Damiano Azzolini", "avatar_url": "https://avatars2.githubusercontent.com/u/24901681?v=4", "profile": "https://github.com/damianoazzolini", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "matteopey", "name": "matteopey", "avatar_url": "https://avatars2.githubusercontent.com/u/28830727?v=4", "profile": "https://github.com/matteopey", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "kilu83", "name": "Hun Ryu", "avatar_url": "https://avatars3.githubusercontent.com/u/29397119?v=4", "profile": "https://github.com/kilu83", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "nake13", "name": "nake13", "avatar_url": "https://avatars0.githubusercontent.com/u/6271031?v=4", "profile": "https://github.com/nake13", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "alexiskefalas", "name": "alexiskefalas", "avatar_url": "https://avatars2.githubusercontent.com/u/57708389?v=4", "profile": "https://github.com/alexiskefalas", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "behradkhodayar", "name": "Behrad Khodayar", "avatar_url": "https://avatars1.githubusercontent.com/u/16176436?v=4", "profile": "http://Behrad.Khodayar.me", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "Frankaus", "name": "Frankaus", "avatar_url": "https://avatars3.githubusercontent.com/u/57708955?v=4", "profile": "https://github.com/Frankaus", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "hacktar", "name": "hacktar", "avatar_url": "https://avatars2.githubusercontent.com/u/11939542?v=4", "profile": "https://github.com/hacktar", - "contributions": [ - "code", - "translation" - ] + "contributions": ["code", "translation"] }, { "login": "DjangoM", "name": "Jaroslav Macej", "avatar_url": "https://avatars2.githubusercontent.com/u/35060411?v=4", "profile": "https://github.com/DjangoM", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "EmanHerawy", "name": "Eman Herawy", "avatar_url": "https://avatars3.githubusercontent.com/u/10674070?v=4", "profile": "https://github.com/EmanHerawy", - "contributions": [ - "translation", - "code", - "ideas", - "doc" - ] + "contributions": ["translation", "code", "ideas", "doc"] }, { "login": "Bellinas", "name": "Bellinas", "avatar_url": "https://avatars0.githubusercontent.com/u/45827044?v=4", "profile": "https://github.com/Bellinas", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "amchercashin", "name": "Alexander Cherkashin", "avatar_url": "https://avatars3.githubusercontent.com/u/8727497?v=4", "profile": "https://github.com/amchercashin", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "EnochMbaebie", "name": "Enoch Mbaebie", "avatar_url": "https://avatars0.githubusercontent.com/u/29120867?v=4", "profile": "http://www.soarontech.com.ng", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "inlak16", "name": "inlak16", "avatar_url": "https://avatars1.githubusercontent.com/u/53479637?v=4", "profile": "https://github.com/inlak16", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "bobjiang", "name": "Bob Jiang", "avatar_url": "https://avatars0.githubusercontent.com/u/1224604?v=4", "profile": "https://www.c4at.cn/", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "cobject", "name": "Suhun Kim", "avatar_url": "https://avatars1.githubusercontent.com/u/826798?v=4", "profile": "https://www.linkedin.com/in/suhunkim/", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "jzu", "name": "Jean Zundel", "avatar_url": "https://avatars3.githubusercontent.com/u/337334?v=4", "profile": "http://jzu.blog.free.fr/", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "HachemiH", "name": "Hachemi", "avatar_url": "https://avatars2.githubusercontent.com/u/12778013?v=4", "profile": "https://twitter.com/_Hachemi_", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "hanzoh1", "name": "hanzoh", "avatar_url": "https://avatars0.githubusercontent.com/u/42790758?v=4", "profile": "https://github.com/hanzoh1", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "vincentlg", "name": "Vincent Le Gallic", "avatar_url": "https://avatars1.githubusercontent.com/u/813911?v=4", "profile": "https://twitter.com/vincentLg", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "Enigmatic331", "name": "Enigmatic331", "avatar_url": "https://avatars2.githubusercontent.com/u/28551011?v=4", "profile": "https://github.com/Enigmatic331", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "0zAND1z", "name": "Ganesh Prasad Kumble", "avatar_url": "https://avatars1.githubusercontent.com/u/11145839?v=4", "profile": "https://twitter.com/0zAND1z", - "contributions": [ - "content", - "translation" - ] + "contributions": ["content", "translation"] }, { "login": "pontiyaraja", "name": "Pandiyaraja Ramamoorthy", "avatar_url": "https://avatars0.githubusercontent.com/u/1989030?v=4", "profile": "https://github.com/pontiyaraja", - "contributions": [ - "content", - "translation" - ] + "contributions": ["content", "translation"] }, { "login": "Kuekuatsheu95", "name": "Archan Roychoudhury", "avatar_url": "https://avatars0.githubusercontent.com/u/45584024?v=4", "profile": "https://github.com/Kuekuatsheu95", - "contributions": [ - "content", - "translation" - ] + "contributions": ["content", "translation"] }, { "login": "its-VSP", "name": "SAI PRASHANTH VUPPALA", "avatar_url": "https://avatars0.githubusercontent.com/u/22447085?v=4", "profile": "https://github.com/its-VSP", - "contributions": [ - "content", - "translation" - ] + "contributions": ["content", "translation"] }, { "login": "sickmorty", "name": "Sayid Almahdy", "avatar_url": "https://avatars3.githubusercontent.com/u/39275239?v=4", "profile": "https://github.com/sickmorty", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "jeedani", "name": "jeedani", "avatar_url": "https://avatars2.githubusercontent.com/u/36130718?v=4", "profile": "https://github.com/jeedani", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "akira-19", "name": "Akira", "avatar_url": "https://avatars2.githubusercontent.com/u/38364091?v=4", "profile": "https://github.com/akira-19", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "karansinghgit", "name": "karansinghgit", "avatar_url": "https://avatars3.githubusercontent.com/u/44376616?v=4", "profile": "https://github.com/karansinghgit", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "marcgarreau", "name": "Marc Garreau", "avatar_url": "https://avatars1.githubusercontent.com/u/3621728?v=4", "profile": "https://www.manning.com/books/redux-in-action?a_aid=coach&a_bid=48d05fcb", - "contributions": [ - "content", - "ideas", - "bug" - ] + "contributions": ["content", "ideas", "bug"] }, { "login": "mul53", "name": "mul53", "avatar_url": "https://avatars0.githubusercontent.com/u/19148531?v=4", "profile": "https://github.com/mul53", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "CodinMaster", "name": "Apoorv Lathey", "avatar_url": "https://avatars3.githubusercontent.com/u/20395316?v=4", "profile": "https://github.com/CodinMaster", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ksato9700", "name": "Ken Sato", "avatar_url": "https://avatars1.githubusercontent.com/u/175834?v=4", "profile": "https://github.com/ksato9700", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Sesamestrong", "name": "Sesamestrong", "avatar_url": "https://avatars3.githubusercontent.com/u/26335275?v=4", "profile": "https://github.com/Sesamestrong", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Christofon", "name": "ChrisK", "avatar_url": "https://avatars0.githubusercontent.com/u/26435661?v=4", "profile": "https://github.com/Christofon", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "svanas", "name": "Stefan van As", "avatar_url": "https://avatars1.githubusercontent.com/u/787861?v=4", "profile": "https://stackoverflow.com/story/svanas", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "gjeanmart", "name": "Grégoire Jeanmart", "avatar_url": "https://avatars3.githubusercontent.com/u/506784?v=4", "profile": "https://greg.jeanmart.me", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "nysxah", "name": "nysxah", "avatar_url": "https://avatars2.githubusercontent.com/u/30059030?v=4", "profile": "https://github.com/nysxah", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "RachBLondon", "name": "Rachel", "avatar_url": "https://avatars0.githubusercontent.com/u/8742251?v=4", "profile": "http://rachblondon.github.io/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "wschwab", "name": "wschwab", "avatar_url": "https://avatars3.githubusercontent.com/u/31592931?v=4", "profile": "https://github.com/wschwab", - "contributions": [ - "code", - "content" - ] + "contributions": ["code", "content"] }, { "login": "edsonayllon", "name": "Edson Ayllon", "avatar_url": "https://avatars2.githubusercontent.com/u/34966228?v=4", "profile": "http://twitter.com/relativeread", - "contributions": [ - "content", - "ideas" - ] + "contributions": ["content", "ideas"] }, { "login": "Pet3ris", "name": "Peteris Erins", "avatar_url": "https://avatars0.githubusercontent.com/u/224585?v=4", "profile": "http://peteris.xyz", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "JimmyShi22", "name": "jimmyshi", "avatar_url": "https://avatars3.githubusercontent.com/u/12178678?v=4", "profile": "https://github.com/JimmyShi22", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "JefteCosta", "name": "Jefte Costa", "avatar_url": "https://avatars0.githubusercontent.com/u/3399117?v=4", "profile": "http://www.netyul.com.br", - "contributions": [ - "translation", - "code" - ] + "contributions": ["translation", "code"] }, { "login": "jinhojang6", "name": "Jinho Jang", "avatar_url": "https://avatars2.githubusercontent.com/u/41753422?v=4", "profile": "https://www.linkedin.com/in/jinho-jang-4304a0142/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jklepatch", "name": "Julien Klepatch", "avatar_url": "https://avatars2.githubusercontent.com/u/9279488?v=4", "profile": "https://eattheblocks.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "YazzyYaz", "name": "Yaz Khoury", "avatar_url": "https://avatars2.githubusercontent.com/u/9094204?v=4", "profile": "https://www.yazkhoury.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "yosriady", "name": "Yos Riady", "avatar_url": "https://avatars3.githubusercontent.com/u/1084226?v=4", "profile": "http://yos.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "andrewjcohen", "name": "Andrew Cohen", "avatar_url": "https://avatars2.githubusercontent.com/u/1210802?v=4", "profile": "http://infura.io", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "wslyvh", "name": "Wesley van Heije", "avatar_url": "https://avatars2.githubusercontent.com/u/25974464?v=4", "profile": "https://twitter.com/wslyvh", - "contributions": [ - "content", - "infra" - ] + "contributions": ["content", "infra"] }, { "login": "gr0uch0dev", "name": "gr0uch0dev", "avatar_url": "https://avatars1.githubusercontent.com/u/17497722?v=4", "profile": "https://github.com/gr0uch0dev", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "hsy822", "name": "sooyoung", "avatar_url": "https://avatars3.githubusercontent.com/u/17763340?v=4", "profile": "https://github.com/hsy822", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "adria0", "name": "Adria Massanet", "avatar_url": "https://avatars3.githubusercontent.com/u/5526331?v=4", "profile": "https://github.com/adria0", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "as-dr", "name": "Alex Singh", "avatar_url": "https://avatars0.githubusercontent.com/u/6787950?v=4", "profile": "http://www.alexsingh.com", - "contributions": [ - "design" - ] + "contributions": ["design"] }, { "login": "carlfairclough", "name": "Carl Fairclough", "avatar_url": "https://avatars1.githubusercontent.com/u/4670881?v=4", "profile": "http://carlfairclough.me", - "contributions": [ - "design", - "code", - "bug" - ] + "contributions": ["design", "code", "bug"] }, { "login": "kvrnc", "name": "Kaven C", "avatar_url": "https://avatars3.githubusercontent.com/u/36660375?v=4", "profile": "https://github.com/kvrnc", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "mhatvan", "name": "Markus Hatvan", "avatar_url": "https://avatars2.githubusercontent.com/u/16797721?v=4", "profile": "https://github.com/mhatvan", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "evanstucker-hates-2fa", "name": "Evans Tucker", "avatar_url": "https://avatars0.githubusercontent.com/u/20584445?v=4", "profile": "https://github.com/evanstucker-hates-2fa", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "fluffays", "name": "Adina Cretu", "avatar_url": "https://avatars1.githubusercontent.com/u/39056857?v=4", "profile": "https://github.com/fluffays", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "tvanepps", "name": "tvanepps", "avatar_url": "https://avatars1.githubusercontent.com/u/27454964?v=4", "profile": "https://github.com/tvanepps", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "FlipFloop", "name": "Victor Guyard", "avatar_url": "https://avatars3.githubusercontent.com/u/19635051?v=4", "profile": "https://github.com/FlipFloop", - "contributions": [ - "a11y" - ] + "contributions": ["a11y"] }, { "login": "abhranildas", "name": "Abhranil Das", "avatar_url": "https://avatars0.githubusercontent.com/u/1142007?v=4", "profile": "http://www.abhranil.net", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "ahmeteminkocal", "name": "Ahmet Emin Koçal", "avatar_url": "https://avatars2.githubusercontent.com/u/10382507?v=4", "profile": "https://www.exorditech.com.tr", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "qnou", "name": "Aqeel", "avatar_url": "https://avatars0.githubusercontent.com/u/33502282?v=4", "profile": "http://empire.studio", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "linda-xie", "name": "Linda Xie", "avatar_url": "https://avatars0.githubusercontent.com/u/55955358?v=4", "profile": "https://github.com/linda-xie", - "contributions": [ - "review", - "content" - ] + "contributions": ["review", "content"] }, { "login": "IanEck", "name": "Ian Eck", "avatar_url": "https://avatars2.githubusercontent.com/u/5863338?v=4", "profile": "https://github.com/IanEck", - "contributions": [ - "review", - "content" - ] + "contributions": ["review", "content"] }, { "login": "cwaring", "name": "Chris Waring", "avatar_url": "https://avatars2.githubusercontent.com/u/106938?v=4", "profile": "http://wwaves.co", - "contributions": [ - "code", - "ideas" - ] + "contributions": ["code", "ideas"] }, { "login": "evertonfraga", "name": "Ev", "avatar_url": "https://avatars2.githubusercontent.com/u/47108?v=4", "profile": "https://github.com/evertonfraga", - "contributions": [ - "ideas", - "bug", - "content" - ] + "contributions": ["ideas", "bug", "content"] }, { "login": "0xKiwi", "name": "Ivan Martinez", "avatar_url": "https://avatars2.githubusercontent.com/u/6251510?v=4", "profile": "https://discord.gg/5W5tVb3", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sebastiantf", "name": "Sebastian T F", "avatar_url": "https://avatars3.githubusercontent.com/u/36922376?v=4", "profile": "https://github.com/sebastiantf", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "anettrolikova", "name": "Anett Rolikova ", "avatar_url": "https://avatars1.githubusercontent.com/u/44020788?v=4", "profile": "https://twitter.com/AnettRolikova", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "poojaranjan", "name": "Pooja Ranjan", "avatar_url": "https://avatars0.githubusercontent.com/u/29681685?v=4", "profile": "https://etherworld.co", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sassal", "name": "sassal", "avatar_url": "https://avatars0.githubusercontent.com/u/9276959?v=4", "profile": "https://twitter.com/sassal0x", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "robert-zaremba", "name": "Robert Zaremba", "avatar_url": "https://avatars0.githubusercontent.com/u/811701?v=4", "profile": "https://zaremba.ch", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "tasdienes", "name": "Tas", "avatar_url": "https://avatars1.githubusercontent.com/u/18563486?v=4", "profile": "https://github.com/tasdienes", - "contributions": [ - "ideas", - "content" - ] + "contributions": ["ideas", "content"] }, { "login": "s-pace", "name": "Sylvain Pace", "avatar_url": "https://avatars2.githubusercontent.com/u/32097720?v=4", "profile": "https://github.com/s-pace", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "sinahab", "name": "Sina Habibian", "avatar_url": "https://avatars0.githubusercontent.com/u/4315207?v=4", "profile": "http://twitter.com/sinahab", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "crazyrabbitLTC", "name": "Dennison Bertram", "avatar_url": "https://avatars0.githubusercontent.com/u/1938013?v=4", "profile": "http://www.dennisonbertram.com", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "arturgontijo", "name": "Artur Gontijo", "avatar_url": "https://avatars0.githubusercontent.com/u/15108323?v=4", "profile": "https://github.com/arturgontijo", - "contributions": [ - "ideas", - "content" - ] + "contributions": ["ideas", "content"] }, { "login": "ethjoe", "name": "ethjoe", "avatar_url": "https://avatars0.githubusercontent.com/u/36374665?v=4", "profile": "https://github.com/ethjoe", - "contributions": [ - "content", - "review" - ] + "contributions": ["content", "review"] }, { "login": "cooganb", "name": "cooganb", "avatar_url": "https://avatars2.githubusercontent.com/u/8144425?v=4", "profile": "https://github.com/cooganb", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "drequinox", "name": "drequinox", "avatar_url": "https://avatars1.githubusercontent.com/u/34604812?v=4", "profile": "https://github.com/drequinox", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "tarun1475", "name": "Tarun Gupta", "avatar_url": "https://avatars1.githubusercontent.com/u/17008737?v=4", "profile": "https://biconomy.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jpitts", "name": "Jamie Pitts", "avatar_url": "https://avatars1.githubusercontent.com/u/509756?v=4", "profile": "https://github.com/jpitts", - "contributions": [ - "ideas", - "content" - ] + "contributions": ["ideas", "content"] }, { "login": "seichris", "name": "Chris Seifert", "avatar_url": "https://avatars0.githubusercontent.com/u/25006584?v=4", "profile": "http://web3.consulting", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "JCraigWasTaken", "name": "John Craig", "avatar_url": "https://avatars1.githubusercontent.com/u/16075438?v=4", "profile": "http://johnpcraig.com", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "MorpheusNetwork", "name": "Noam Eppel", "avatar_url": "https://avatars0.githubusercontent.com/u/36540973?v=4", "profile": "https://morpheus.network/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "jacobwillemsma", "name": "Jacob Willemsma", "avatar_url": "https://avatars0.githubusercontent.com/u/4511854?v=4", "profile": "https://github.com/jacobwillemsma", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "alexmb15", "name": "Alex", "avatar_url": "https://avatars3.githubusercontent.com/u/12184447?v=4", "profile": "https://github.com/alexmb15", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "PaulRBerg", "name": "Paul Razvan Berg", "avatar_url": "https://avatars1.githubusercontent.com/u/8782666?v=4", "profile": "https://twitter.com/PaulRBerg", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ph5500", "name": "ph5500", "avatar_url": "https://avatars0.githubusercontent.com/u/60459707?v=4", "profile": "https://github.com/ph5500", - "contributions": [ - "content", - "code" - ] + "contributions": ["content", "code"] }, { "login": "johnmonarch", "name": "John Monarch", "avatar_url": "https://avatars1.githubusercontent.com/u/31969812?v=4", "profile": "http://www.johnmonarch.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "shad-k", "name": "Shadab Khan", "avatar_url": "https://avatars1.githubusercontent.com/u/23720732?v=4", "profile": "https://github.com/shad-k", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ryancreatescopy", @@ -1732,2305 +1304,1736 @@ "name": "Hammad Jutt", "avatar_url": "https://avatars3.githubusercontent.com/u/7143583?v=4", "profile": "http://jutt.ca", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "becaz", "name": "Becaz", "avatar_url": "https://avatars2.githubusercontent.com/u/58934348?v=4", "profile": "https://becaz.org", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "caosbad", "name": "Caos", "avatar_url": "https://avatars2.githubusercontent.com/u/10805199?v=4", "profile": "https://github.com/caosbad", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "developerfred", "name": "codingsh", "avatar_url": "https://avatars2.githubusercontent.com/u/57037080?v=4", "profile": "http://bit.ly/SupportMyCode", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ArtemKo7v", "name": "Artem", "avatar_url": "https://avatars3.githubusercontent.com/u/2138231?v=4", "profile": "https://github.com/ArtemKo7v", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "crisgarner", "name": "Cristian Espinoza Garner", "avatar_url": "https://avatars1.githubusercontent.com/u/578688?v=4", "profile": "http://medium.com/@crisgarner", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "dschlabach", "name": "Daniel Schlabach", "avatar_url": "https://avatars1.githubusercontent.com/u/31226559?v=4", "profile": "https://github.com/dschlabach", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "MariusVanDerWijden", "name": "Marius van der Wijden", "avatar_url": "https://avatars0.githubusercontent.com/u/16664698?v=4", "profile": "https://github.com/MariusVanDerWijden", - "contributions": [ - "content", - "ideas" - ] + "contributions": ["content", "ideas"] }, { "login": "gorgos", "name": "Markus Waas", "avatar_url": "https://avatars1.githubusercontent.com/u/659390?v=4", "profile": "https://soliditydeveloper.com/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "KiChjang", "name": "Keith Yeung", "avatar_url": "https://avatars0.githubusercontent.com/u/3248587?v=4", "profile": "https://github.com/KiChjang", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "jordanlyall", "name": "Jordan Lyall", "avatar_url": "https://avatars0.githubusercontent.com/u/999289?v=4", "profile": "https://twitter.com/JordanLyall", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "elanh", "name": "elanh", "avatar_url": "https://avatars0.githubusercontent.com/u/23513719?v=4", "profile": "https://github.com/elanh", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "mohamedhayibor", "name": "Mohamed Hayibor", "avatar_url": "https://avatars1.githubusercontent.com/u/11381259?v=4", "profile": "https://mohamedhayibor.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "conor10", "name": "Conor Svensson", "avatar_url": "https://avatars1.githubusercontent.com/u/2148266?v=4", "profile": "https://www.web3labs.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "aranhaagency", "name": "Aranha", "avatar_url": "https://avatars1.githubusercontent.com/u/50056110?v=4", "profile": "http://twitter.com/aranhaagency", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "jyoo", "name": "Jung Sup (James) Yoo", "avatar_url": "https://avatars1.githubusercontent.com/u/37724247?v=4", "profile": "http://www.linkedin.com/in/jsyoo", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "Veeit", "name": "Veit Progl", "avatar_url": "https://avatars2.githubusercontent.com/u/22853176?v=4", "profile": "https://veit.pro", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "jcamilli", "name": "jcamilli", "avatar_url": "https://avatars3.githubusercontent.com/u/1952742?v=4", "profile": "https://github.com/jcamilli", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "holiman", "name": "Martin Holst Swende", "avatar_url": "https://avatars1.githubusercontent.com/u/142290?v=4", "profile": "http://martin.swende.se", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "gilbertginsberg", "name": "Steven Gilbert", "avatar_url": "https://avatars2.githubusercontent.com/u/4500679?v=4", "profile": "https://github.com/gilbertginsberg", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sachayves", "name": "Sacha Saint-Leger", "avatar_url": "https://avatars1.githubusercontent.com/u/5483559?v=4", "profile": "https://hackingresear.ch", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "gichiba", "name": "Griffin Ichiba Hotchkiss", "avatar_url": "https://avatars3.githubusercontent.com/u/9886144?v=4", "profile": "https://github.com/gichiba", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "epheph", "name": "Scott Bigelow", "avatar_url": "https://avatars1.githubusercontent.com/u/361654?v=4", "profile": "https://github.com/epheph", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "hrkrshnn", "name": "Harikrishnan Mulackal", "avatar_url": "https://avatars2.githubusercontent.com/u/13174375?v=4", "profile": "https://github.com/hrkrshnn", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "matthieucan", "name": "Matthieu Caneill", "avatar_url": "https://avatars1.githubusercontent.com/u/2828729?v=4", "profile": "https://matthieu.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "arjunaskykok", "name": "Arjuna Sky Kok", "avatar_url": "https://avatars0.githubusercontent.com/u/32124593?v=4", "profile": "https://github.com/arjunaskykok", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "briangu33", "name": "Brian Gu", "avatar_url": "https://avatars2.githubusercontent.com/u/16885693?v=4", "profile": "https://github.com/briangu33", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "BlueVelvetSackOfGoldPotatoes", "name": "Gonçalo Hora de Carvalho", "avatar_url": "https://avatars1.githubusercontent.com/u/37756125?v=4", "profile": "http://goncalohoracarvalho.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "taxmeifyoucan", "name": "Mário Havel", "avatar_url": "https://avatars0.githubusercontent.com/u/61149543?v=4", "profile": "https://github.com/taxmeifyoucan", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "JosefJ", "name": "JosefJ", "avatar_url": "https://avatars1.githubusercontent.com/u/10713123?v=4", "profile": "http://Polynom.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "cburgdorf", "name": "Christoph Burgdorf", "avatar_url": "https://avatars2.githubusercontent.com/u/521109?v=4", "profile": "http://christoph.burgdorf.eth.link", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "slipperybeluga", "name": "slipperybeluga", "avatar_url": "https://avatars0.githubusercontent.com/u/6125744?v=4", "profile": "https://github.com/slipperybeluga", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "liuzimin", "name": "David Liu", "avatar_url": "https://avatars3.githubusercontent.com/u/24978284?v=4", "profile": "https://www.campusconnect.ca/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "shreyashariharan3", "name": "shreyashariharan3", "avatar_url": "https://avatars3.githubusercontent.com/u/48186822?v=4", "profile": "https://github.com/shreyashariharan3", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "AdrianClv", "name": "Adrián Calvo", "avatar_url": "https://avatars2.githubusercontent.com/u/9255560?v=4", "profile": "https://www.linkedin.com/in/adrianclv/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "daviroo", "name": "daviroo", "avatar_url": "https://avatars1.githubusercontent.com/u/3502409?v=4", "profile": "https://github.com/daviroo", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "notrixbe", "name": "Wim Notredame", "avatar_url": "https://avatars1.githubusercontent.com/u/3173121?v=4", "profile": "https://www.linkedin.com/in/wim-notredame/", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "vasa-develop", "name": "vasa", "avatar_url": "https://avatars2.githubusercontent.com/u/28847087?v=4", "profile": "https://vaibhavsaini.com/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "franzihei", "name": "Franziska Heintel", "avatar_url": "https://avatars2.githubusercontent.com/u/41991517?v=4", "profile": "https://github.com/franzihei", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "umair-me", "name": "Muhammad Umair Irshad", "avatar_url": "https://avatars1.githubusercontent.com/u/834935?v=4", "profile": "http://umair.me", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "naszam", "name": "Nazzareno Massari", "avatar_url": "https://avatars0.githubusercontent.com/u/23325228?v=4", "profile": "https://gitcoin.co/profile/naszam/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "vladimirfomene", "name": "Mayemene Fomene Jean Vladimir", "avatar_url": "https://avatars1.githubusercontent.com/u/11140070?v=4", "profile": "http://vladimirfomene.github.io", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "yahsinhuangtw", "name": "Yahsin Huang", "avatar_url": "https://avatars2.githubusercontent.com/u/6111396?v=4", "profile": "https://yahsin.me/", - "contributions": [ - "content", - "translation" - ] + "contributions": ["content", "translation"] }, { "login": "jzaki", "name": "James Zaki", "avatar_url": "https://avatars1.githubusercontent.com/u/939603?v=4", "profile": "http://medium.com/@james.zaki", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "designheretic", "name": "Greg Lang", "avatar_url": "https://avatars2.githubusercontent.com/u/16615034?v=4", "profile": "https://rivet.cloud", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "voska", "name": "Matt Voska", "avatar_url": "https://avatars1.githubusercontent.com/u/3444419?v=4", "profile": "https://github.com/voska", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "mustafawm", "name": "mustafa", "avatar_url": "https://avatars0.githubusercontent.com/u/13101565?v=4", "profile": "https://github.com/mustafawm", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "wackerow", "name": "Paul Wackerow", "avatar_url": "https://avatars0.githubusercontent.com/u/54227730?v=4", "profile": "https://github.com/wackerow", - "contributions": [ - "code", - "bug", - "doc", - "design" - ] + "contributions": ["code", "bug", "doc", "design"] }, { "login": "detohm", "name": "Attaphong Rattanaveerachanon", "avatar_url": "https://avatars1.githubusercontent.com/u/4770525?v=4", "profile": "https://github.com/detohm", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "liaojianqi", "name": "LoinLiao", "avatar_url": "https://avatars1.githubusercontent.com/u/14259182?v=4", "profile": "https://github.com/liaojianqi", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "DrMad92", "name": "DrMad92", "avatar_url": "https://avatars2.githubusercontent.com/u/28419987?v=4", "profile": "https://github.com/DrMad92", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "alcuadrado", "name": "Patricio Palladino", "avatar_url": "https://avatars1.githubusercontent.com/u/176499?v=4", "profile": "http://www.nomiclabs.io", - "contributions": [ - "review", - "ideas" - ] + "contributions": ["review", "ideas"] }, { "login": "davidmurdoch", "name": "David Murdoch", "avatar_url": "https://avatars2.githubusercontent.com/u/187813?v=4", "profile": "https://davidmurdoch.com", - "contributions": [ - "review" - ] + "contributions": ["review"] }, { "login": "MashhoodIjaz", "name": "MashhoodIjaz", "avatar_url": "https://avatars2.githubusercontent.com/u/33490414?v=4", "profile": "https://github.com/MashhoodIjaz", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "Dan-Nolan", "name": "Dan Nolan", "avatar_url": "https://avatars2.githubusercontent.com/u/4423365?v=4", "profile": "https://www.chainshot.com/", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "marekkirejczyk", "name": "Marek Kirejczyk", "avatar_url": "https://avatars3.githubusercontent.com/u/197522?v=4", "profile": "https://github.com/marekkirejczyk", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "joncursi", "name": "Jon Cursi", "avatar_url": "https://avatars3.githubusercontent.com/u/4974609?v=4", "profile": "https://joncursi.com/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jamespfarrell", "name": "James Farrell", "avatar_url": "https://avatars2.githubusercontent.com/u/10499048?v=4", "profile": "https://topia.us", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "xaviarias", "name": "Xavi Arias Seguí", "avatar_url": "https://avatars3.githubusercontent.com/u/876579?v=4", "profile": "https://github.com/xaviarias", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "howdyAnkit", "name": "ANKIT_PAL", "avatar_url": "https://avatars2.githubusercontent.com/u/40737659?v=4", "profile": "https://howdyankit.xyz", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ikc89", "name": "İsmail Kerim Cem", "avatar_url": "https://avatars0.githubusercontent.com/u/7846803?v=4", "profile": "https://github.com/ikc89", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "eberhardtj", "name": "Joanne", "avatar_url": "https://avatars0.githubusercontent.com/u/49472730?v=4", "profile": "https://github.com/eberhardtj", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "michael60634", "name": "michael60634", "avatar_url": "https://avatars1.githubusercontent.com/u/59159320?v=4", "profile": "https://github.com/michael60634", - "contributions": [ - "bug", - "ideas" - ] + "contributions": ["bug", "ideas"] }, { "login": "gumb0", "name": "Andrei Maiboroda", "avatar_url": "https://avatars0.githubusercontent.com/u/1863135?v=4", "profile": "https://github.com/gumb0", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ankisharmadel", "name": "Anki", "avatar_url": "https://avatars2.githubusercontent.com/u/28820514?v=4", "profile": "https://github.com/ankisharmadel", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "wendydv1989", "name": "Michelle Plur", "avatar_url": "https://avatars1.githubusercontent.com/u/52613476?v=4", "profile": "https://github.com/wendydv1989", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "PAAlmasi", "name": "PAAlmasi", "avatar_url": "https://avatars3.githubusercontent.com/u/38504457?v=4", "profile": "https://github.com/PAAlmasi", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "benjaminion", "name": "Ben Edgington", "avatar_url": "https://avatars2.githubusercontent.com/u/20796281?v=4", "profile": "http://benjaminion.xyz", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "alexsantee", "name": "alexsantee", "avatar_url": "https://avatars3.githubusercontent.com/u/40058461?v=4", "profile": "https://github.com/alexsantee", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "peth-yursick", "name": "peth-yursick", "avatar_url": "https://avatars2.githubusercontent.com/u/55857222?v=4", "profile": "https://github.com/peth-yursick", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Arnor1711", "name": "Alwin Stockinger", "avatar_url": "https://avatars2.githubusercontent.com/u/23365186?v=4", "profile": "https://github.com/Arnor1711", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "rihp", "name": "Roberto Henríquez Perozo", "avatar_url": "https://avatars1.githubusercontent.com/u/12145726?v=4", "profile": "http://henriquezperozo.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "strykerin", "name": "strykerin", "avatar_url": "https://avatars2.githubusercontent.com/u/19648581?v=4", "profile": "https://github.com/strykerin", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jddxf", "name": "jddxf", "avatar_url": "https://avatars2.githubusercontent.com/u/11155177?v=4", "profile": "https://github.com/jddxf", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "LucasRoorda", "name": "LucasRoorda", "avatar_url": "https://avatars2.githubusercontent.com/u/48732931?v=4", "profile": "http://www.blockchair.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "MihirLuthra", "name": "Mihir Luthra", "avatar_url": "https://avatars0.githubusercontent.com/u/42952059?v=4", "profile": "https://github.com/MihirLuthra", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "tentodev", "name": "tentodev", "avatar_url": "https://avatars2.githubusercontent.com/u/75068379?v=4", "profile": "https://github.com/tentodev", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "MiZiet", "name": "MiZiet", "avatar_url": "https://avatars2.githubusercontent.com/u/55240109?v=4", "profile": "https://github.com/MiZiet", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sudo-vaibhav", "name": "Vaibhav Chopra", "avatar_url": "https://avatars0.githubusercontent.com/u/53619134?v=4", "profile": "http://vaibhavchopra.codes", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "lsankar4033", "name": "Lakshman Sankar", "avatar_url": "https://avatars1.githubusercontent.com/u/451947?v=4", "profile": "https://github.com/lsankar4033", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "hewigovens", "name": "hewigovens", "avatar_url": "https://avatars1.githubusercontent.com/u/360470?v=4", "profile": "https://twitter.com/hewigovens", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "DragonDev1906", "name": "DragonDev1906", "avatar_url": "https://avatars3.githubusercontent.com/u/8270201?v=4", "profile": "https://github.com/DragonDev1906", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "ryanio", "name": "Ryan Ghods", "avatar_url": "https://avatars0.githubusercontent.com/u/22116?v=4", "profile": "https://github.com/ryanio", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "OliverPetrovic", "name": "Oliver", "avatar_url": "https://avatars0.githubusercontent.com/u/44640417?v=4", "profile": "https://oliverpetrovic.sk/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Kristiyan96", "name": "Kristiyan", "avatar_url": "https://avatars3.githubusercontent.com/u/15987117?v=4", "profile": "https://github.com/Kristiyan96", - "contributions": [ - "bug", - "code" - ] + "contributions": ["bug", "code"] }, { "login": "matthieu", "name": "Matthieu Riou", "avatar_url": "https://avatars0.githubusercontent.com/u/4904?v=4", "profile": "http://www.blockcypher.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "pansay", "name": "pansay", "avatar_url": "https://avatars2.githubusercontent.com/u/4820218?v=4", "profile": "http://pansay.com/", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "eirtscience", "name": "eirtscience", "avatar_url": "https://avatars2.githubusercontent.com/u/6157618?v=4", "profile": "https://github.com/eirtscience", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "lewifr", "name": "Francis Lewis", "avatar_url": "https://avatars2.githubusercontent.com/u/49526117?v=4", "profile": "https://github.com/lewifr", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "baub", "name": "baub", "avatar_url": "https://avatars3.githubusercontent.com/u/44686?v=4", "profile": "https://github.com/baub", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "l-armstrong", "name": "lamone", "avatar_url": "https://avatars0.githubusercontent.com/u/43922258?v=4", "profile": "https://github.com/l-armstrong", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "aseoconnor", "name": "Sean O'Connor", "avatar_url": "https://avatars2.githubusercontent.com/u/9483108?v=4", "profile": "http://seanoconn.org", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ttrowell", "name": "Tara Rowell", "avatar_url": "https://avatars1.githubusercontent.com/u/1165813?v=4", "profile": "https://github.com/ttrowell", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "hiiri", "name": "Aleksi Cohen", "avatar_url": "https://avatars0.githubusercontent.com/u/30537851?v=4", "profile": "https://www.linkedin.com/in/aleksicohen/", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "staktrace", "name": "Kartikaya Gupta (kats)", "avatar_url": "https://avatars3.githubusercontent.com/u/485789?v=4", "profile": "https://staktrace.com/", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "siddhantkharode", "name": "siddhantkharode", "avatar_url": "https://avatars0.githubusercontent.com/u/50978880?v=4", "profile": "https://github.com/siddhantkharode", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "renandincer", "name": "Renan Dincer", "avatar_url": "https://avatars0.githubusercontent.com/u/1429100?v=4", "profile": "https://renandincer.com", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "zhangyuannie", "name": "Zhangyuan Nie", "avatar_url": "https://avatars1.githubusercontent.com/u/54489058?v=4", "profile": "http://znie.org", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "PatrickAlphaC", "name": "Patrick Collins", "avatar_url": "https://avatars0.githubusercontent.com/u/54278053?v=4", "profile": "https://alphachain.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "santdeleon", "name": "Sant Deleon", "avatar_url": "https://avatars2.githubusercontent.com/u/22578527?v=4", "profile": "https://santdeleon.io", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "hurryabit", "name": "Martin Huschenbett", "avatar_url": "https://avatars1.githubusercontent.com/u/11665611?v=4", "profile": "http://daml.com", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "kallemoen", "name": "Kalle Moen", "avatar_url": "https://avatars1.githubusercontent.com/u/13684960?v=4", "profile": "http://www.kallemoen.com", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "esteticalVE", "name": "Vitaly", "avatar_url": "https://avatars1.githubusercontent.com/u/49448423?v=4", "profile": "https://github.com/esteticalVE", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "neewy", "name": "Nikolay Yushkevich", "avatar_url": "https://avatars.githubusercontent.com/u/11841667?v=4", "profile": "https://github.com/neewy", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "darkwater4213", "name": "darkwater4213", "avatar_url": "https://avatars.githubusercontent.com/u/53630002?v=4", "profile": "https://github.com/darkwater4213", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "akashnimare", "name": "Akash Nimare", "avatar_url": "https://avatars.githubusercontent.com/u/2263909?v=4", "profile": "https://akashnimare.in", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "davidshq", "name": "Dave Mackey", "avatar_url": "https://avatars.githubusercontent.com/u/8009774?v=4", "profile": "https://davemackey.net/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Siegrift", "name": "Emanuel Tesař", "avatar_url": "https://avatars.githubusercontent.com/u/22679154?v=4", "profile": "https://github.com/Siegrift", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "DeFiDude", "name": "DeFiDude", "avatar_url": "https://avatars.githubusercontent.com/u/59237470?v=4", "profile": "https://github.com/DeFiDude", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "austintgriffith", "name": "Austin Griffith", "avatar_url": "https://avatars.githubusercontent.com/u/2653167?v=4", "profile": "http://austingriffith.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "chase-manning", "name": "Chase Manning", "avatar_url": "https://avatars.githubusercontent.com/u/53957795?v=4", "profile": "https://chasemanning.co.nz", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "colinsteil", "name": "Colin Steil", "avatar_url": "https://avatars.githubusercontent.com/u/28073950?v=4", "profile": "http://cartesi.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "MonarthS", "name": "MonarthS", "avatar_url": "https://avatars.githubusercontent.com/u/40236229?v=4", "profile": "https://github.com/MonarthS", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "adamdry", "name": "Adam Dry", "avatar_url": "https://avatars.githubusercontent.com/u/7360709?v=4", "profile": "https://github.com/adamdry", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "seishun", "name": "Nikolai Vavilov", "avatar_url": "https://avatars.githubusercontent.com/u/988441?v=4", "profile": "https://github.com/seishun", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "okdonga", "name": "Katie ", "avatar_url": "https://avatars.githubusercontent.com/u/12257412?v=4", "profile": "https://github.com/okdonga", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "comeToThinkOfEth", "name": "comeToThinkOfEth", "avatar_url": "https://avatars.githubusercontent.com/u/78873209?v=4", "profile": "https://github.com/comeToThinkOfEth", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "catsnackattack", "name": "catsnackattack", "avatar_url": "https://avatars.githubusercontent.com/u/36013218?v=4", "profile": "https://github.com/catsnackattack", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "maurycyp", "name": "Maurycy", "avatar_url": "https://avatars.githubusercontent.com/u/1296842?v=4", "profile": "https://github.com/maurycyp", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ipapandinas", "name": "Igor Papandinas", "avatar_url": "https://avatars.githubusercontent.com/u/26460174?v=4", "profile": "https://github.com/ipapandinas", - "contributions": [ - "bug", - "code", - "content" - ] + "contributions": ["bug", "code", "content"] }, { "login": "tahiralvi", "name": "Tahir Alvi ", "avatar_url": "https://avatars.githubusercontent.com/u/1356887?v=4", "profile": "https://stackoverflow.com/users/355191/tahir-alvi", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "amirmehdi", "name": "amirmehdi", "avatar_url": "https://avatars.githubusercontent.com/u/24705793?v=4", "profile": "https://github.com/amirmehdi", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "Dadybayo", "name": "Dan Dadybaev", "avatar_url": "https://avatars.githubusercontent.com/u/33674013?v=4", "profile": "https://github.com/Dadybayo", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "finleyexp", "name": "Finley", "avatar_url": "https://avatars.githubusercontent.com/u/18469214?v=4", "profile": "https://www.pir8aye.net", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "nobd", "name": "nobd", "avatar_url": "https://avatars.githubusercontent.com/u/51967351?v=4", "profile": "https://github.com/nobd", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "AlexSSD7", "name": "Alexander Sadovskyi", "avatar_url": "https://avatars.githubusercontent.com/u/43043344?v=4", "profile": "https://github.com/AlexSSD7", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "EthanSK", "name": "Ethan Sarif-Kattan", "avatar_url": "https://avatars.githubusercontent.com/u/13756744?v=4", "profile": "https://www.etggames.com/", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "cj-technical", "name": "C.J. Kozarski", "avatar_url": "https://avatars.githubusercontent.com/u/58790577?v=4", "profile": "https://github.com/cj-technical", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "yakkomajuri", "name": "Yakko Majuri", "avatar_url": "https://avatars.githubusercontent.com/u/38760734?v=4", "profile": "http://yakko.tech", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "adlerjohn", "name": "John Adler", "avatar_url": "https://avatars.githubusercontent.com/u/3290375?v=4", "profile": "https://github.com/adlerjohn", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "fubuloubu", "name": "Just some guy", "avatar_url": "https://avatars.githubusercontent.com/u/3859395?v=4", "profile": "https://github.com/fubuloubu", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "ved08", "name": "Vedvardhan", "avatar_url": "https://avatars.githubusercontent.com/u/37742218?v=4", "profile": "https://github.com/ved08", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "vemuez", "name": "Yussuf Elarif", "avatar_url": "https://avatars.githubusercontent.com/u/9627828?v=4", "profile": "https://github.com/vemuez", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "davidawad", "name": "David Awad", "avatar_url": "https://avatars.githubusercontent.com/u/4019054?v=4", "profile": "https://davidawad.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "axic", "name": "Alex Beregszaszi", "avatar_url": "https://avatars.githubusercontent.com/u/20340?v=4", "profile": "http://www.rtfs.hu", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "adamgoth", "name": "Adam Goth", "avatar_url": "https://avatars.githubusercontent.com/u/5225766?v=4", "profile": "http://www.adamgoth.com", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "Anuragtech02", "name": "Anurag Pal", "avatar_url": "https://avatars.githubusercontent.com/u/55744578?v=4", "profile": "https://github.com/Anuragtech02", - "contributions": [ - "code", - "doc" - ] + "contributions": ["code", "doc"] }, { "login": "Vishal19111999", "name": "Vishal Pratap Singh", "avatar_url": "https://avatars.githubusercontent.com/u/29145212?v=4", "profile": "https://www.codechef.com/users/chaos_", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "qbzzt", "name": "qbzzt", "avatar_url": "https://avatars.githubusercontent.com/u/12722969?v=4", "profile": "https://github.com/qbzzt", - "contributions": [ - "content", - "ideas" - ] + "contributions": ["content", "ideas"] }, { "login": "ekowalsk", "name": "Ewa Kowalska", "avatar_url": "https://avatars.githubusercontent.com/u/30404388?v=4", "profile": "https://github.com/ekowalsk", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Aheesh", "name": "Aheesh", "avatar_url": "https://avatars.githubusercontent.com/u/8059227?v=4", "profile": "https://github.com/Aheesh", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "tophersjones", "name": "tophersjones", "avatar_url": "https://avatars.githubusercontent.com/u/33736287?v=4", "profile": "https://github.com/tophersjones", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "andrw", "name": "Andrew Yang", "avatar_url": "https://avatars.githubusercontent.com/u/994064?v=4", "profile": "https://github.com/andrw", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "BokilaLin", "name": "$hoot->Pairs", "avatar_url": "https://avatars.githubusercontent.com/u/12237944?v=4", "profile": "https://github.com/BokilaLin", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "NilsKaden", "name": "NilsKaden", "avatar_url": "https://avatars.githubusercontent.com/u/34445522?v=4", "profile": "https://github.com/NilsKaden", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "stuz5000", "name": "Stuart Reynolds", "avatar_url": "https://avatars.githubusercontent.com/u/7799980?v=4", "profile": "https://github.com/stuz5000", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "glebodic", "name": "Gwenael Le Bodic", "avatar_url": "https://avatars.githubusercontent.com/u/18246298?v=4", "profile": "https://github.com/glebodic", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "whoanuragverma", "name": "Anurag Verma", "avatar_url": "https://avatars.githubusercontent.com/u/55322425?v=4", "profile": "https://github.com/whoanuragverma", - "contributions": [ - "bug", - "code" - ] + "contributions": ["bug", "code"] }, { "login": "citizen-stig", "name": "Nikolai Golub", "avatar_url": "https://avatars.githubusercontent.com/u/3115300?v=4", "profile": "http://golub.pro/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "intelliot", "name": "Elliot Lee", "avatar_url": "https://avatars.githubusercontent.com/u/81505?v=4", "profile": "https://twitter.com/intelliot", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "v-gar", "name": "Viktor Garske", "avatar_url": "https://avatars.githubusercontent.com/u/11472697?v=4", "profile": "https://www.v-gar.de/", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "grmkris", "name": "Kristjan Grm", "avatar_url": "https://avatars.githubusercontent.com/u/15545195?v=4", "profile": "http://grmkris.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "macladson", "name": "Mac L", "avatar_url": "https://avatars.githubusercontent.com/u/58379419?v=4", "profile": "https://github.com/macladson", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "BruceMacD", "name": "Bruce MacDonald", "avatar_url": "https://avatars.githubusercontent.com/u/5853428?v=4", "profile": "http://bruce-macdonald.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "RonSherfey", "name": "Ronnie Sherfey", "avatar_url": "https://avatars.githubusercontent.com/u/77251516?v=4", "profile": "http://reggienoble.eth", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "a1irahman", "name": "Ali Rahman", "avatar_url": "https://avatars.githubusercontent.com/u/46408722?v=4", "profile": "https://github.com/a1irahman", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "erikvdp", "name": "Erik Vandeputte", "avatar_url": "https://avatars.githubusercontent.com/u/203481?v=4", "profile": "https://github.com/erikvdp", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "tmlee", "name": "TM Lee", "avatar_url": "https://avatars.githubusercontent.com/u/110264?v=4", "profile": "https://www.coingecko.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "mic0des", "name": "mic0des", "avatar_url": "https://avatars.githubusercontent.com/u/4992682?v=4", "profile": "https://github.com/mic0des", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Hakeemmidan", "name": "Hakeem Almidan", "avatar_url": "https://avatars.githubusercontent.com/u/27740273?v=4", "profile": "http://hakeem-almidan.com", - "contributions": [ - "content", - "code" - ] + "contributions": ["content", "code"] }, { "login": "JulienRioux", "name": "Julien Rioux", "avatar_url": "https://avatars.githubusercontent.com/u/26312935?v=4", "profile": "https://julien-rioux.web.app/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "kraxx", "name": "Justin Chow", "avatar_url": "https://avatars.githubusercontent.com/u/24942820?v=4", "profile": "https://github.com/kraxx", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "0xGabi", "name": "Gabi", "avatar_url": "https://avatars.githubusercontent.com/u/9082013?v=4", "profile": "https://github.com/0xGabi", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "rabbitXIII", "name": "Rohit Gopal", "avatar_url": "https://avatars.githubusercontent.com/u/1820619?v=4", "profile": "https://github.com/rabbitXIII", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "jordanoverbye", "name": "Jordan Overbye", "avatar_url": "https://avatars.githubusercontent.com/u/6265154?v=4", "profile": "https://jordanoverbye.com", - "contributions": [ - "bug", - "code" - ] + "contributions": ["bug", "code"] }, { "login": "Pilafonta", "name": "Peter LaFontaine", "avatar_url": "https://avatars.githubusercontent.com/u/4194866?v=4", "profile": "https://github.com/Pilafonta", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "joshjwelsh", "name": "Joshua Welsh", "avatar_url": "https://avatars.githubusercontent.com/u/60113598?v=4", "profile": "http://joshjwelsh.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "robertdosa", "name": "Robert Dosa", "avatar_url": "https://avatars.githubusercontent.com/u/57013905?v=4", "profile": "https://github.com/robertdosa", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "SatoshiMiracle", "name": "SatoshiMiracle", "avatar_url": "https://avatars.githubusercontent.com/u/72975337?v=4", "profile": "https://github.com/SatoshiMiracle", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "jhhb", "name": "James Boyle", "avatar_url": "https://avatars.githubusercontent.com/u/12632889?v=4", "profile": "https://github.com/jhhb", - "contributions": [ - "ideas", - "content" - ] + "contributions": ["ideas", "content"] }, { "login": "kziechmann", "name": "Kevin Ziechmann", "avatar_url": "https://avatars.githubusercontent.com/u/42778833?v=4", "profile": "http://www.kevinziechmann.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "elmorg", "name": "Evan", "avatar_url": "https://avatars.githubusercontent.com/u/1218452?v=4", "profile": "http://you-rhythmic.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ETHorHIL", "name": "ETHorHIL", "avatar_url": "https://avatars.githubusercontent.com/u/24531309?v=4", "profile": "https://github.com/ETHorHIL", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "shashvatshah9", "name": "shashvatshah9", "avatar_url": "https://avatars.githubusercontent.com/u/24702409?v=4", "profile": "http://www.linkedin.com/in/shashvat-shah-565399122", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "slightlyfloating", "name": "slightlyfloating", "avatar_url": "https://avatars.githubusercontent.com/u/56945047?v=4", "profile": "https://github.com/slightlyfloating", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "Luis-Mx", "name": "Luis Miranda", "avatar_url": "https://avatars.githubusercontent.com/u/30961?v=4", "profile": "https://github.com/Luis-Mx", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "qe", "name": "Alex Ismodes", "avatar_url": "https://avatars.githubusercontent.com/u/59273057?v=4", "profile": "http://qe.github.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "minimalsm", "name": "Joshua", "avatar_url": "https://avatars.githubusercontent.com/u/62268199?v=4", "profile": "https://github.com/minimalsm", - "contributions": [ - "bug", - "code" - ] + "contributions": ["bug", "code"] }, { "login": "ensaryusuf", "name": "Ensar Yusuf Yılmaz", "avatar_url": "https://avatars.githubusercontent.com/u/49895756?v=4", "profile": "https://seskit.com/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "leogtzr", "name": "Leo Gutiérrez Ramírez", "avatar_url": "https://avatars.githubusercontent.com/u/1211969?v=4", "profile": "https://github.com/leogtzr", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "abdulmalik97", "name": "Abdul Malik", "avatar_url": "https://avatars.githubusercontent.com/u/9363303?v=4", "profile": "https://github.com/abdulmalik97", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "JayWelsh", "name": "Jay Welsh", "avatar_url": "https://avatars.githubusercontent.com/u/14224459?v=4", "profile": "https://twitter.com/JayBWelsh", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "linkastic", "name": "linkastic", "avatar_url": "https://avatars.githubusercontent.com/u/7030395?v=4", "profile": "https://github.com/linkastic", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "cjinghong", "name": "Chan Jing Hong", "avatar_url": "https://avatars.githubusercontent.com/u/11567740?v=4", "profile": "http://groftware.tech", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ozora-ogino", "name": "Ozora Ogino", "avatar_url": "https://avatars.githubusercontent.com/u/63685461?v=4", "profile": "https://github.com/ozora-ogino", - "contributions": [ - "content", - "translation" - ] + "contributions": ["content", "translation"] }, { "login": "eltociear", "name": "Ikko Ashimine", "avatar_url": "https://avatars.githubusercontent.com/u/22633385?v=4", "profile": "https://bandism.net/", - "contributions": [ - "bug", - "content", - "doc", - "translation" - ] + "contributions": ["bug", "content", "doc", "translation"] }, { "login": "CameronHonis", "name": "Cameron Honis", "avatar_url": "https://avatars.githubusercontent.com/u/66322224?v=4", "profile": "https://github.com/CameronHonis", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "nurdtechie98", "name": "Chirag Shetty", "avatar_url": "https://avatars.githubusercontent.com/u/21201278?v=4", "profile": "http://nurdtechie98.github.io", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "iloveitaly", "name": "Michael Bianco", "avatar_url": "https://avatars.githubusercontent.com/u/150855?v=4", "profile": "http://mikebian.co/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "Robiquet", "name": "Tom Robiquet", "avatar_url": "https://avatars.githubusercontent.com/u/4950844?v=4", "profile": "https://github.com/Robiquet", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "StanislavBreadless", "name": "Stanislav Bezkorovainyi", "avatar_url": "https://avatars.githubusercontent.com/u/52464764?v=4", "profile": "https://github.com/StanislavBreadless", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "rootulp", "name": "Rootul Patel", "avatar_url": "https://avatars.githubusercontent.com/u/3699047?v=4", "profile": "https://rootulp.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "ZackDeRose", "name": "Zachary DeRose", "avatar_url": "https://avatars.githubusercontent.com/u/3788405?v=4", "profile": "https://zackderose.dev", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ArshanKhanifar", "name": "Arshan Khanifar", "avatar_url": "https://avatars.githubusercontent.com/u/10492324?v=4", "profile": "https://github.com/ArshanKhanifar", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "schnerd", "name": "David Schnurr", "avatar_url": "https://avatars.githubusercontent.com/u/875591?v=4", "profile": "http://dschnurr.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "keleffew", "name": "Kevin Leffew", "avatar_url": "https://avatars.githubusercontent.com/u/33433528?v=4", "profile": "https://twitter.com/kleffew94", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "pgrimaud", "name": "Pierre Grimaud", "avatar_url": "https://avatars.githubusercontent.com/u/1866496?v=4", "profile": "https://github.com/pgrimaud", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "jclancy93", "name": "Jack Clancy", "avatar_url": "https://avatars.githubusercontent.com/u/7850202?v=4", "profile": "https://github.com/jclancy93", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sprad", "name": "Justin Spradlin", "avatar_url": "https://avatars.githubusercontent.com/u/25503?v=4", "profile": "http://www.justinspradlin.com", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "thelostone-mc", "name": "Aditya Anand M C", "avatar_url": "https://avatars.githubusercontent.com/u/5358146?v=4", "profile": "https://github.com/thelostone-mc", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "lemonase", "name": "James Dixon", "avatar_url": "https://avatars.githubusercontent.com/u/11729404?v=4", "profile": "https://jamesdixon.dev", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "vasumanhas000", "name": "Vasu Manhas", "avatar_url": "https://avatars.githubusercontent.com/u/55337644?v=4", "profile": "https://www.linkedin.com/in/vasu-manhas/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "jpaulet", "name": "jp_aulet", "avatar_url": "https://avatars.githubusercontent.com/u/6894329?v=4", "profile": "http://www.jpaulet.com", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "manojmsrit", "name": "manojmsrit", "avatar_url": "https://avatars.githubusercontent.com/u/49993125?v=4", "profile": "https://github.com/manojmsrit", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "PowerStream3604", "name": "David Kim", "avatar_url": "https://avatars.githubusercontent.com/u/63450340?v=4", "profile": "https://github.com/PowerStream3604", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "bhavishy6", "name": "Bhavish Yalamanchi", "avatar_url": "https://avatars.githubusercontent.com/u/1428107?v=4", "profile": "https://github.com/bhavishy6", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "awg0013-PR", "name": "awg0013-PR", "avatar_url": "https://avatars.githubusercontent.com/u/73718997?v=4", "profile": "https://github.com/awg0013-PR", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "DevAranCarter", "name": "Devin", "avatar_url": "https://avatars.githubusercontent.com/u/68774530?v=4", "profile": "https://github.com/DevAranCarter", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Dave2022", "name": "Dave", "avatar_url": "https://avatars.githubusercontent.com/u/82191676?v=4", "profile": "https://github.com/Dave2022", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "skylenet", "name": "Rafael Matias", "avatar_url": "https://avatars.githubusercontent.com/u/1500888?v=4", - "profile": "https://skyle.net", - "contributions": [ - "bug", - "content" - ] + "profile": "https://skyle.net", + "contributions": ["bug", "content"] }, { "login": "cglagovich", "name": "Colman Glagovich", "avatar_url": "https://avatars.githubusercontent.com/u/20099419?v=4", "profile": "https://github.com/cglagovich", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "endorphin", "name": "endorphin", "avatar_url": "https://avatars.githubusercontent.com/u/10931642?v=4", "profile": "https://github.com/endorphin", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "nebali", "name": "Nebali", "avatar_url": "https://avatars.githubusercontent.com/u/43342338?v=4", "profile": "https://github.com/nebali", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "theshubhagrwl", "name": "Shubh Agrawal", "avatar_url": "https://avatars.githubusercontent.com/u/37265683?v=4", "profile": "https://theshubhagrwl.vercel.app/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "cth0604", "name": "cth0604", "avatar_url": "https://avatars.githubusercontent.com/u/57742558?v=4", "profile": "https://github.com/cth0604", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "zjpetersen", "name": "zjpetersen", "avatar_url": "https://avatars.githubusercontent.com/u/12157308?v=4", "profile": "https://github.com/zjpetersen", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "frankie224", "name": "frankie224", "avatar_url": "https://avatars.githubusercontent.com/u/84561472?v=4", "profile": "https://github.com/frankie224", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "Pondorasti", "name": "Alexandru Turcanu", "avatar_url": "https://avatars.githubusercontent.com/u/32957606?v=4", "profile": "https://alexandru.so", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "brettsmentek", "name": "Brett", "avatar_url": "https://avatars.githubusercontent.com/u/9037105?v=4", "profile": "https://brett.sh", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "blackblather", "name": "João Monteiro", "avatar_url": "https://avatars.githubusercontent.com/u/6885917?v=4", "profile": "http://joao-monteiro.com", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "arunlodhi", "name": "Arun Lodhi", "avatar_url": "https://avatars.githubusercontent.com/u/5833803?v=4", "profile": "https://github.com/arunlodhi", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "timhc22", "name": "Tim", "avatar_url": "https://avatars.githubusercontent.com/u/3952393?v=4", "profile": "https://unegma.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "vitaliyhayda", "name": "Vitaliy Hayda", "avatar_url": "https://avatars.githubusercontent.com/u/7917231?v=4", "profile": "https://github.com/vitaliyhayda", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "ayushman17", "name": "Ayushman Singh Chauhan", "avatar_url": "https://avatars.githubusercontent.com/u/53474591?v=4", "profile": "http://linkedin.com/in/ayushman17/", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "Lisanaaa", "name": "Keqi Huang", "avatar_url": "https://avatars.githubusercontent.com/u/28261876?v=4", "profile": "https://www.linkedin.com/in/keqi-huang/", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "davidplutus", "name": "davidplutus", "avatar_url": "https://avatars.githubusercontent.com/u/63456936?v=4", "profile": "https://github.com/DavidPlutus", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "Karthickmerk", "name": "Karthickmerk", "avatar_url": "https://avatars.githubusercontent.com/u/53270101?v=4", "profile": "https://github.com/Karthickmerk", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "hueyhe", "name": "Sihong", "avatar_url": "https://avatars.githubusercontent.com/u/13460383?v=4", "profile": "https://github.com/hueyhe", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "AmirAliM", "name": "AmirAliM", "avatar_url": "https://avatars.githubusercontent.com/u/8203572?v=4", "profile": "https://github.com/AmirAliM", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Rub3cula", "name": "Rub3cula", "avatar_url": "https://avatars.githubusercontent.com/u/63545006?v=4", "profile": "https://github.com/Rub3cula", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "pawurb", "name": "Paweł Urbanek", "avatar_url": "https://avatars.githubusercontent.com/u/1131944?v=4", "profile": "https://pawelurbanek.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "adi44", "name": "Aditya Dhir", "avatar_url": "https://avatars.githubusercontent.com/u/31381639?v=4", "profile": "https://github.com/adi44", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "ammarhusain", "name": "Ammar Husain", "avatar_url": "https://avatars.githubusercontent.com/u/4248914?v=4", "profile": "http://ammarhusain.github.io", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "miiiguel", "name": "miiiguel", "avatar_url": "https://avatars.githubusercontent.com/u/29905526?v=4", "profile": "https://github.com/miiiguel", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Uttam-Singhh", "name": "Uttam Singh", "avatar_url": "https://avatars.githubusercontent.com/u/63050765?v=4", "profile": "https://uttam-singhh.github.io/Portfolio/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "MysticRyuujin", "name": "Chase Wright", "avatar_url": "https://avatars.githubusercontent.com/u/8877131?v=4", "profile": "https://www.chasewright.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "TheBicPen", "name": "Bic", "avatar_url": "https://avatars.githubusercontent.com/u/23622288?v=4", "profile": "https://github.com/TheBicPen", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "lopeselio", "name": "devELIOper", "avatar_url": "https://avatars.githubusercontent.com/u/43913734?v=4", "profile": "https://develioper.vercel.app", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "vbarda", "name": "Vadym Barda", "avatar_url": "https://avatars.githubusercontent.com/u/19161700?v=4", "profile": "http://www.kensho.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "leo-cuellar", "name": "Leo Cuéllar", "avatar_url": "https://avatars.githubusercontent.com/u/52687532?v=4", "profile": "https://github.com/leo-cuellar", - "contributions": [ - "content", - "code", - "bug" - ] + "contributions": ["content", "code", "bug"] }, { "login": "pheeque", "name": "pheeque", "avatar_url": "https://avatars.githubusercontent.com/u/988061?v=4", "profile": "https://github.com/pheeque", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "jmusighi", "name": "Jeremy Musighi", "avatar_url": "https://avatars.githubusercontent.com/u/495607?v=4", "profile": "https://github.com/jmusighi", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "tbollinger", "name": "tbollinger", "avatar_url": "https://avatars.githubusercontent.com/u/10273688?v=4", "profile": "https://github.com/tbollinger", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "ryangrunest", "name": "Ryan Grunest", "avatar_url": "https://avatars.githubusercontent.com/u/37844814?v=4", "profile": "https://ryangrunest.com/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "aniket-spidey", "name": "Aniket Raj", "avatar_url": "https://avatars.githubusercontent.com/u/32848400?v=4", "profile": "http://aniketraj.me", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Ryeore", "name": "Kamil Zarzycki", "avatar_url": "https://avatars.githubusercontent.com/u/26347436?v=4", "profile": "http://linkedin.com/in/kamilzarzycki/", - "contributions": [ - "translation", - "content" - ] + "contributions": ["translation", "content"] }, { "login": "filipmartinsson", "name": "Filip Martinsson", "avatar_url": "https://avatars.githubusercontent.com/u/10158281?v=4", "profile": "https://www.stockholmblockchain.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "zeroservices", "name": "zeroservices", "avatar_url": "https://avatars.githubusercontent.com/u/78486441?v=4", "profile": "https://www.zeroservices.eu", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "lukassim", @@ -4049,8730 +3052,6615 @@ "name": "Luke Ingalls", "avatar_url": "https://avatars.githubusercontent.com/u/45518011?v=4", "profile": "http://lukeingalls.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "cstradtman", "name": "cstradtman", "avatar_url": "https://avatars.githubusercontent.com/u/17035843?v=4", "profile": "https://github.com/cstradtman", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "gsthina", "name": "G Surendar Thina", "avatar_url": "https://avatars.githubusercontent.com/u/8844334?v=4", "profile": "http://www.gsthina.me", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "scotato", "name": "Scott Dodge", "avatar_url": "https://avatars.githubusercontent.com/u/5290015?v=4", "profile": "https://github.com/scotato", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "arcz", "name": "Artur Cygan", "avatar_url": "https://avatars.githubusercontent.com/u/4679721?v=4", "profile": "https://arturcygan.com/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "rorychristianmurray", "name": "Rory", "avatar_url": "https://avatars.githubusercontent.com/u/21082125?v=4", "profile": "http://rorymurray.io", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "cnnrmnn", "name": "Connor Mann", "avatar_url": "https://avatars.githubusercontent.com/u/34930543?v=4", "profile": "https://github.com/cnnrmnn", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "ph4ni", "name": "Phanindra", "avatar_url": "https://avatars.githubusercontent.com/u/29685411?v=4", "profile": "https://ph4ni.github.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "kwsorensen", "name": "kwsorensen", "avatar_url": "https://avatars.githubusercontent.com/u/29787085?v=4", "profile": "https://github.com/kwsorensen", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "FuriKuri", "name": "Theo Pack", "avatar_url": "https://avatars.githubusercontent.com/u/1391889?v=4", "profile": "https://furikuri.net/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "kirati-su", "name": "kirati-su", "avatar_url": "https://avatars.githubusercontent.com/u/85088317?v=4", "profile": "https://github.com/kirati-su", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "mapachurro", "name": "oliver renwick", "avatar_url": "https://avatars.githubusercontent.com/u/7252642?v=4", "profile": "http://www.oliverrenwick.com", - "contributions": [ - "ideas", - "bug" - ] + "contributions": ["ideas", "bug"] }, { "login": "Patil2099", "name": "Pankaj Patil", "avatar_url": "https://avatars.githubusercontent.com/u/35653876?v=4", "profile": "https://pplife.home.blog", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "esale", "name": "esale", "avatar_url": "https://avatars.githubusercontent.com/u/36928404?v=4", "profile": "https://github.com/esale", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "RaynHarr", "name": "RaynHarr", "avatar_url": "https://avatars.githubusercontent.com/u/39592448?v=4", "profile": "https://github.com/RaynHarr", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "n4rsil", "name": "n4rsil", "avatar_url": "https://avatars.githubusercontent.com/u/85314714?v=4", "profile": "https://github.com/n4rsil", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jkbishbish", "name": "John Bishop", "avatar_url": "https://avatars.githubusercontent.com/u/40157941?v=4", "profile": "https://github.com/jkbishbish", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "robriks", "name": "robriks", "avatar_url": "https://avatars.githubusercontent.com/u/80549215?v=4", "profile": "https://github.com/robriks", - "contributions": [ - "bug", - "projectManagement", - "question", - "doc" - ] + "contributions": ["bug", "projectManagement", "question", "doc"] }, { "login": "NishantChandla", "name": "Nishant Chandla", "avatar_url": "https://avatars.githubusercontent.com/u/55653617?v=4", "profile": "https://github.com/NishantChandla", - "contributions": [ - "code", - "bug" - ] + "contributions": ["code", "bug"] }, { "login": "PaulApivat", "name": "@paulapivat", "avatar_url": "https://avatars.githubusercontent.com/u/4058461?v=4", "profile": "https://github.com/PaulApivat", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "graemeblackwood", "name": "Graeme Blackwood", "avatar_url": "https://avatars.githubusercontent.com/u/646863?v=4", "profile": "http://blackwood.london", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "il3ven", "name": "il3ven", "avatar_url": "https://avatars.githubusercontent.com/u/4337699?v=4", "profile": "https://github.com/il3ven", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "hbriese", "name": "Hayden Briese", "avatar_url": "https://avatars.githubusercontent.com/u/14974903?v=4", "profile": "https://github.com/hbriese", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "TrevorFrench", "name": "Trevor French", "avatar_url": "https://avatars.githubusercontent.com/u/42419234?v=4", "profile": "http://trevorfrench.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "asanso", "name": "Antonio Sanso", "avatar_url": "https://avatars.githubusercontent.com/u/494825?v=4", "profile": "https://blog.intothesymmetry.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "siddharths00", "name": "Siddharth S", "avatar_url": "https://avatars.githubusercontent.com/u/45630336?v=4", "profile": "https://github.com/siddharths00", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "jbgwu", "name": "jbgwu", "avatar_url": "https://avatars.githubusercontent.com/u/60628515?v=4", "profile": "https://github.com/jbgwu", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ethosdev", "name": "ethosdev", "avatar_url": "https://avatars.githubusercontent.com/u/79124435?v=4", "profile": "https://ethos.dev", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "jschiarizzi", "name": "Joseph Schiarizzi", "avatar_url": "https://avatars.githubusercontent.com/u/9449596?v=4", "profile": "http://josephschiarizzi.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Rodney-O-C-Melby", "name": "Rodney Olav C Melby", "avatar_url": "https://avatars.githubusercontent.com/u/16503898?v=4", "profile": "https://github.com/Rodney-O-C-Melby", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ksaitor", "name": "Raman", "avatar_url": "https://avatars.githubusercontent.com/u/936436?v=4", "profile": "https://cryptojobslist.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ruleking", "name": "Roeland Werring", "avatar_url": "https://avatars.githubusercontent.com/u/9334333?v=4", "profile": "https://attrace.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "kladkogex", "name": "Stan Kladko", "avatar_url": "https://avatars.githubusercontent.com/u/13399135?v=4", "profile": "https://github.com/skalenetwork", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "JaredFlomen", "name": "Jared Flomen", "avatar_url": "https://avatars.githubusercontent.com/u/58126876?v=4", "profile": "http://jaredflomen.ca", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "mannekin", "name": "Joseph Wallace", "avatar_url": "https://avatars.githubusercontent.com/u/38049812?v=4", "profile": "http://atimidblog.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "ahmedprusevic", "name": "Ahmed Prusevic", "avatar_url": "https://avatars.githubusercontent.com/u/24927091?v=4", "profile": "https://ahmed.prusevic.com/", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "mds1", "name": "Matt", "avatar_url": "https://avatars.githubusercontent.com/u/17163988?v=4", "profile": "https://mattsolomon.dev", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ytrezq", "name": "ytrezq", "avatar_url": "https://avatars.githubusercontent.com/u/3824869?v=4", "profile": "https://github.com/ytrezq", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ricky321u", "name": "Ricky", "avatar_url": "https://avatars.githubusercontent.com/u/17769771?v=4", "profile": "https://github.com/ricky321u", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "smudgil", "name": "smudgil", "avatar_url": "https://avatars.githubusercontent.com/u/38195323?v=4", "profile": "https://github.com/smudgil", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "cosinekitty", "name": "Don Cross", "avatar_url": "https://avatars.githubusercontent.com/u/11699954?v=4", "profile": "http://cosinekitty.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "jacksonet00", "name": "Jackson Taylor", "avatar_url": "https://avatars.githubusercontent.com/u/57923799?v=4", "profile": "http://jacksontaylor.info", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "MrBrain295", "name": "MrBrain295", "avatar_url": "https://avatars.githubusercontent.com/u/66077254?v=4", "profile": "https://github.com/MrBrain295", - "contributions": [ - "bug", - "doc", - "ideas", - "content" - ] + "contributions": ["bug", "doc", "ideas", "content"] }, { "login": "SafePalWallet", "name": "SafePalWallet", "avatar_url": "https://avatars.githubusercontent.com/u/52519650?v=4", "profile": "https://github.com/SafePalWallet", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "svaddadhi", "name": "Vishal Vaddadhi", - "avatar_url": "https://avatars.githubusercontent.com/u/29217475?v=4", - "profile": "https://svaddadhi.github.io/", - "contributions": [ - "content" - ] + "avatar_url": "https://avatars.githubusercontent.com/u/29217475?v=4", + "profile": "https://svaddadhi.github.io/", + "contributions": ["content"] }, { "login": "matthewrkula", "name": "Matt Kula", "avatar_url": "https://avatars.githubusercontent.com/u/1483546?v=4", "profile": "https://github.com/matthewrkula", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "Hamza-Shahzad", "name": "Hamza Shahzad", "avatar_url": "https://avatars.githubusercontent.com/u/13493539?v=4", "profile": "http://hamza.ai", - "contributions": [ - "code", - "bug" - ] + "contributions": ["code", "bug"] }, { "login": "MukulKolpe", "name": "Mukul Kolpe", "avatar_url": "https://avatars.githubusercontent.com/u/78664749?v=4", "profile": "https://github.com/MukulKolpe", - "contributions": [ - "code", - "bug", - "doc" - ] + "contributions": ["code", "bug", "doc"] }, { "login": "corwintines", "name": "Corwin Smith", "avatar_url": "https://avatars.githubusercontent.com/u/15589226?v=4", "profile": "http://corwintines.netlify.com", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "spiolat", "name": "spiolat", "avatar_url": "https://avatars.githubusercontent.com/u/89148238?v=4", "profile": "https://github.com/spiolat", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "hosyminh95", "name": "hosyminh95", "avatar_url": "https://avatars.githubusercontent.com/u/88025075?v=4", "profile": "https://github.com/hosyminh95", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "chiarawilden", "name": "Chiara Wilden", "avatar_url": "https://avatars.githubusercontent.com/u/77884268?v=4", "profile": "https://chiarawilden.com", - "contributions": [ - "ideas", - "doc" - ] + "contributions": ["ideas", "doc"] }, { "login": "DanhPTHTech", "name": "DanhPTHTech", "avatar_url": "https://avatars.githubusercontent.com/u/83639953?v=4", "profile": "https://github.com/DanhPTHTech", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "FitFingers", "name": "James Hooper", "avatar_url": "https://avatars.githubusercontent.com/u/44674550?v=4", "profile": "https://fitfingers.github.io/", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "hegrec", "name": "Christopher Hegre", "avatar_url": "https://avatars.githubusercontent.com/u/6075845?v=4", "profile": "http://www.hegrec.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "najeeb95", "name": "Najeeb Nabwani", "avatar_url": "https://avatars.githubusercontent.com/u/29060164?v=4", "profile": "https://github.com/najeeb95", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "schroeder-g", "name": "Alexander Goncalves", "avatar_url": "https://avatars.githubusercontent.com/u/66321261?v=4", "profile": "https://github.com/schroeder-g", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "gcasalett", "name": "Gabe Casalett", "avatar_url": "https://avatars.githubusercontent.com/u/5896438?v=4", "profile": "http://www.casalett.net", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "waynedyer12", "name": "waynedyer12", "avatar_url": "https://avatars.githubusercontent.com/u/89638901?v=4", "profile": "https://github.com/waynedyer12", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "tapstephenson", "name": "tap (pts.eth)", "avatar_url": "https://avatars.githubusercontent.com/u/10340540?v=4", "profile": "https://github.com/tapstephenson", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jamesmorgan", "name": "James Morgan", "avatar_url": "https://avatars.githubusercontent.com/u/110869?v=4", "profile": "https://medium.com/@james.morgan", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "sharon-wang", "name": "Sharon Wang", "avatar_url": "https://avatars.githubusercontent.com/u/25834218?v=4", "profile": "https://www.linkedin.com/in/sharon--wang/", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "enriavil1", "name": "Enrique Jose Avila Asapche", "avatar_url": "https://avatars.githubusercontent.com/u/19207637?v=4", "profile": "https://github.com/enriavil1", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "NotManyIdeasDev", "name": "Gianni Alessandroni", "avatar_url": "https://avatars.githubusercontent.com/u/45824238?v=4", "profile": "http://notmanyideasdev.github.io", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "raj-shekhar1", "name": "Raj Shekhar Bhardwaj", "avatar_url": "https://avatars.githubusercontent.com/u/55439064?v=4", "profile": "https://github.com/raj-shekhar1", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "joakimengerstam", "name": "joakimengerstam", "avatar_url": "https://avatars.githubusercontent.com/u/12713452?v=4", "profile": "https://github.com/joakimengerstam", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ndrozd", "name": "Nikita Drozd", "avatar_url": "https://avatars.githubusercontent.com/u/6696080?v=4", "profile": "https://github.com/ndrozd", - "contributions": [ - "bug", - "doc", - "a11y" - ] + "contributions": ["bug", "doc", "a11y"] }, { "login": "Scott1UP", "name": "Scott", "avatar_url": "https://avatars.githubusercontent.com/u/83584447?v=4", "profile": "http://scottcameron.uk", - "contributions": [ - "design", - "bug" - ] + "contributions": ["design", "bug"] }, { "login": "stefanrsathianathen", "name": "Stefan Sathianathen", "avatar_url": "https://avatars.githubusercontent.com/u/22087626?v=4", "profile": "http://stefanrs.me", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "mlehotsky13", "name": "Miroslav Lehotsky", "avatar_url": "https://avatars.githubusercontent.com/u/18735418?v=4", "profile": "https://miroslavlehotsky.eu/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "RemcoMi", "name": "Remco", "avatar_url": "https://avatars.githubusercontent.com/u/4744907?v=4", "profile": "https://github.com/RemcoMi", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "shailscript", "name": "Shailendra Shukla", "avatar_url": "https://avatars.githubusercontent.com/u/32084602?v=4", "profile": "https://shailendrashukla.com/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "skylarweaver", "name": "Skylar Weaver", "avatar_url": "https://avatars.githubusercontent.com/u/4008777?v=4", "profile": "http://ProjectAFA.org", - "contributions": [ - "doc", - "content" - ] + "contributions": ["doc", "content"] }, { "login": "agorismlabs", "name": "agorismlabs", "avatar_url": "https://avatars.githubusercontent.com/u/84196983?v=4", "profile": "https://github.com/agorismlabs", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "tanishqsh", "name": "Tanishq Sharma", "avatar_url": "https://avatars.githubusercontent.com/u/15674971?v=4", "profile": "https://tanishq.xyz", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "markstrefford", "name": "Mark Strefford", "avatar_url": "https://avatars.githubusercontent.com/u/1695274?v=4", "profile": "http://delirium.digital", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "akwodkiewicz", "name": "Andrzej Wódkiewicz", "avatar_url": "https://avatars.githubusercontent.com/u/22861194?v=4", "profile": "https://github.com/akwodkiewicz", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "hugomd", "name": "Hugo", "avatar_url": "https://avatars.githubusercontent.com/u/1646536?v=4", "profile": "http://hugo.md", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "lntel", "name": "Joseph Harris", "avatar_url": "https://avatars.githubusercontent.com/u/37447006?v=4", "profile": "https://github.com/lntel", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "rootqa", "name": "Ozgur", "avatar_url": "https://avatars.githubusercontent.com/u/375834?v=4", "profile": "https://o.zgur.org", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "adilanchian", "name": "Alec Dilanchian", "avatar_url": "https://avatars.githubusercontent.com/u/13204620?v=4", "profile": "https://github.com/adilanchian", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "horacio", "name": "Horacio Bertorello", "avatar_url": "https://avatars.githubusercontent.com/u/7662728?v=4", "profile": "http://horacio.eth", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "m4sterbunny", "name": "m4sterbunny", "avatar_url": "https://avatars.githubusercontent.com/u/20266893?v=4", "profile": "http://www.technobunnies.com", - "contributions": [ - "doc", - "maintenance", - "content" - ] + "contributions": ["doc", "maintenance", "content"] }, { "login": "yutingzhao1991", "name": "愚指导", "avatar_url": "https://avatars.githubusercontent.com/u/1061968?v=4", "profile": "https://yutingzhao1991.github.io/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "rayjasson98", "name": "Ray Jasson", "avatar_url": "https://avatars.githubusercontent.com/u/48130098?v=4", "profile": "https://github.com/rayjasson98", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "calvinsomething", "name": "Calvin Storoschuk", "avatar_url": "https://avatars.githubusercontent.com/u/73667022?v=4", "profile": "https://calvinsomething.com", - "contributions": [ - "bug", - "code" - ] + "contributions": ["bug", "code"] }, { "login": "Clashinm", "name": "Clashinm", "avatar_url": "https://avatars.githubusercontent.com/u/89336570?v=4", "profile": "https://github.com/Clashinm", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "james-prysm", "name": "james-prysm", "avatar_url": "https://avatars.githubusercontent.com/u/90280386?v=4", "profile": "https://github.com/james-prysm", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "wsbuck", "name": "William Buck", "avatar_url": "https://avatars.githubusercontent.com/u/22014035?v=4", "profile": "http://williambuck.dev", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "metalocal", "name": "metalocal", "avatar_url": "https://avatars.githubusercontent.com/u/82745711?v=4", "profile": "https://github.com/metalocal", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "himanshu3w", "name": "Himanshu Singh", "avatar_url": "https://avatars.githubusercontent.com/u/63382395?v=4", "profile": "https://github.com/himanshu3w", - "contributions": [ - "bug", - "doc", - "ideas" - ] + "contributions": ["bug", "doc", "ideas"] }, { "login": "abcoathup", "name": "Andrew B Coathup", "avatar_url": "https://avatars.githubusercontent.com/u/28278242?v=4", "profile": "https://github.com/abcoathup", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "andyGallagher", "name": "Andrew Gallagher", "avatar_url": "https://avatars.githubusercontent.com/u/43940590?v=4", "profile": "https://www.andrewgallagher-portfolio.com/", - "contributions": [ - "content", - "code" - ] + "contributions": ["content", "code"] }, { "login": "phatngluu", "name": "Phat Nguyen Luu", "avatar_url": "https://avatars.githubusercontent.com/u/44693107?v=4", "profile": "https://github.com/phatngluu", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Andrew-Sofos", "name": "Andreas Sofos", "avatar_url": "https://avatars.githubusercontent.com/u/56540744?v=4", "profile": "https://github.com/Andrew-Sofos", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "fselmo", "name": "Felipe Selmo", "avatar_url": "https://avatars.githubusercontent.com/u/3532824?v=4", "profile": "https://github.com/fselmo", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "bingwei-infstones", "name": "Bingwei Qin", "avatar_url": "https://avatars.githubusercontent.com/u/64890979?v=4", "profile": "https://github.com/bingwei-infstones", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "miohtama", "name": "Mikko Ohtamaa", "avatar_url": "https://avatars.githubusercontent.com/u/49922?v=4", "profile": "https://capitalgram.com", - "contributions": [ - "ideas", - "doc" - ] + "contributions": ["ideas", "doc"] }, { "login": "iamkabilan", "name": "Kabilan", "avatar_url": "https://avatars.githubusercontent.com/u/38951107?v=4", "profile": "http://iamkabilan.github.io", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "colinsteidtmann", "name": "Colin Steidtmann", "avatar_url": "https://avatars.githubusercontent.com/u/34821973?v=4", "profile": "https://colinsteidtmann.com/", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "SNikhill", "name": "SNikhill", "avatar_url": "https://avatars.githubusercontent.com/u/51415616?v=4", "profile": "https://snikhill.tech", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "SlashHash", "name": "SlashHash", "avatar_url": "https://avatars.githubusercontent.com/u/83152561?v=4", "profile": "https://www.youtube.com/channel/UCJJWZ6IKi_hxSsh-upLAH-g", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "harshmathurx", "name": "Harsh Mathur", "avatar_url": "https://avatars.githubusercontent.com/u/58532371?v=4", "profile": "https://harshmathurx.github.io/website/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "pranavvdesai", "name": "pranav desai", "avatar_url": "https://avatars.githubusercontent.com/u/74852751?v=4", "profile": "https://github.com/pranavvdesai", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Hathoriel", "name": "Lukáš Kotol", "avatar_url": "https://avatars.githubusercontent.com/u/10884869?v=4", "profile": "http://tatum.io/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "drumnickydrum", "name": "Nick Carbone", "avatar_url": "https://avatars.githubusercontent.com/u/25669830?v=4", "profile": "http://instagram.com/drumnickydrum", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Ashwin-exe", "name": "Ashwin Nair", "avatar_url": "https://avatars.githubusercontent.com/u/58840757?v=4", "profile": "https://github.com/Ashwin-exe", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "julian-st", "name": "Julian Ste", "avatar_url": "https://avatars.githubusercontent.com/u/31321934?v=4", "profile": "https://github.com/julian-st", - "contributions": [ - "code", - "doc", - "content" - ] + "contributions": ["code", "doc", "content"] }, { "login": "0xpranay", "name": "Pranay Reddy", "avatar_url": "https://avatars.githubusercontent.com/u/48883700?v=4", "profile": "https://github.com/0xpranay", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Sednaoui", "name": "marc", "avatar_url": "https://avatars.githubusercontent.com/u/7014833?v=4", "profile": "https://github.com/Sednaoui", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "mbaragiola", "name": "Mariano Baragiola", "avatar_url": "https://avatars.githubusercontent.com/u/3682895?v=4", "profile": "https://github.com/mbaragiola", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "under3415", "name": "under3415", "avatar_url": "https://avatars.githubusercontent.com/u/3857822?v=4", "profile": "https://github.com/under3415", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "GaurKS", "name": "Gaurav Kumar Shah", "avatar_url": "https://avatars.githubusercontent.com/u/75743822?v=4", "profile": "https://github.com/GaurKS", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "princeelector", "name": "Hubert Sikorski", "avatar_url": "https://avatars.githubusercontent.com/u/46070006?v=4", "profile": "http://hubertsikorski.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "coreyar", "name": "Corey Rice", "avatar_url": "https://avatars.githubusercontent.com/u/7258308?v=4", "profile": "https://github.com/coreyar", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ezenwankwogabriel", "name": "Ezenwankwo Gabriel", "avatar_url": "https://avatars.githubusercontent.com/u/32826083?v=4", "profile": "https://github.com/ezenwankwogabriel", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "TomLisankie", "name": "Thomas Lisankie", "avatar_url": "https://avatars.githubusercontent.com/u/92654?v=4", "profile": "https://tomlisankie.com", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "TylerIlunga", "name": "Tyler Ilunga", "avatar_url": "https://avatars.githubusercontent.com/u/11746486?v=4", "profile": "https://www.linkedin.com/in/tylerilunga/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "kocvrek", "name": "Kasia Kosturek", "avatar_url": "https://avatars.githubusercontent.com/u/36547835?v=4", "profile": "http://linkedin.com/in/katarzynakosturek/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "solarpunklabs", "name": "solarpunklabs", "avatar_url": "https://avatars.githubusercontent.com/u/84196983?v=4", "profile": "https://github.com/solarpunklabs", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "aakhtar3", "name": "aakhtar3", "avatar_url": "https://avatars.githubusercontent.com/u/16447834?v=4", "profile": "https://ayyazakhtar.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "shryasss", "name": "Shreyas Londhe", "avatar_url": "https://avatars.githubusercontent.com/u/62744899?v=4", "profile": "https://github.com/shryasss", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "timbeccue", "name": "Tim Beccue", "avatar_url": "https://avatars.githubusercontent.com/u/35314207?v=4", "profile": "https://github.com/timbeccue", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "robertjosephwayne", "name": "Robert Joseph Wayne", "avatar_url": "https://avatars.githubusercontent.com/u/22128622?v=4", "profile": "http://www.robertjosephwayne.com", - "contributions": [ - "doc", - "content" - ] + "contributions": ["doc", "content"] }, { "login": "pdesmondflynn", "name": "pdesmondflynn", "avatar_url": "https://avatars.githubusercontent.com/u/93043668?v=4", "profile": "https://github.com/pdesmondflynn", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "danidamiobi", "name": "Daniel Damilola Obiokeke", "avatar_url": "https://avatars.githubusercontent.com/u/18666499?v=4", "profile": "https://meta.wikimedia.org/wiki/User:Danidamiobi", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "empeje", "name": "mpj", "avatar_url": "https://avatars.githubusercontent.com/u/11813607?v=4", "profile": "https://mpj.io", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "hungdoansy", "name": "Hung Doan", "avatar_url": "https://avatars.githubusercontent.com/u/19758667?v=4", "profile": "https://github.com/hungdoansy", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "pwilczynskiclearcode", "name": "Paweł Wilczyński", "avatar_url": "https://avatars.githubusercontent.com/u/3940860?v=4", "profile": "https://github.com/pwilczynskiclearcode", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "joaoMpf", "name": "joaoMpf", "avatar_url": "https://avatars.githubusercontent.com/u/56357437?v=4", "profile": "https://github.com/joaoMpf", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "bskrksyp9", "name": "Bhaskar Kashyap", "avatar_url": "https://avatars.githubusercontent.com/u/31563474?v=4", "profile": "https://github.com/bskrksyp9", - "contributions": [ - "doc", - "content" - ] + "contributions": ["doc", "content"] }, { "login": "bleesherman", "name": "bleesherman", "avatar_url": "https://avatars.githubusercontent.com/u/82793845?v=4", "profile": "https://github.com/bleesherman", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "bertmiller", "name": "Robert Miller", "avatar_url": "https://avatars.githubusercontent.com/u/30010302?v=4", "profile": "https://www.linkedin.com/in/bertcmiller/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "hacklschorsch", "name": "Florian Sesser", "avatar_url": "https://avatars.githubusercontent.com/u/454605?v=4", "profile": "https://florian.sesser.at/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "xianxiongwang", "name": "xianxiongwang", "avatar_url": "https://avatars.githubusercontent.com/u/30892152?v=4", "profile": "https://github.com/xianxiongwang", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "sshirokov", "name": "Slava Shirokov", "avatar_url": "https://avatars.githubusercontent.com/u/40149?v=4", "profile": "https://github.com/sshirokov", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "BenOfTheBlockchain", "name": "BenOfTheBlockchain", "avatar_url": "https://avatars.githubusercontent.com/u/93357542?v=4", "profile": "https://linktr.ee/cryptocribsnft", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "0xngmi", "name": "0xngmi", "avatar_url": "https://avatars.githubusercontent.com/u/80541789?v=4", "profile": "https://github.com/0xngmi", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "phyBrackets", "name": "Shivam Rajput", "avatar_url": "https://avatars.githubusercontent.com/u/75530356?v=4", "profile": "https://github.com/phyBrackets", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "erhuve", "name": "Raymond", "avatar_url": "https://avatars.githubusercontent.com/u/59463268?v=4", "profile": "https://github.com/erhuve", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "justincjohnson", "name": "Justin Johnson", "avatar_url": "https://avatars.githubusercontent.com/u/25121264?v=4", "profile": "https://github.com/justincjohnson", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "sakshamgurbhele", "name": "SA KSH AM ", "avatar_url": "https://avatars.githubusercontent.com/u/64558515?v=4", "profile": "https://bio.link/saksham", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "RedWolf4845", "name": "Samrat", "avatar_url": "https://avatars.githubusercontent.com/u/93679609?v=4", "profile": "https://github.com/RedWolf4845", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "notjustinshaw", "name": "Justin Shaw", "avatar_url": "https://avatars.githubusercontent.com/u/46334750?v=4", "profile": "http://justinshaw.eth", - "contributions": [ - "content", - "code", - "doc", - "ideas" - ] + "contributions": ["content", "code", "doc", "ideas"] }, { "login": "meoww-bot", "name": "meoww-bot", "avatar_url": "https://avatars.githubusercontent.com/u/14239840?v=4", "profile": "https://meow.page", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "GhostWalker562", "name": "Philip Vu", "avatar_url": "https://avatars.githubusercontent.com/u/43276017?v=4", "profile": "http://moonsdontburn.design", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "connerj70", "name": "Conner Jensen", "avatar_url": "https://avatars.githubusercontent.com/u/29151695?v=4", "profile": "http://connerjensen.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "jhaymesdev", "name": "Jhaymes", "avatar_url": "https://avatars.githubusercontent.com/u/69610160?v=4", "profile": "https://jhaymesdev.web.app/", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "selfagency", "name": "daniel sieradski", "avatar_url": "https://avatars.githubusercontent.com/u/2541728?v=4", "profile": "https://self.agency", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "bgillcode", "name": "bgillcode", "avatar_url": "https://avatars.githubusercontent.com/u/35796630?v=4", "profile": "https://github.com/bgillcode", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "cameronfink", "name": "Cameron Fink", "avatar_url": "https://avatars.githubusercontent.com/u/61752416?v=4", "profile": "http://plutum.org", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "0xvenom", "name": "Venom", "avatar_url": "https://avatars.githubusercontent.com/u/94072825?v=4", "profile": "https://github.com/0xvenom", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "JulienMaurice", "name": "JulienM", "avatar_url": "https://avatars.githubusercontent.com/u/68739585?v=4", "profile": "https://github.com/JulienMaurice", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Synesso", "name": "Jem Mawson", "avatar_url": "https://avatars.githubusercontent.com/u/21859?v=4", "profile": "https://github.com/Synesso", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "MislavJuric", "name": "Mislav", "avatar_url": "https://avatars.githubusercontent.com/u/14131045?v=4", "profile": "http://www.mislavjuric.com/", - "contributions": [ - "code", - "doc" - ] + "contributions": ["code", "doc"] }, { "login": "polluterofminds", "name": "Justin Hunter", "avatar_url": "https://avatars.githubusercontent.com/u/10519834?v=4", "profile": "https://polluterofminds.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "entonbiba", "name": "Enton Biba", "avatar_url": "https://avatars.githubusercontent.com/u/5193884?v=4", "profile": "http://www.entonbiba.com/", - "contributions": [ - "a11y" - ] + "contributions": ["a11y"] }, { "login": "byoriolserra", "name": "Oriol Serra", "avatar_url": "https://avatars.githubusercontent.com/u/87442357?v=4", "profile": "https://github.com/byoriolserra", - "contributions": [ - "bug", - "ideas" - ] + "contributions": ["bug", "ideas"] }, { "login": "nlarche", "name": "Nicolas LARCHE", "avatar_url": "https://avatars.githubusercontent.com/u/3041222?v=4", "profile": "https://github.com/nlarche", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "tbenson89", "name": "A. Tyler Benson", "avatar_url": "https://avatars.githubusercontent.com/u/25698188?v=4", "profile": "http://slmodd.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "zhous", "name": "Derek周朝晖", "avatar_url": "https://avatars.githubusercontent.com/u/1388904?v=4", "profile": "http://www.NaturalDAO.io", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "dschenkelman", "name": "Damian Schenkelman", "avatar_url": "https://avatars.githubusercontent.com/u/3376731?v=4", "profile": "http://yenkel.dev", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "heeckhau", "name": "Hendrik Eeckhaut", "avatar_url": "https://avatars.githubusercontent.com/u/735288?v=4", "profile": "http://www.sigasi.com", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "womensrights", "name": "Susannah Evans", "avatar_url": "https://avatars.githubusercontent.com/u/65018876?v=4", "profile": "https://github.com/womensrights", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "eulerbeat", "name": "Minimalist Optimalist", "avatar_url": "https://avatars.githubusercontent.com/u/52531715?v=4", "profile": "https://github.com/eulerbeat", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "vluna", "name": "vluna", "avatar_url": "https://avatars.githubusercontent.com/u/8848639?v=4", "profile": "https://vluna.github.io/portfolio/", - "contributions": [ - "code", - "bug", - "content" - ] + "contributions": ["code", "bug", "content"] }, { "login": "arghyab0", "name": "Arghya Biswas", "avatar_url": "https://avatars.githubusercontent.com/u/43907522?v=4", "profile": "https://arghyabiswas.me", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "abhi-go", "name": "abhi-go", "avatar_url": "https://avatars.githubusercontent.com/u/86805484?v=4", "profile": "https://github.com/abhi-go", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "fvictorio", "name": "Franco Victorio", "avatar_url": "https://avatars.githubusercontent.com/u/417134?v=4", "profile": "https://github.com/fvictorio", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "joneskj55", "name": "Kevin Jones", "avatar_url": "https://avatars.githubusercontent.com/u/20748598?v=4", "profile": "https://kevinjones.engineer", - "contributions": [ - "code", - "bug", - "content" - ] + "contributions": ["code", "bug", "content"] }, { "login": "ShubhankarKG", "name": "Shubhankar Kanchan Gupta", "avatar_url": "https://avatars.githubusercontent.com/u/50791000?v=4", "profile": "https://github.com/ShubhankarKG", - "contributions": [ - "bug", - "code" - ] + "contributions": ["bug", "code"] }, { "login": "vishvanathan-k", "name": "Vishvanathan K", "avatar_url": "https://avatars.githubusercontent.com/u/66466541?v=4", "profile": "https://github.com/vishvanathan-k", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "agryaznov", "name": "Alexander Gryaznov", "avatar_url": "https://avatars.githubusercontent.com/u/3878903?v=4", "profile": "http://agryaznov.com", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "pettinarip", "name": "Pablo Pettinari", "avatar_url": "https://avatars.githubusercontent.com/u/468158?v=4", "profile": "https://pettinarip.github.io/", - "contributions": [ - "doc", - "a11y" - ] + "contributions": ["doc", "a11y"] }, { "login": "Celetra", "name": "Celetra", "avatar_url": "https://avatars.githubusercontent.com/u/65692335?v=4", "profile": "http://celetralabs.com", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "sharadseth", "name": "sharadseth", "avatar_url": "https://avatars.githubusercontent.com/u/14011221?v=4", "profile": "https://github.com/sharadseth", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "mariahpickett", "name": "Mariah", "avatar_url": "https://avatars.githubusercontent.com/u/74935737?v=4", "profile": "https://github.com/mariahpickett", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ascrookes", "name": "Amadou Crookes", "avatar_url": "https://avatars.githubusercontent.com/u/1642035?v=4", "profile": "https://github.com/ascrookes", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "nwoodr94", "name": "Nathan Woodruff", "avatar_url": "https://avatars.githubusercontent.com/u/46133948?v=4", "profile": "http://nathanwoodruff.dev", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "AndreyAzimov", "name": "Andrey Azimov", "avatar_url": "https://avatars.githubusercontent.com/u/5325909?v=4", "profile": "https://web3.career", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ddocs", "name": "Anita Diamond", "avatar_url": "https://avatars.githubusercontent.com/u/38940580?v=4", "profile": "https://ddocs.co.uk", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ismaventuras", "name": "ismaventuras", "avatar_url": "https://avatars.githubusercontent.com/u/24738382?v=4", "profile": "https://github.com/ismaventuras", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "jhonnyvianello", "name": "Jhonny", "avatar_url": "https://avatars.githubusercontent.com/u/62344609?v=4", "profile": "https://www.instagram.com/jhonnyvianello", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "MatthieuScarset", "name": "Matthieu SCARSET", "avatar_url": "https://avatars.githubusercontent.com/u/7369593?v=4", "profile": "https://matthieuscarset.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "luozhanxin", "name": "zhanxin", "avatar_url": "https://avatars.githubusercontent.com/u/16456918?v=4", "profile": "http://blog.luoxinxin.com.cn", - "contributions": [ - "translation", - "doc" - ] + "contributions": ["translation", "doc"] }, { "login": "geoffhull03", "name": "Geoff Hull", "avatar_url": "https://avatars.githubusercontent.com/u/24528980?v=4", "profile": "https://github.com/geoffhull03", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "aburk3", "name": "Austin Burke", "avatar_url": "https://avatars.githubusercontent.com/u/24820716?v=4", "profile": "https://austinburke.dev", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "rich1n", "name": "Richard Rodrigues", "avatar_url": "https://avatars.githubusercontent.com/u/66102911?v=4", "profile": "http://rich1n.com", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "samnang", "name": "Samnang Chhun", "avatar_url": "https://avatars.githubusercontent.com/u/131172?v=4", "profile": "https://github.com/samnang", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "m-t-a97", "name": "Tanvir Ahmed", "avatar_url": "https://avatars.githubusercontent.com/u/54685928?v=4", "profile": "http://m-t-ahmed.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "JorisZierold", "name": "Joris Zierold", "avatar_url": "https://avatars.githubusercontent.com/u/13258954?v=4", "profile": "https://github.com/JorisZierold", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "selfwithin", "name": "selfwithin", "avatar_url": "https://avatars.githubusercontent.com/u/94748148?v=4", "profile": "https://github.com/selfwithin", - "contributions": [ - "ideas", - "doc" - ] + "contributions": ["ideas", "doc"] }, { "login": "jnathnjshua", "name": "Jonathan Joshua", "avatar_url": "https://avatars.githubusercontent.com/u/46720446?v=4", "profile": "https://github.com/jnathnjshua", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "patcito", "name": "Patrick Aljord", "avatar_url": "https://avatars.githubusercontent.com/u/26435?v=4", "profile": "https://twitter.com/patcito", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "decipherer2", "name": "decifer", "avatar_url": "https://avatars.githubusercontent.com/u/16278986?v=4", "profile": "https://github.com/decipherer2", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "aghArdeshir", "name": "aghArdeshir", "avatar_url": "https://avatars.githubusercontent.com/u/5755214?v=4", "profile": "https://github.com/aghArdeshir", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "MiConnell", "name": "Michael Connell", "avatar_url": "https://avatars.githubusercontent.com/u/14168559?v=4", "profile": "https://github.com/MiConnell", - "contributions": [ - "content", - "code", - "bug" - ] + "contributions": ["content", "code", "bug"] }, { "login": "amm98d", "name": "Ahmed Mustafa Malik", "avatar_url": "https://avatars.githubusercontent.com/u/39633205?v=4", "profile": "https://github.com/amm98d", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "gamalielhere", "name": "Gamaliel 'Yel' Padillo", "avatar_url": "https://avatars.githubusercontent.com/u/16236741?v=4", "profile": "https://www.gamalielpadillo.com/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "kum9748ar", "name": "Kumar Kalyan", "avatar_url": "https://avatars.githubusercontent.com/u/67071462?v=4", "profile": "https://linktr.ee/kumarkalyan", - "contributions": [ - "bug", - "doc", - "code", - "a11y" - ] + "contributions": ["bug", "doc", "code", "a11y"] }, { "login": "0xdie", "name": "0xdie", "avatar_url": "https://avatars.githubusercontent.com/u/94481845?v=4", "profile": "https://github.com/0xdie", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Taimoor0217", "name": "Taimoor Ali", "avatar_url": "https://avatars.githubusercontent.com/u/48244930?v=4", "profile": "https://github.com/Taimoor0217", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "andrejrakic", "name": "Andrej", "avatar_url": "https://avatars.githubusercontent.com/u/37881789?v=4", "profile": "https://www.linkedin.com/in/andrejrakic/", - "contributions": [ - "doc", - "content" - ] + "contributions": ["doc", "content"] }, { "login": "pcaversaccio", "name": "Pascal Marco Caversaccio", "avatar_url": "https://avatars.githubusercontent.com/u/25297591?v=4", "profile": "http://www.daita.tech", - "contributions": [ - "doc", - "content" - ] + "contributions": ["doc", "content"] }, { "login": "kennethcassel", "name": "kennethcassel", "avatar_url": "https://avatars.githubusercontent.com/u/22961671?v=4", "profile": "https://www.slip.so", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "BrysonXiao", "name": "BrysonXiao", "avatar_url": "https://avatars.githubusercontent.com/u/40129652?v=4", "profile": "https://github.com/BrysonXiao", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "cdomashn", "name": "Discord #8528", "avatar_url": "https://avatars.githubusercontent.com/u/58366873?v=4", "profile": "https://github.com/cdomashn", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "nedrocks", "name": "Ned Rockson", "avatar_url": "https://avatars.githubusercontent.com/u/537592?v=4", "profile": "http://www.nedrockson.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "tommtt", "name": "Tommaso Tosi", "avatar_url": "https://avatars.githubusercontent.com/u/71329765?v=4", "profile": "https://github.com/tommtt", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "kamilsadik", "name": "Kamil", "avatar_url": "https://avatars.githubusercontent.com/u/75034988?v=4", "profile": "http://kamilsadik.xyz", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "Periyot", "name": "Mert", "avatar_url": "https://avatars.githubusercontent.com/u/88425310?v=4", "profile": "http://www.mert.click", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "Naman-Bhalla", "name": "Naman Bhalla", "avatar_url": "https://avatars.githubusercontent.com/u/6305474?v=4", "profile": "https://www.linkedin.com/in/namanbhalla/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "A2be", "name": "Kirk", "avatar_url": "https://avatars.githubusercontent.com/u/19943243?v=4", "profile": "https://github.com/A2be", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "juliangeissler", "name": "juliangeissler", "avatar_url": "https://avatars.githubusercontent.com/u/81534590?v=4", "profile": "https://github.com/juliangeissler", - "contributions": [ - "doc", - "bug", - "code" - ] + "contributions": ["doc", "bug", "code"] }, { "login": "garricn", "name": "Garric G. Nahapetian", "avatar_url": "https://avatars.githubusercontent.com/u/13260696?v=4", "profile": "https://github.com/garricn", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "fishmandev", "name": "Dmitriy Fishman", "avatar_url": "https://avatars.githubusercontent.com/u/29619660?v=4", "profile": "https://github.com/fishmandev", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "neozapatista", "name": "neozapatista", "avatar_url": "https://avatars.githubusercontent.com/u/44417247?v=4", "profile": "https://github.com/neozapatista", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Factral", "name": "Factral", "avatar_url": "https://avatars.githubusercontent.com/u/74687828?v=4", "profile": "http://factral.github.io/", - "contributions": [ - "translation", - "doc", - "bug", - "code" - ] + "contributions": ["translation", "doc", "bug", "code"] }, { "login": "elshigori", "name": "elshigori", "avatar_url": "https://avatars.githubusercontent.com/u/96995185?v=4", "profile": "https://github.com/elshigori", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "HuangRongcun", "name": "EarthMan", "avatar_url": "https://avatars.githubusercontent.com/u/1501342?v=4", "profile": "https://github.com/HuangRongcun", - "contributions": [ - "translation", - "doc" - ] + "contributions": ["translation", "doc"] }, { "login": "mohan-chinnappan-n", "name": "mohan-chinnappan-n", "avatar_url": "https://avatars.githubusercontent.com/u/5963194?v=4", "profile": "https://mohan-chinnappan-n.github.io/about/cv.html", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "Gobljn", "name": "Nicola Bonsi", "avatar_url": "https://avatars.githubusercontent.com/u/44135563?v=4", "profile": "https://github.com/Gobljn", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "yelnady", "name": "Yusuf Elnady", "avatar_url": "https://avatars.githubusercontent.com/u/45317481?v=4", "profile": "https://www.linkedin.com/in/yelnady/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "aryankeluskar", "name": "Aryan Keluskar", "avatar_url": "https://avatars.githubusercontent.com/u/80093392?v=4", "profile": "https://github.com/aryankeluskar", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "LingTian", "name": "Ling", "avatar_url": "https://avatars.githubusercontent.com/u/4249432?v=4", "profile": "https://github.com/LingTian", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sorenrood", "name": "Søren Rood", "avatar_url": "https://avatars.githubusercontent.com/u/49735495?v=4", "profile": "http://5oren.com", - "contributions": [ - "code", - "doc", - "ideas" - ] + "contributions": ["code", "doc", "ideas"] }, { "login": "braindead2408", "name": "Tanmay Nagepatil", "avatar_url": "https://avatars.githubusercontent.com/u/69108887?v=4", "profile": "http://minimalistblogger.space", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "B-Harden", "name": "Brandon Harden", "avatar_url": "https://avatars.githubusercontent.com/u/20617335?v=4", "profile": "https://b-harden.github.io/Portfolio/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "snigdha920", "name": "Snigdha Singh", "avatar_url": "https://avatars.githubusercontent.com/u/62167899?v=4", "profile": "https://snigdha920.github.io/formal-personal-site/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "stefan-wuest", "name": "SW", "avatar_url": "https://avatars.githubusercontent.com/u/20667579?v=4", "profile": "https://github.com/stefan-wuest", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "aaronisme", "name": "Aaron Chen", "avatar_url": "https://avatars.githubusercontent.com/u/7855886?v=4", "profile": "https://aaronisme.github.io", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "Qazalin", "name": "Qazal Samani", "avatar_url": "https://avatars.githubusercontent.com/u/77887910?v=4", "profile": "https://portfolio-qazalin.vercel.app/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "YashKarthik", "name": "yash", "avatar_url": "https://avatars.githubusercontent.com/u/52369876?v=4", "profile": "https://www.yashkarthik.xyz/", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "ibeale", "name": "Isaac Beale", "avatar_url": "https://avatars.githubusercontent.com/u/46497763?v=4", "profile": "https://github.com/ibeale", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "chrishna1", "name": "Bal Krishna Jha", "avatar_url": "https://avatars.githubusercontent.com/u/26048398?v=4", "profile": "https://github.com/chrishna1", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "maciejrrr", "name": "maciejrrr", "avatar_url": "https://avatars.githubusercontent.com/u/6785984?v=4", "profile": "http://www.linkedin.com/in/maciejrrr", - "contributions": [ - "code", - "bug" - ] + "contributions": ["code", "bug"] }, { "login": "mmilenkovic", "name": "mmilenkovic", "avatar_url": "https://avatars.githubusercontent.com/u/2448210?v=4", "profile": "https://github.com/mmilenkovic", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "guevaraf", "name": "Fernando Guevara", "avatar_url": "https://avatars.githubusercontent.com/u/2633129?v=4", "profile": "https://github.com/guevaraf", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "garrivjo", "name": "Jose Manuel Garcia Rivas", "avatar_url": "https://avatars.githubusercontent.com/u/31991694?v=4", "profile": "https://github.com/garrivjo", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "PolySages", "name": "PolySages", "avatar_url": "https://avatars.githubusercontent.com/u/98001681?v=4", "profile": "https://github.com/PolySages", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "zainabb12345", "name": "Zainab Hasan", "avatar_url": "https://avatars.githubusercontent.com/u/59745525?v=4", - "profile": "https://github.com/zainabb12345", - "contributions": [ - "doc", - "ideas" - ] + "profile": "https://github.com/zainabb12345", + "contributions": ["doc", "ideas"] }, { "login": "mdedeu", "name": "Marcos Dedeu", "avatar_url": "https://avatars.githubusercontent.com/u/62359173?v=4", "profile": "https://github.com/mdedeu", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "SunitRoy2703", "name": "Sunit Roy", "avatar_url": "https://avatars.githubusercontent.com/u/67560900?v=4", "profile": "https://bit.ly/SunitRoyYT", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "astutejoe", "name": "Gabriel Garcia", "avatar_url": "https://avatars.githubusercontent.com/u/15985195?v=4", "profile": "https://www.facebook.com/gabriel.antunes.garcia/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "tiagoyonamine", "name": "Tiago Yonamine", "avatar_url": "https://avatars.githubusercontent.com/u/6979032?v=4", "profile": "https://tiagoyonamine.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Ej1seven", "name": "Erik Hunter", "avatar_url": "https://avatars.githubusercontent.com/u/12377787?v=4", "profile": "http://ww.erikhunter.dev", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "lingzhong", "name": "lingzhong", "avatar_url": "https://avatars.githubusercontent.com/u/4011137?v=4", "profile": "https://www.linkedin.com/in/lingzhong-eth/", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "yashkamalchaturvedi", "name": "Yash Kamal Chaturvedi", "avatar_url": "https://avatars.githubusercontent.com/u/69413160?v=4", "profile": "https://github.com/yashkamalchaturvedi", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "EtherWorldCo", "name": "EtherWorld", "avatar_url": "https://avatars.githubusercontent.com/u/97191248?v=4", "profile": "https://github.com/EtherWorldCo", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Ignjatovic", "name": "Stefan Ignjatović", "avatar_url": "https://avatars.githubusercontent.com/u/2846306?v=4", "profile": "http://tenderly.co", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ihebu", "name": "Iheb Haboubi", "avatar_url": "https://avatars.githubusercontent.com/u/47149194?v=4", "profile": "https://github.com/ihebu", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "HursitTarcan", "name": "Hursit Tarcan", "avatar_url": "https://avatars.githubusercontent.com/u/75273616?v=4", "profile": "https://github.com/HursitTarcan", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "pabloped", "name": "pabloped", "avatar_url": "https://avatars.githubusercontent.com/u/65499117?v=4", "profile": "https://github.com/pabloped", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "ilkererkek", "name": "ilkererkek", "avatar_url": "https://avatars.githubusercontent.com/u/69644608?v=4", "profile": "https://github.com/ilkererkek", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Filoppi", "name": "Filippo Tarpini", "avatar_url": "https://avatars.githubusercontent.com/u/7011366?v=4", "profile": "https://github.com/Filoppi", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "saif-11bit", "name": "saif-11bit", "avatar_url": "https://avatars.githubusercontent.com/u/56977968?v=4", "profile": "https://github.com/saif-11bit", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Shpota", "name": "Sasha Shpota", "avatar_url": "https://avatars.githubusercontent.com/u/5640984?v=4", "profile": "http://shpota.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ErikBjare", "name": "Erik Bjäreholt", "avatar_url": "https://avatars.githubusercontent.com/u/1405370?v=4", "profile": "https://erik.bjareholt.com", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "tomasbanik", "name": "tomasbanik", "avatar_url": "https://avatars.githubusercontent.com/u/12295965?v=4", "profile": "https://github.com/tomasbanik", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "adi611", "name": "Aditya Agarwal", "avatar_url": "https://avatars.githubusercontent.com/u/50960175?v=4", "profile": "https://adityaagarwal.bio.link/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "gsans", "name": "Gerard Sans", "avatar_url": "https://avatars.githubusercontent.com/u/4660316?v=4", "profile": "https://medium.com/@gerard.sans", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "chuyeow", "name": "Cheah Chu Yeow", "avatar_url": "https://avatars.githubusercontent.com/u/213?v=4", "profile": "http://blog.codefront.net/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "nomadbitcoin", "name": "Yan Luiz", "avatar_url": "https://avatars.githubusercontent.com/u/39248465?v=4", "profile": "https://www.linkedin.com/in/yanluiz/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "chabroA", "name": "Alexandre Chabrolin", "avatar_url": "https://avatars.githubusercontent.com/u/9203826?v=4", "profile": "https://github.com/chabroA", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Sergey1997", "name": "Sergey Danilovich", "avatar_url": "https://avatars.githubusercontent.com/u/22988415?v=4", "profile": "https://github.com/Sergey1997", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "chelorope", "name": "Marcelo Rodriguez", "avatar_url": "https://avatars.githubusercontent.com/u/6799516?v=4", "profile": "https://github.com/chelorope", - "contributions": [ - "content", - "code" - ] + "contributions": ["content", "code"] }, { "login": "parkedtruck", "name": "Anna", "avatar_url": "https://avatars.githubusercontent.com/u/90351322?v=4", "profile": "https://github.com/parkedtruck", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jtraglia", "name": "Justin Traglia", "avatar_url": "https://avatars.githubusercontent.com/u/95511699?v=4", "profile": "https://github.com/jtraglia", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "mateusnds", "name": "bitmateus", "avatar_url": "https://avatars.githubusercontent.com/u/895529?v=4", "profile": "https://livecoins.com.br", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "carboni-rob", "name": "Roberto Carboni", "avatar_url": "https://avatars.githubusercontent.com/u/25662777?v=4", "profile": "https://github.com/carboni-rob", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "kelcheone", "name": "KΞVIN KΞlchΞ⟠", "avatar_url": "https://avatars.githubusercontent.com/u/80192475?v=4", "profile": "https://github.com/kelcheone", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "said026", "name": "Saïd Ibrihen", "avatar_url": "https://avatars.githubusercontent.com/u/8886540?v=4", "profile": "https://www.orange-business.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "rojotek", "name": "Rob Dawson", "avatar_url": "https://avatars.githubusercontent.com/u/261271?v=4", "profile": "https://github.com/rojotek", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "asashour", "name": "Ahmed Ashour", "avatar_url": "https://avatars.githubusercontent.com/u/2410127?v=4", "profile": "https://github.com/asashour", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Arachnid", "name": "Nick Johnson", "avatar_url": "https://avatars.githubusercontent.com/u/17865?v=4", "profile": "http://blog.notdot.net/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "wuzekang", "name": "吴泽康", "avatar_url": "https://avatars.githubusercontent.com/u/6880274?v=4", "profile": "https://www.zhihu.com/people/wu-ze-kang", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "nickgaski", "name": "Nick Gaski", "avatar_url": "https://avatars.githubusercontent.com/u/16326255?v=4", "profile": "https://github.com/nickgaski", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "RahulBansal123", "name": "Rahul", "avatar_url": "https://avatars.githubusercontent.com/u/64414414?v=4", "profile": "https://www.linkedin.com/in/rahul-bansal-66a9581a6/", - "contributions": [ - "ideas", - "doc", - "content" - ] + "contributions": ["ideas", "doc", "content"] }, { "login": "frxncismor", "name": "Francisco J. Moreno", "avatar_url": "https://avatars.githubusercontent.com/u/30633617?v=4", "profile": "https://github.com/frxncismor", - "contributions": [ - "translation", - "doc" - ] + "contributions": ["translation", "doc"] }, { "login": "Kansas-Guy", "name": "Zach", "avatar_url": "https://avatars.githubusercontent.com/u/87861134?v=4", "profile": "https://github.com/Kansas-Guy", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "bestpilotingalaxy", "name": "bestpilotingalaxy", "avatar_url": "https://avatars.githubusercontent.com/u/59182467?v=4", "profile": "https://github.com/bestpilotingalaxy", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "q9f", "name": "Afr Schoe", "avatar_url": "https://avatars.githubusercontent.com/u/58883403?v=4", "profile": "http://fault.dev", - "contributions": [ - "code", - "doc" - ] + "contributions": ["code", "doc"] }, { "login": "jamongeon1", "name": "jamongeon1", "avatar_url": "https://avatars.githubusercontent.com/u/94926423?v=4", "profile": "https://github.com/jamongeon1", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "JayGreck", "name": "Jay", "avatar_url": "https://avatars.githubusercontent.com/u/56350730?v=4", "profile": "https://github.com/JayGreck", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ArnaudSpanneut", "name": "Arnaud Spanneut", "avatar_url": "https://avatars.githubusercontent.com/u/2766935?v=4", "profile": "https://github.com/ArnaudSpanneut", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "yuliyu123", "name": "yuliyu123", "avatar_url": "https://avatars.githubusercontent.com/u/8566390?v=4", "profile": "https://github.com/yuliyu123", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "VignetteApril", "name": "Jack", "avatar_url": "https://avatars.githubusercontent.com/u/28882898?v=4", "profile": "https://vignetteapril.github.io", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "JayGhb", "name": "Jason Manoloudis", "avatar_url": "https://avatars.githubusercontent.com/u/29868879?v=4", "profile": "https://github.com/JayGhb", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Medzhidov-Omardibir", "name": "Medzhidov-Omardibir", "avatar_url": "https://avatars.githubusercontent.com/u/95706785?v=4", "profile": "https://github.com/Medzhidov-Omardibir", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ApostolisGaros", "name": "ApoGrs", "avatar_url": "https://avatars.githubusercontent.com/u/45716978?v=4", "profile": "https://github.com/ApostolisGaros", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "m-zaink", "name": "Mohammed Sadiq", "avatar_url": "https://avatars.githubusercontent.com/u/32197186?v=4", "profile": "https://github.com/m-zaink", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Sahilsen", "name": "Sahil sen", "avatar_url": "https://avatars.githubusercontent.com/u/41318044?v=4", "profile": "https://github.com/Sahilsen", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "collincusce", "name": "Collin K Cusce", "avatar_url": "https://avatars.githubusercontent.com/u/6778681?v=4", "profile": "https://github.com/collincusce", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "hma23", "name": "hma23", "avatar_url": "https://avatars.githubusercontent.com/u/33968559?v=4", "profile": "https://github.com/hma23", - "contributions": [ - "ideas", - "doc" - ] + "contributions": ["ideas", "doc"] }, { "login": "KaranKaira", "name": "Karan Kaira", "avatar_url": "https://avatars.githubusercontent.com/u/46125192?v=4", "profile": "https://github.com/KaranKaira", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "Re-Drawn", "name": "ReDrawn", "avatar_url": "https://avatars.githubusercontent.com/u/54480926?v=4", "profile": "https://github.com/Re-Drawn", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "brokenprogrammer", "name": "Oskar Mendel", "avatar_url": "https://avatars.githubusercontent.com/u/16289144?v=4", "profile": "http://www.oskarmendel.me", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "thewild-being", "name": "thewild-being", "avatar_url": "https://avatars.githubusercontent.com/u/82868359?v=4", "profile": "https://github.com/thewild-being", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "mydearcode", "name": "Mihrac Cerrahoglu", "avatar_url": "https://avatars.githubusercontent.com/u/18642701?v=4", "profile": "http://mihrac.com", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "smartcontracts", "name": "smartcontracts", "avatar_url": "https://avatars.githubusercontent.com/u/14298799?v=4", "profile": "https://github.com/smartcontracts", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "BlockchainRev", "name": "Samay Lakhani", "avatar_url": "https://avatars.githubusercontent.com/u/47613687?v=4", "profile": "http://thetaclubai.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "vdusart", "name": "vdusart", "avatar_url": "https://avatars.githubusercontent.com/u/43795504?v=4", "profile": "https://github.com/vdusart", - "contributions": [ - "doc", - "code", - "translation" - ] + "contributions": ["doc", "code", "translation"] }, { "login": "wd021", "name": "wd021", "avatar_url": "https://avatars.githubusercontent.com/u/2752586?v=4", "profile": "https://github.com/wd021", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "brian7346", "name": "Max Roslow", "avatar_url": "https://avatars.githubusercontent.com/u/14194522?v=4", "profile": "https://github.com/brian7346", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "tnkrxyz", "name": "tnkrxyz", "avatar_url": "https://avatars.githubusercontent.com/u/97625120?v=4", "profile": "https://github.com/tnkrxyz", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "nloureiro", "name": "Nuno Loureiro", "avatar_url": "https://avatars.githubusercontent.com/u/1120748?v=4", "profile": "http://nloureiro.com", - "contributions": [ - "code", - "design" - ] + "contributions": ["code", "design"] }, { "login": "polarpunklabs", "name": "polarpunklabs", "avatar_url": "https://avatars.githubusercontent.com/u/84196983?v=4", "profile": "https://github.com/polarpunklabs", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "neographer", "name": "Neographer", "avatar_url": "https://avatars.githubusercontent.com/u/1559973?v=4", "profile": "https://github.com/neographer", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "britodiego", "name": "Voll", "avatar_url": "https://avatars.githubusercontent.com/u/84880186?v=4", "profile": "https://github.com/britodiego", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "SurpriseMF3000", "name": "SurpriseMF3000", "avatar_url": "https://avatars.githubusercontent.com/u/99681009?v=4", "profile": "https://github.com/SurpriseMF3000", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "htimsk", "name": "htimsk", "avatar_url": "https://avatars.githubusercontent.com/u/16523856?v=4", "profile": "https://github.com/htimsk", - "contributions": [ - "eventOrganizing" - ] + "contributions": ["eventOrganizing"] }, { "login": "odysseus0", "name": "George Zhang", "avatar_url": "https://avatars.githubusercontent.com/u/8635094?v=4", "profile": "https://github.com/odysseus0", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "nitin094-hub", "name": "Nitin Rajesh", "avatar_url": "https://avatars.githubusercontent.com/u/73329655?v=4", "profile": "https://github.com/nitin094-hub", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "rakeshhotker", "name": "Rakesh Hotker", "avatar_url": "https://avatars.githubusercontent.com/u/55056403?v=4", "profile": "https://github.com/rakeshhotker", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "sebastiendan", "name": "Sébastien Dan", "avatar_url": "https://avatars.githubusercontent.com/u/12198372?v=4", "profile": "https://sebastiendan.github.io/tokyo-stories-8bits/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "krsakshi", "name": "Sakshi", "avatar_url": "https://avatars.githubusercontent.com/u/85516345?v=4", "profile": "https://github.com/krsakshi", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "theanshi", "name": "Anshi", "avatar_url": "https://avatars.githubusercontent.com/u/85395224?v=4", "profile": "https://github.com/theanshi", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "mikoto-studio", "name": "mikoto-studio", "avatar_url": "https://avatars.githubusercontent.com/u/83389134?v=4", "profile": "https://github.com/mikoto-studio", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sacshin", "name": "Arhat", "avatar_url": "https://avatars.githubusercontent.com/u/55705611?v=4", "profile": "https://github.com/sacshin", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "php4fan", "name": "php4fan", "avatar_url": "https://avatars.githubusercontent.com/u/13969584?v=4", "profile": "https://github.com/php4fan", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "kpister", "name": "Kaiser Pister", "avatar_url": "https://avatars.githubusercontent.com/u/4607361?v=4", "profile": "https://github.com/kpister", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "MATsxm", "name": "Marc-Antoine Thevenet", "avatar_url": "https://avatars.githubusercontent.com/u/1972717?v=4", "profile": "http://idimweb.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "alantoa", "name": "Alan Toa", "avatar_url": "https://avatars.githubusercontent.com/u/37520667?v=4", "profile": "http://alantoa.com", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "christopear", "name": "Christopher Pearce", "avatar_url": "https://avatars.githubusercontent.com/u/9981297?v=4", "profile": "http://christopherpearce.nz", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "kurotaky", "name": "Yuta Kurotaki", "avatar_url": "https://avatars.githubusercontent.com/u/866589?v=4", "profile": "https://mo-fu.org", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Claudio2000", "name": "Claudio2000", "avatar_url": "https://avatars.githubusercontent.com/u/32911415?v=4", "profile": "https://github.com/Claudio2000", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "tomaspasie", "name": "Tomas Pasiecznik", "avatar_url": "https://avatars.githubusercontent.com/u/42984839?v=4", "profile": "http://hoo.be/tomaspasie", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "StrongerXi", "name": "Xiangxi Guo (Ryan)", "avatar_url": "https://avatars.githubusercontent.com/u/26714592?v=4", "profile": "https://strongerxi.github.io/ryanguo99.github.io/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "SkywalkingZulu", "name": "Andile Mchunu", "avatar_url": "https://avatars.githubusercontent.com/u/47420082?v=4", "profile": "http://ibistech.site", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "noahliechti", "name": "Noah", "avatar_url": "https://avatars.githubusercontent.com/u/38284563?v=4", "profile": "http://noahliechti.ch", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "adrianmcli", "name": "Adrian Li", "avatar_url": "https://avatars.githubusercontent.com/u/943555?v=4", "profile": "https://github.com/adrianmcli", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "penlix", "name": "Konstantinos Penlidis", "avatar_url": "https://avatars.githubusercontent.com/u/8178384?v=4", "profile": "http://www.niceandneat.digital", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "HunterSandlin", "name": "Hunter Sandlin", "avatar_url": "https://avatars.githubusercontent.com/u/62820211?v=4", "profile": "https://github.com/HunterSandlin", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "chrboesch", "name": "Chris Boesch", "avatar_url": "https://avatars.githubusercontent.com/u/48591413?v=4", "profile": "https://github.com/chrboesch", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "xcaro", "name": "Nhan Vo", "avatar_url": "https://avatars.githubusercontent.com/u/32713050?v=4", "profile": "http://nguoithua.net", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "devtooligan", "name": "devtooligan", "avatar_url": "https://avatars.githubusercontent.com/u/71567643?v=4", "profile": "https://github.com/devtooligan", - "contributions": [ - "doc", - "code", - "ideas" - ] + "contributions": ["doc", "code", "ideas"] }, { "login": "Nottommy11", "name": "Thomas", "avatar_url": "https://avatars.githubusercontent.com/u/91304333?v=4", "profile": "https://github.com/Nottommy11", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "plamarque", "name": "Patrice Lamarque", "avatar_url": "https://avatars.githubusercontent.com/u/227828?v=4", "profile": "https://github.com/plamarque", - "contributions": [ - "doc", - "ideas", - "bug", - "tool" - ] + "contributions": ["doc", "ideas", "bug", "tool"] }, { "login": "sell50", "name": "sell50", "avatar_url": "https://avatars.githubusercontent.com/u/34224830?v=4", "profile": "https://github.com/sell50", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "manuperalta", "name": "Manuel Peralta", "avatar_url": "https://avatars.githubusercontent.com/u/90803647?v=4", "profile": "https://github.com/manuperalta", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Riely007", "name": "Riely", "avatar_url": "https://avatars.githubusercontent.com/u/80497350?v=4", "profile": "https://github.com/Riely007", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "Ghospel", "name": "Jasper", "avatar_url": "https://avatars.githubusercontent.com/u/5272374?v=4", - "profile": "https://github.com/Ghospel", - "contributions": [ - "content" - ] + "profile": "https://github.com/Ghospel", + "contributions": ["content"] }, { "login": "rhigdon", "name": "Ryan Higdn", "avatar_url": "https://avatars.githubusercontent.com/u/133530?v=4", "profile": "http://ryanhigdon.com", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "Eni-G", "name": "Eni-G", "avatar_url": "https://avatars.githubusercontent.com/u/100782096?v=4", "profile": "https://github.com/Eni-G", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "B01AND", "name": "B01AND", "avatar_url": "https://avatars.githubusercontent.com/u/88404615?v=4", "profile": "https://github.com/B01AND", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "epicfaace", "name": "Ashwin Ramaswami", "avatar_url": "https://avatars.githubusercontent.com/u/1689183?v=4", "profile": "https://ashwin.run/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "LieAlbertTriAdrian", "name": "Albert Lie Adrian", "avatar_url": "https://avatars.githubusercontent.com/u/12984659?v=4", "profile": "https://github.com/LieAlbertTriAdrian", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "1337-ishaan", "name": "Ishaan Parmar", "avatar_url": "https://avatars.githubusercontent.com/u/64636222?v=4", "profile": "https://github.com/1337-ishaan", - "contributions": [ - "code", - "design", - "ideas" - ] + "contributions": ["code", "design", "ideas"] }, { "login": "tarunbatra", "name": "Tarun Batra", "avatar_url": "https://avatars.githubusercontent.com/u/5329230?v=4", "profile": "http://tarunbatra.com", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "max-donger", "name": "Max", "avatar_url": "https://avatars.githubusercontent.com/u/56192627?v=4", "profile": "https://github.com/max-donger", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "LuozhuZhang", "name": "Luozhu", "avatar_url": "https://avatars.githubusercontent.com/u/70309026?v=4", "profile": "https://github.com/LuozhuZhang", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "yash-sharma1", "name": "Yash Sharma ", "avatar_url": "https://avatars.githubusercontent.com/u/44340561?v=4", "profile": "http://www.linkedin.com/in/sharma-yash", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "cryptochrome", "name": "cryptochrome", "avatar_url": "https://avatars.githubusercontent.com/u/4440762?v=4", "profile": "https://github.com/cryptochrome", - "contributions": [ - "ideas", - "bug" - ] + "contributions": ["ideas", "bug"] }, { "login": "argan", "name": "Argan Wang", "avatar_url": "https://avatars.githubusercontent.com/u/27713?v=4", "profile": "http://argan.github.io", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "14MR", "name": "Tim Mustafin", "avatar_url": "https://avatars.githubusercontent.com/u/5824170?v=4", "profile": "http://mustafin.dev", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "superphiz", "name": "superphiz", "avatar_url": "https://avatars.githubusercontent.com/u/51464737?v=4", "profile": "https://github.com/superphiz", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "seanlakers", "name": "seanlakers", "avatar_url": "https://avatars.githubusercontent.com/u/104017504?v=4", "profile": "https://github.com/seanlakers", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "JasonYan2015", "name": "Jason Yan", "avatar_url": "https://avatars.githubusercontent.com/u/17684609?v=4", "profile": "https://github.com/JasonYan2015", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "mradkov", "name": "mradkov", "avatar_url": "https://avatars.githubusercontent.com/u/13139371?v=4", "profile": "https://hack.bg", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "b17z", "name": "Bienvenido Rodriguez", "avatar_url": "https://avatars.githubusercontent.com/u/3633484?v=4", "profile": "https://github.com/b17z", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "soranature", "name": "Sora Nature", "avatar_url": "https://avatars.githubusercontent.com/u/105337203?v=4", "profile": "https://github.com/soranature", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "cupOJoseph", "name": "Joseph Schiarizzi", "avatar_url": "https://avatars.githubusercontent.com/u/9449596?v=4", "profile": "http://josephschiarizzi.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "GustavoRSSilva", "name": "Gustavo Silva", "avatar_url": "https://avatars.githubusercontent.com/u/8384988?v=4", "profile": "https://gustavorssilva.github.io/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "AweSamarth", "name": "Samarth Saxena", "avatar_url": "https://avatars.githubusercontent.com/u/72488638?v=4", "profile": "https://github.com/AweSamarth", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "byhow", "name": "Baihao", "avatar_url": "https://avatars.githubusercontent.com/u/25713361?v=4", "profile": "https://github.com/byhow", - "contributions": [ - "doc", - "bug", - "code" - ] + "contributions": ["doc", "bug", "code"] }, { "login": "stoobie", "name": "Steve Goodman", "avatar_url": "https://avatars.githubusercontent.com/u/39279277?v=4", "profile": "https://github.com/stoobie", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "booklearner", "name": "booklearner", "avatar_url": "https://avatars.githubusercontent.com/u/103979114?v=4", "profile": "http://booklearner.org", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "moretimeL", "name": "moretimeL", "avatar_url": "https://avatars.githubusercontent.com/u/43361848?v=4", "profile": "https://github.com/moretimeL", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "SuperDelphi", "name": "SuperDelphi", "avatar_url": "https://avatars.githubusercontent.com/u/44942598?v=4", "profile": "https://github.com/SuperDelphi", - "contributions": [ - "content", - "translation", - "bug", - "doc" - ] + "contributions": ["content", "translation", "bug", "doc"] }, { "login": "chadlohrli", "name": "chadlohrli", "avatar_url": "https://avatars.githubusercontent.com/u/9952172?v=4", "profile": "https://github.com/chadlohrli", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "JuliusDegesys", "name": "Julius Degesys", "avatar_url": "https://avatars.githubusercontent.com/u/3232103?v=4", "profile": "https://github.com/JuliusDegesys", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "nhsz", "name": "Nicolás Quiroz", "avatar_url": "https://avatars.githubusercontent.com/u/948922?v=4", "profile": "https://nicolasquiroz.com", - "contributions": [ - "code", - "bug" - ] + "contributions": ["code", "bug"] }, { "login": "wolz-CODElife", "name": "wolz-CODElife", "avatar_url": "https://avatars.githubusercontent.com/u/55518764?v=4", "profile": "http://wolzcodelife.web.app", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "minaessam2015", "name": "Mina Essam", "avatar_url": "https://avatars.githubusercontent.com/u/13814552?v=4", "profile": "https://github.com/minaessam2015", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "Choi-Jinhong", "name": "GNONG", "avatar_url": "https://avatars.githubusercontent.com/u/65050483?v=4", "profile": "https://jinhongdev.tistory.com/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "spilehchiha", "name": "Sina Pilehchiha", "avatar_url": "https://avatars.githubusercontent.com/u/46059077?v=4", "profile": "https://github.com/spilehchiha", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "theexoticman", "name": "thefrenchbrazilianguy", "avatar_url": "https://avatars.githubusercontent.com/u/10594609?v=4", "profile": "https://github.com/theexoticman", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "nativeanish", "name": "Anish Gupta", "avatar_url": "https://avatars.githubusercontent.com/u/15274388?v=4", "profile": "http://nativeanish.tech", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "dev-matthew", "name": "Matthew", "avatar_url": "https://avatars.githubusercontent.com/u/80741503?v=4", "profile": "https://github.com/dev-matthew", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "JustynaBroniszewska", "name": "Justyna Broniszewska", "avatar_url": "https://avatars.githubusercontent.com/u/33961199?v=4", "profile": "https://github.com/JustynaBroniszewska", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "yanil3500", "name": "Elyanil Liranzo-Castro", "avatar_url": "https://avatars.githubusercontent.com/u/11803254?v=4", "profile": "https://github.com/yanil3500", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "LichuAcu", "name": "Lichu Acuña", "avatar_url": "https://avatars.githubusercontent.com/u/54295410?v=4", "profile": "https://www.linkedin.com/in/lisandroea/?locale=en_US", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "avcdsld", "name": "Takamasa Arakawa", "avatar_url": "https://avatars.githubusercontent.com/u/10495516?v=4", "profile": "https://github.com/avcdsld", - "contributions": [ - "code", - "bug" - ] + "contributions": ["code", "bug"] }, { "login": "skaunov", "name": "skaunov", "avatar_url": "https://avatars.githubusercontent.com/u/65976143?v=4", "profile": "https://github.com/skaunov", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "pcowgill", "name": "Paul Cowgill", "avatar_url": "https://avatars.githubusercontent.com/u/2731712?v=4", "profile": "https://paulcowgill.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "zjiekai", "name": "zjiekai", "avatar_url": "https://avatars.githubusercontent.com/u/1871071?v=4", "profile": "https://github.com/zjiekai", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "WiiCoder", "name": "wii u", "avatar_url": "https://avatars.githubusercontent.com/u/65171537?v=4", "profile": "https://github.com/WiiCoder", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "MonsieurDMA", "name": "MonsieurDMA", "avatar_url": "https://avatars.githubusercontent.com/u/92155252?v=4", "profile": "https://github.com/MonsieurDMA", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "fennar01", "name": "fennar01", "avatar_url": "https://avatars.githubusercontent.com/u/42185291?v=4", "profile": "https://github.com/fennar01", - "contributions": [ - "ideas", - "doc" - ] + "contributions": ["ideas", "doc"] }, { "login": "WilliamWelsh", "name": "William", "avatar_url": "https://avatars.githubusercontent.com/u/16886888?v=4", "profile": "https://williamalanwelsh.com", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "motemotech", "name": "motemotech", "avatar_url": "https://avatars.githubusercontent.com/u/59491191?v=4", "profile": "https://github.com/motemotech", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Mousticke", "name": "mousticke.eth", "avatar_url": "https://avatars.githubusercontent.com/u/16734238?v=4", "profile": "https://github.com/Mousticke", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "brightiron", "name": "brightiron", "avatar_url": "https://avatars.githubusercontent.com/u/95196612?v=4", "profile": "https://github.com/brightiron", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "modernxpunk", "name": "oleksandrkovalskiy", "avatar_url": "https://avatars.githubusercontent.com/u/65621247?v=4", "profile": "https://github.com/modernxpunk", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "yoshikouki", "name": "yoshikouki", "avatar_url": "https://avatars.githubusercontent.com/u/53972292?v=4", "profile": "http://yoshikouki.com", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "graz-network", "name": "Graz Network", "avatar_url": "https://avatars.githubusercontent.com/u/102697012?v=4", "profile": "http://graz.network", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "cryptoversidad", "name": "Cryptoversidad", "avatar_url": "https://avatars.githubusercontent.com/u/107050863?v=4", "profile": "https://www.youtube.com/c/Cryptoversidad", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "disconnect3d", "name": "Disconnect3d", "avatar_url": "https://avatars.githubusercontent.com/u/10009354?v=4", "profile": "https://disconnect3d.pl/", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "setgree", "name": "Seth Ariel Green", "avatar_url": "https://avatars.githubusercontent.com/u/9850322?v=4", "profile": "http://setharielgreen.com", - "contributions": [ - "doc", - "content" - ] + "contributions": ["doc", "content"] }, { "login": "lcalixxto", "name": "Luisa Calixto", "avatar_url": "https://avatars.githubusercontent.com/u/98348072?v=4", "profile": "https://www.linkedin.com/in/lcalixxto/", - "contributions": [ - "doc", - "content" - ] + "contributions": ["doc", "content"] }, { "login": "theanneli", "name": "theanneli", "avatar_url": "https://avatars.githubusercontent.com/u/106612248?v=4", "profile": "https://github.com/theanneli", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "deric-alchemy", "name": "Deric | Alchemy", "avatar_url": "https://avatars.githubusercontent.com/u/59844056?v=4", "profile": "https://www.linkedin.com/in/dericcheng/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Ahmetbasli", "name": "Ahmetbasli", "avatar_url": "https://avatars.githubusercontent.com/u/68350525?v=4", "profile": "https://github.com/Ahmetbasli", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "dalmau", "name": "Jordi Pascual", "avatar_url": "https://avatars.githubusercontent.com/u/7261873?v=4", "profile": "https://github.com/dalmau", - "contributions": [ - "translation", - "bug", - "doc" - ] + "contributions": ["translation", "bug", "doc"] }, { "login": "amithkk", "name": "Amith KK", "avatar_url": "https://avatars.githubusercontent.com/u/1029727?v=4", "profile": "http://amithkk.github.io", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "ArpitIngle", "name": "Arpit Ingle", "avatar_url": "https://avatars.githubusercontent.com/u/37828045?v=4", "profile": "https://github.com/ArpitIngle", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "Seek4samurai", "name": "Gourav Singh Rawat", "avatar_url": "https://avatars.githubusercontent.com/u/69115613?v=4", "profile": "https://seek4samurai.vercel.app/", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "jonasbostoen", "name": "mempirate", "avatar_url": "https://avatars.githubusercontent.com/u/32879610?v=4", "profile": "https://netbound.io", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "Barukimang", "name": "Barukimang", "avatar_url": "https://avatars.githubusercontent.com/u/16764792?v=4", "profile": "https://github.com/Barukimang", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "kuzdogan", "name": "Kaan Uzdoğan", "avatar_url": "https://avatars.githubusercontent.com/u/13069972?v=4", "profile": "http://kaanuzdogan.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "NiloCK", "name": "Colin Kennedy", "avatar_url": "https://avatars.githubusercontent.com/u/10780590?v=4", "profile": "https://github.com/NiloCK", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "TimGrey998", "name": "XOF", "avatar_url": "https://avatars.githubusercontent.com/u/57596934?v=4", "profile": "https://github.com/TimGrey998", - "contributions": [ - "doc", - "translation", - "bug" - ] + "contributions": ["doc", "translation", "bug"] }, { "login": "ManuKashyap01", "name": "Manu kashyap", "avatar_url": "https://avatars.githubusercontent.com/u/76866512?v=4", "profile": "https://github.com/ManuKashyap01", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "arjenzhou", "name": "Zhou Yang", "avatar_url": "https://avatars.githubusercontent.com/u/23600703?v=4", "profile": "http://arjenzhou.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "burningtree", "name": "tree", "avatar_url": "https://avatars.githubusercontent.com/u/67269?v=4", "profile": "https://keybase.io/tree", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "StephenFluin", "name": "Stephen Fluin", "avatar_url": "https://avatars.githubusercontent.com/u/165056?v=4", "profile": "https://github.com/StephenFluin", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "hakuta", "name": "hakuta", "avatar_url": "https://avatars.githubusercontent.com/u/806605?v=4", "profile": "https://github.com/hakuta", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "MiloBowman", "name": "MiloBowman", "avatar_url": "https://avatars.githubusercontent.com/u/104447804?v=4", "profile": "https://github.com/MiloBowman", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "tadeodao", "name": "tadeo", "avatar_url": "https://avatars.githubusercontent.com/u/94108039?v=4", "profile": "https://github.com/tadeodao", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "creacodigos", "name": "Jorge Santana", "avatar_url": "https://avatars.githubusercontent.com/u/50615503?v=4", "profile": "http://creacodigos.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "rolodexter", "name": "rolodexter", "avatar_url": "https://avatars.githubusercontent.com/u/977925?v=4", "profile": "http://www.rolodexter1.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "RanchHowards", "name": "RanchHowards", "avatar_url": "https://avatars.githubusercontent.com/u/69303624?v=4", "profile": "https://github.com/RanchHowards", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "didoshotev", "name": "Deyan Shotev", "avatar_url": "https://avatars.githubusercontent.com/u/62618421?v=4", "profile": "https://github.com/didoshotev", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "PraneshASP", "name": "Pranesh A S", "avatar_url": "https://avatars.githubusercontent.com/u/42379522?v=4", "profile": "https://github.com/PraneshASP", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "shir22", "name": "shir22", "avatar_url": "https://avatars.githubusercontent.com/u/33841818?v=4", "profile": "https://github.com/shir22", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "nikashitsa", "name": "Nikita Verkhovin", "avatar_url": "https://avatars.githubusercontent.com/u/1029908?v=4", "profile": "https://github.com/nikashitsa", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "pushkar2112", "name": "Pushkar Verma", "avatar_url": "https://avatars.githubusercontent.com/u/50198312?v=4", "profile": "https://pushkarverma.dev", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "vincentweisser", "name": "Vincent Weisser", "avatar_url": "https://avatars.githubusercontent.com/u/32839303?v=4", "profile": "http://vincentweisser.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "koogawa", "name": "Kosuke Ogawa", "avatar_url": "https://avatars.githubusercontent.com/u/893643?v=4", "profile": "http://www.koogawa.com", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "Feerol", "name": "Fatih Eren Erol", "avatar_url": "https://avatars.githubusercontent.com/u/47645405?v=4", "profile": "https://github.com/Feerol", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "olalonde", "name": "Oli Lalonde", "avatar_url": "https://avatars.githubusercontent.com/u/416585?v=4", "profile": "https://syskall.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "gingerheart86", "name": "gingerheart86", "avatar_url": "https://avatars.githubusercontent.com/u/100948227?v=4", "profile": "https://github.com/gingerheart86", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "naveen106", "name": "Naveen Kumar", "avatar_url": "https://avatars.githubusercontent.com/u/61573478?v=4", "profile": "https://github.com/naveen106", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "treethought", "name": "Cam Sweeney", "avatar_url": "https://avatars.githubusercontent.com/u/15894818?v=4", "profile": "https://github.com/treethought", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "moyedx3", "name": "moyed", "avatar_url": "https://avatars.githubusercontent.com/u/108647630?v=4", "profile": "https://github.com/moyedx3", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "shelleyolivia", "name": "shelleyolivia", "avatar_url": "https://avatars.githubusercontent.com/u/108895606?v=4", "profile": "https://github.com/shelleyolivia", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "zyjblockchain", "name": "Sandy", "avatar_url": "https://avatars.githubusercontent.com/u/40423181?v=4", "profile": "http://sandyzhou911@gmail.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "NachoRoizman", "name": "NachoRoizman", "avatar_url": "https://avatars.githubusercontent.com/u/107893772?v=4", "profile": "https://github.com/NachoRoizman", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "M-Ivan", "name": "Iván Miragaya", "avatar_url": "https://avatars.githubusercontent.com/u/72365253?v=4", "profile": "https://linkedin.com/in/miragaya-ivan", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "smejak", "name": "Jakub Smékal", "avatar_url": "https://avatars.githubusercontent.com/u/20759274?v=4", "profile": "https://github.com/smejak", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "chendatony31", "name": "Tony Chen", "avatar_url": "https://avatars.githubusercontent.com/u/2173383?v=4", "profile": "https://tokenpocket.pro", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "metalc", "name": "metalc", "avatar_url": "https://avatars.githubusercontent.com/u/102876192?v=4", "profile": "https://github.com/metalc", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Tuongg2312", "name": "Tuongg2312", "avatar_url": "https://avatars.githubusercontent.com/u/107551539?v=4", "profile": "https://github.com/Tuongg2312", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ErikSaunier", "name": "Ξrik Saunier", "avatar_url": "https://avatars.githubusercontent.com/u/1122363?v=4", "profile": "https://github.com/ErikSaunier", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "vorot93", "name": "Artem Vorotnikov", "avatar_url": "https://avatars.githubusercontent.com/u/240364?v=4", "profile": "https://github.com/vorot93", - "contributions": [ - "content", - "projectManagement", - "question" - ] + "contributions": ["content", "projectManagement", "question"] }, { "login": "liam0215", "name": "Liam Arzola", "avatar_url": "https://avatars.githubusercontent.com/u/8989334?v=4", "profile": "https://github.com/liam0215", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "srt180", "name": "shao", "avatar_url": "https://avatars.githubusercontent.com/u/30768686?v=4", "profile": "https://github.com/srt180", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "HiroyukiNaito", "name": "Hiroyuki Naito", "avatar_url": "https://avatars.githubusercontent.com/u/32320988?v=4", "profile": "https://crowdin.com/profile/hiroyukinaito", - "contributions": [ - "doc", - "maintenance" - ] + "contributions": ["doc", "maintenance"] }, { "login": "AlehNat", "name": "AlehN", "avatar_url": "https://avatars.githubusercontent.com/u/3587775?v=4", "profile": "https://github.com/AlehNat", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "varunshenoy", "name": "Varun Shenoy", "avatar_url": "https://avatars.githubusercontent.com/u/10859091?v=4", "profile": "http://varunshenoy.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "alebaffa", "name": "Alessandro Baffa", "avatar_url": "https://avatars.githubusercontent.com/u/465513?v=4", "profile": "https://alebaffa.eth.link", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "johngrantuk", "name": "John Grant", "avatar_url": "https://avatars.githubusercontent.com/u/4797222?v=4", "profile": "https://medium.com/@johngrant", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "gorondan", "name": "gorondan", "avatar_url": "https://avatars.githubusercontent.com/u/97026899?v=4", "profile": "https://github.com/gorondan", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "pruthvirajjadhav1", "name": "Pruthviraj Jadhav", "avatar_url": "https://avatars.githubusercontent.com/u/73253354?v=4", "profile": "https://github.com/pruthvirajjadhav1", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "gndx", "name": "Oscar Barajas Tavares", "avatar_url": "https://avatars.githubusercontent.com/u/10554486?v=4", "profile": "https://gndx.io", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "LucidSamuel", "name": "Samuel Akinosho", "avatar_url": "https://avatars.githubusercontent.com/u/39565075?v=4", "profile": "http://www.samuelakinosho.com", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "OdairTrujillo", "name": "Odair Augusto Trujillo Orozco", "avatar_url": "https://avatars.githubusercontent.com/u/45074733?v=4", "profile": "https://odair.dev", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "Unforkable", "name": "Unforkable", "avatar_url": "https://avatars.githubusercontent.com/u/86481149?v=4", "profile": "https://github.com/Unforkable", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Rodrigolvc", "name": "Rodrigo vasquez", "avatar_url": "https://avatars.githubusercontent.com/u/108540208?v=4", "profile": "https://github.com/Rodrigolvc", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "michaelmccallam", "name": "Michael McCallam", "avatar_url": "https://avatars.githubusercontent.com/u/3510607?v=4", "profile": "https://github.com/michaelmccallam", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "PolinaShanti", "name": "Polina G.", "avatar_url": "https://avatars.githubusercontent.com/u/110098268?v=4", "profile": "https://nownodes.io/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Cerebro92", "name": "Neeraj Gahlot", "avatar_url": "https://avatars.githubusercontent.com/u/13215478?v=4", "profile": "https://github.com/Cerebro92", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "vrinek", "name": "Kostas", "avatar_url": "https://avatars.githubusercontent.com/u/81346?v=4", "profile": "https://github.com/vrinek", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "rogueassasin1729", "name": "rogueassasin1729", "avatar_url": "https://avatars.githubusercontent.com/u/92800000?v=4", "profile": "https://github.com/rogueassasin1729", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Pandapip1", "name": "Pandapip1", "avatar_url": "https://avatars.githubusercontent.com/u/45835846?v=4", "profile": "https://pandapip1.com/", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "Aldizh", "name": "Aldi Zhupani", "avatar_url": "https://avatars.githubusercontent.com/u/2282120?v=4", "profile": "http://aldizh.github.io/", - "contributions": [ - "bug", - "code" - ] + "contributions": ["bug", "code"] }, { "login": "linhuatan", "name": "linhuatan", "avatar_url": "https://avatars.githubusercontent.com/u/94831627?v=4", "profile": "https://github.com/linhuatan", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "hughcrt", "name": "Hugh", "avatar_url": "https://avatars.githubusercontent.com/u/24587702?v=4", "profile": "http://hugh.sh", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "z3zzz", "name": "Kim Kwangtae", "avatar_url": "https://avatars.githubusercontent.com/u/91174156?v=4", "profile": "https://github.com/z3zzz", - "contributions": [ - "content", - "ideas" - ] + "contributions": ["content", "ideas"] }, { "login": "tobi4021", "name": "tobi4021", "avatar_url": "https://avatars.githubusercontent.com/u/84390698?v=4", "profile": "https://github.com/tobi4021", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "lonelyotter", "name": "Haochen Song", "avatar_url": "https://avatars.githubusercontent.com/u/57280827?v=4", "profile": "https://github.com/lonelyotter", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "opensourcex123", "name": "N Fx", "avatar_url": "https://avatars.githubusercontent.com/u/73230562?v=4", "profile": "https://github.com/opensourcex123", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "srhinee", "name": "samsara", "avatar_url": "https://avatars.githubusercontent.com/u/29331203?v=4", "profile": "https://github.com/srhinee", - "contributions": [ - "doc", - "bug", - "translation" - ] + "contributions": ["doc", "bug", "translation"] }, { "login": "greefea", "name": "greefea", "avatar_url": "https://avatars.githubusercontent.com/u/106492500?v=4", "profile": "https://github.com/greefea", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "parotax", "name": "parotax", "avatar_url": "https://avatars.githubusercontent.com/u/86522055?v=4", "profile": "https://github.com/parotax", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "vinhloc30796", "name": "Loc Nguyen", "avatar_url": "https://avatars.githubusercontent.com/u/19675202?v=4", "profile": "https://linkedin.com/in/vinhloc30796", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "north-vanhooser", "name": "north-vanhooser", "avatar_url": "https://avatars.githubusercontent.com/u/86130010?v=4", "profile": "https://github.com/north-vanhooser", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "othaime-en", "name": "othaime-en", "avatar_url": "https://avatars.githubusercontent.com/u/61498231?v=4", "profile": "https://github.com/othaime-en", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "fleischi-svr", "name": "Cronos", "avatar_url": "https://avatars.githubusercontent.com/u/79516944?v=4", "profile": "https://github.com/fleischi-svr", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "MicahZoltu", "name": "Micah Zoltu", "avatar_url": "https://avatars.githubusercontent.com/u/886059?v=4", "profile": "https://github.com/MicahZoltu", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Aracki", "name": "Ivan Aracki", "avatar_url": "https://avatars.githubusercontent.com/u/6129986?v=4", "profile": "https://www.aracki.me", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "always0e0w", "name": "屠虫少年", "avatar_url": "https://avatars.githubusercontent.com/u/64178062?v=4", "profile": "https://alphabeta.top/", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "RamanSB", "name": "Ramandeep", "avatar_url": "https://avatars.githubusercontent.com/u/13969478?v=4", "profile": "http://stackoverflow.com/users/5062825/ramansb", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "vvladd", "name": "Vlad Kokhan", "avatar_url": "https://avatars.githubusercontent.com/u/13506999?v=4", "profile": "https://github.com/vvladd", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "SavPhill", "name": "Phill", "avatar_url": "https://avatars.githubusercontent.com/u/38789408?v=4", "profile": "https://github.com/SavPhill", - "contributions": [ - "content", - "doc", - "code" - ] + "contributions": ["content", "doc", "code"] }, { "login": "camerondurham", "name": "cam", "avatar_url": "https://avatars.githubusercontent.com/u/17013462?v=4", "profile": "http://u64.cam", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "calumtomeny", "name": "calumtomeny", "avatar_url": "https://avatars.githubusercontent.com/u/939917?v=4", "profile": "https://github.com/calumtomeny", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "robertu7", "name": "robertu", "avatar_url": "https://avatars.githubusercontent.com/u/4065233?v=4", "profile": "https://robertu7.github.io/", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "ldlsalazar", "name": "Lorena De Leon Salazar", "avatar_url": "https://avatars.githubusercontent.com/u/112458077?v=4", "profile": "https://github.com/ldlsalazar", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "JAdams-eth", "name": "James Adams", "avatar_url": "https://avatars.githubusercontent.com/u/95427666?v=4", "profile": "https://akcela.co.uk", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "taiyangc", "name": "Eric Chen", "avatar_url": "https://avatars.githubusercontent.com/u/1467354?v=4", "profile": "https://github.com/taiyangc", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Colt-M1873", "name": "Van De Biao", "avatar_url": "https://avatars.githubusercontent.com/u/47551017?v=4", "profile": "https://github.com/Colt-M1873", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "srv-smn", "name": "Sourav Suman", "avatar_url": "https://avatars.githubusercontent.com/u/47235134?v=4", "profile": "https://github.com/srv-smn", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "ivpavici", "name": "Ivan Pavičić", "avatar_url": "https://avatars.githubusercontent.com/u/2848732?v=4", "profile": "https://github.com/ivpavici", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "Batxent", "name": "tommy", "avatar_url": "https://avatars.githubusercontent.com/u/7824431?v=4", "profile": "https://github.com/Batxent", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "martinyung", "name": "Martin Yung", "avatar_url": "https://avatars.githubusercontent.com/u/8136256?v=4", "profile": "https://medium.com/@martinyce", - "contributions": [ - "code", - "translation" - ] + "contributions": ["code", "translation"] }, { "login": "pankajjagtapp", "name": "Pankaj Jagtap", "avatar_url": "https://avatars.githubusercontent.com/u/89507661?v=4", "profile": "https://github.com/pankajjagtapp", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "hannsu", "name": "nulun", "avatar_url": "https://avatars.githubusercontent.com/u/20453231?v=4", "profile": "https://github.com/hannsu", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Denllay", "name": "Denllay", "avatar_url": "https://avatars.githubusercontent.com/u/75447714?v=4", "profile": "https://github.com/Denllay", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "yalexis-eth", "name": "yalexis.eth", "avatar_url": "https://avatars.githubusercontent.com/u/96504224?v=4", "profile": "http://yalexis.eth.xyz", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "smartprogrammer93", "name": "Ahmad Bitar", "avatar_url": "https://avatars.githubusercontent.com/u/33181301?v=4", "profile": "https://github.com/smartprogrammer93", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "carllippert", "name": "Carl Lippert", "avatar_url": "https://avatars.githubusercontent.com/u/16457876?v=4", "profile": "https://carllippert.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "tymtam2", "name": "Tymek Majewski", "avatar_url": "https://avatars.githubusercontent.com/u/1097613?v=4", "profile": "https://github.com/tymtam2", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Cryptolibertarian-id", "name": "Cryptolibertarian.id", "avatar_url": "https://avatars.githubusercontent.com/u/108990005?v=4", "profile": "http://cryptolibertarian.id", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "MahendraBishnoi29", "name": "browny", "avatar_url": "https://avatars.githubusercontent.com/u/74294202?v=4", "profile": "https://github.com/MahendraBishnoi29", - "contributions": [ - "ideas", - "code", - "bug" - ] + "contributions": ["ideas", "code", "bug"] }, { "login": "sandakersmann", "name": "Marius Kjærstad", "avatar_url": "https://avatars.githubusercontent.com/u/6118832?v=4", "profile": "https://github.com/sandakersmann", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "scottfits", "name": "Scott Fitsimones", "avatar_url": "https://avatars.githubusercontent.com/u/1193692?v=4", "profile": "http://scottfits.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "kryptopaul", "name": "Paul Lechocki", "avatar_url": "https://avatars.githubusercontent.com/u/87016182?v=4", "profile": "https://github.com/kryptopaul", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "justalike", "name": "justalike", "avatar_url": "https://avatars.githubusercontent.com/u/44633493?v=4", "profile": "https://github.com/justalike", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "grayliquid", "name": "grayliquid", "avatar_url": "https://avatars.githubusercontent.com/u/26670751?v=4", "profile": "http://l5d.li", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "MHMasoon", "name": "MohammadHosein Masoon", "avatar_url": "https://avatars.githubusercontent.com/u/63204823?v=4", "profile": "https://github.com/MHMasoon", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "patoshii", "name": "Patoshi", "avatar_url": "https://avatars.githubusercontent.com/u/381050?v=4", "profile": "https://www.xcubicle.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "joonspoon", "name": "June Clarke ", "avatar_url": "https://avatars.githubusercontent.com/u/302478?v=4", "profile": "https://www.jointheleague.org/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "slf188", "name": "菲利", "avatar_url": "https://avatars.githubusercontent.com/u/49417481?v=4", "profile": "https://huggingface.co/slf188", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "DamitusThyYeetus123", "name": "DamitusThyYeetus123", "avatar_url": "https://avatars.githubusercontent.com/u/108782125?v=4", "profile": "https://github.com/DamitusThyYeetus123", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "matusame", "name": "matusame", "avatar_url": "https://avatars.githubusercontent.com/u/97032288?v=4", "profile": "https://github.com/matusame", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "laurentlucian", "name": "Lohan", "avatar_url": "https://avatars.githubusercontent.com/u/33508364?v=4", "profile": "https://github.com/laurentlucian", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "marcellamalune", "name": "Marcella", "avatar_url": "https://avatars.githubusercontent.com/u/63505124?v=4", "profile": "https://github.com/marcellamalune", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "leontodd", "name": "Leon Todd", "avatar_url": "https://avatars.githubusercontent.com/u/8823227?v=4", "profile": "https://londonbustimes.com/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ladislasfontaine", "name": "Ladislas Fontaine", "avatar_url": "https://avatars.githubusercontent.com/u/42914253?v=4", "profile": "https://ladislasfontaine.com/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "YasshhYadav", "name": "Yash Yadav", "avatar_url": "https://avatars.githubusercontent.com/u/91071840?v=4", "profile": "https://github.com/YasshhYadav", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "barro32", "name": "barro", "avatar_url": "https://avatars.githubusercontent.com/u/1510990?v=4", "profile": "https://github.com/barro32", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Master7130", "name": "Master7130", "avatar_url": "https://avatars.githubusercontent.com/u/85327930?v=4", "profile": "https://github.com/Master7130", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Lude15", "name": "Lude15", "avatar_url": "https://avatars.githubusercontent.com/u/109084476?v=4", "profile": "https://github.com/Lude15", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "badkk", "name": "Luke Fan", "avatar_url": "https://avatars.githubusercontent.com/u/10335300?v=4", "profile": "https://crust.network", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "TABASCOatw", "name": "TABASCO", "avatar_url": "https://avatars.githubusercontent.com/u/84655644?v=4", "profile": "https://github.com/TABASCOatw", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "d1onys1us", "name": "d1onys1us", "avatar_url": "https://avatars.githubusercontent.com/u/13951458?v=4", "profile": "https://github.com/d1onys1us", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "thib-web3", "name": "Thibaut", "avatar_url": "https://avatars.githubusercontent.com/u/66329321?v=4", "profile": "https://github.com/thib-web3", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ImMiguelP", "name": "Miguel", "avatar_url": "https://avatars.githubusercontent.com/u/61770010?v=4", "profile": "https://github.com/ImMiguelP", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "rayzhudev", "name": "Ray Zhu", "avatar_url": "https://avatars.githubusercontent.com/u/20132960?v=4", "profile": "https://github.com/rayzhudev", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "BenedettiLucca", "name": "Lucca Benedetti", "avatar_url": "https://avatars.githubusercontent.com/u/108427035?v=4", "profile": "https://github.com/BenedettiLucca", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "MacMorgan", "name": "Mac Morgan", "avatar_url": "https://avatars.githubusercontent.com/u/17681?v=4", "profile": "http://www.printfly.com/", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "Aksa12", "name": "Aksa12", "avatar_url": "https://avatars.githubusercontent.com/u/41188167?v=4", "profile": "https://github.com/Aksa12", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "lawlesx", "name": "Aniruddha Sil", "avatar_url": "https://avatars.githubusercontent.com/u/52166437?v=4", "profile": "https://lawlesx.vercel.app/", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "bt3gl", "name": "♡", "avatar_url": "https://avatars.githubusercontent.com/u/1130416?v=4", "profile": "https://github.com/bt3gl", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "LuisUrrutia", "name": "Luis Sebastian Urrutia Fuentes", "avatar_url": "https://avatars.githubusercontent.com/u/3771248?v=4", "profile": "https://github.com/LuisUrrutia", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "jakubalsoori", "name": "jakubalsoori", "avatar_url": "https://avatars.githubusercontent.com/u/93258205?v=4", "profile": "https://github.com/jakubalsoori", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "wenceslas-sanchez", "name": "Wenceslas Sanchez", "avatar_url": "https://avatars.githubusercontent.com/u/85337624?v=4", "profile": "https://www.compassft.com/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Abyscuit", "name": "Marcus Escobedo", "avatar_url": "https://avatars.githubusercontent.com/u/36307949?v=4", "profile": "https://github.com/Abyscuit", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "fr33dr4g0n", "name": "fr33dr4g0n", "avatar_url": "https://avatars.githubusercontent.com/u/4492996?v=4", "profile": "https://workfromhomejobs.me/remote-developer-jobs/", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "codespirit7", "name": "Ritesh Singh", "avatar_url": "https://avatars.githubusercontent.com/u/88592710?v=4", "profile": "https://www.linkedin.com/in/ritesh-in/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "simonletort", "name": "Simon Letort", "avatar_url": "https://avatars.githubusercontent.com/u/367992?v=4", "profile": "https://www.linkedin.com/in/simonletort", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "AidanPine", "name": "AidanPine", "avatar_url": "https://avatars.githubusercontent.com/u/92037147?v=4", "profile": "https://github.com/AidanPine", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "christy-pdx", "name": "christy-pdx", "avatar_url": "https://avatars.githubusercontent.com/u/107286087?v=4", "profile": "https://github.com/christy-pdx", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "medardm", "name": "Medard Mandane", "avatar_url": "https://avatars.githubusercontent.com/u/20562573?v=4", "profile": "https://github.com/medardm", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "davydog187", "name": "Dave Lucia", "avatar_url": "https://avatars.githubusercontent.com/u/1019721?v=4", "profile": "https://davelucia.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "loicalbertin", "name": "Loïc Albertin", "avatar_url": "https://avatars.githubusercontent.com/u/872896?v=4", "profile": "https://github.com/loicalbertin", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "millecodex", "name": "Mille Codex", "avatar_url": "https://avatars.githubusercontent.com/u/39792005?v=4", "profile": "https://github.com/millecodex", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Gift-Stack", "name": "Gift Opia", "avatar_url": "https://avatars.githubusercontent.com/u/72243506?v=4", - "profile": "https://github.com/Gift-Stack", - "contributions": [ - "code" - ] + "profile": "https://github.com/Gift-Stack", + "contributions": ["code"] }, { "login": "dhirajgagrai", "name": "Dhiraj Gagrai", "avatar_url": "https://avatars.githubusercontent.com/u/22605432?v=4", "profile": "https://dhirajgagrai.dev/", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "KurtMerbeth", "name": "KurtMerbeth", "avatar_url": "https://avatars.githubusercontent.com/u/22886639?v=4", "profile": "https://github.com/KurtMerbeth", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "EmperorRP", "name": "Sai Leela Rahul Pujari", "avatar_url": "https://avatars.githubusercontent.com/u/66853318?v=4", "profile": "https://github.com/EmperorRP", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "SkyWarrior123", "name": "SkyWarrior123", "avatar_url": "https://avatars.githubusercontent.com/u/102062194?v=4", "profile": "https://github.com/SkyWarrior123", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "yashovardhan", "name": "Yashovardhan Agrawal", "avatar_url": "https://avatars.githubusercontent.com/u/21066442?v=4", "profile": "http://yashovardhan.dev", - "contributions": [ - "data" - ] + "contributions": ["data"] }, { "login": "cheeky-gorilla", "name": "cheeky-gorilla", "avatar_url": "https://avatars.githubusercontent.com/u/76262359?v=4", "profile": "https://github.com/cheeky-gorilla", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "ThreeMuskets12", "name": "Noah Page", "avatar_url": "https://avatars.githubusercontent.com/u/23061574?v=4", "profile": "https://github.com/ThreeMuskets12", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "oceans404", "name": "steph", "avatar_url": "https://avatars.githubusercontent.com/u/91382964?v=4", "profile": "https://github.com/oceans404", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "panieldark", "name": "Daniel Park", "avatar_url": "https://avatars.githubusercontent.com/u/21699995?v=4", "profile": "https://www.linkedin.com/in/itsdanielpark", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "knititwearit", "name": "knititwearit", "avatar_url": "https://avatars.githubusercontent.com/u/5172992?v=4", "profile": "https://github.com/knititwearit", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "ryandotsmith", "name": "Ryan Smith", "avatar_url": "https://avatars.githubusercontent.com/u/11726?v=4", "profile": "https://r.32k.io", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "vj-codes", "name": "Vaishnavi Joshi", "avatar_url": "https://avatars.githubusercontent.com/u/60894542?v=4", "profile": "https://vj-codes.github.io/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "jb-0", "name": "Jamie Barrett", "avatar_url": "https://avatars.githubusercontent.com/u/39060614?v=4", "profile": "https://github.com/jb-0", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "hyper0x", "name": "Renato", "avatar_url": "https://avatars.githubusercontent.com/u/315569?v=4", "profile": "https://github.com/hyper0x", - "contributions": [ - "content", - "translation" - ] + "contributions": ["content", "translation"] }, { "login": "frangio", "name": "Francisco", "avatar_url": "https://avatars.githubusercontent.com/u/481465?v=4", "profile": "https://frang.io", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "frankiefab100", "name": "Franklin Ohaegbulam", "avatar_url": "https://avatars.githubusercontent.com/u/46662771?v=4", "profile": "http://frankiefab.com", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "soos3d", "name": "Soos3D", "avatar_url": "https://avatars.githubusercontent.com/u/99700157?v=4", "profile": "https://github.com/soos3d", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "minhoryang", "name": "Minho Ryang", "avatar_url": "https://avatars.githubusercontent.com/u/1270855?v=4", "profile": "http://keybase.io/minhoryang", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "SebastianSupreme", "name": "Sebastian Supreme", "avatar_url": "https://avatars.githubusercontent.com/u/106926150?v=4", "profile": "https://sebastiansupreme.eth.link", - "contributions": [ - "ideas", - "translation", - "code" - ] + "contributions": ["ideas", "translation", "code"] }, { "login": "jhhornn", "name": "Awosise Oluwaseun", "avatar_url": "https://avatars.githubusercontent.com/u/66667958?v=4", "profile": "https://github.com/jhhornn", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Mahmadabid", "name": "Muhammad Ahmad", "avatar_url": "https://avatars.githubusercontent.com/u/75790323?v=4", "profile": "https://mahmad.netlify.app/", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "this-oliver", "name": "Oliver", "avatar_url": "https://avatars.githubusercontent.com/u/32515201?v=4", "profile": "http://oliverrr.net", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "jiOnederfull", "name": "Jiwon Park", "avatar_url": "https://avatars.githubusercontent.com/u/48719289?v=4", "profile": "https://github.com/jiOnederfull", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ZandtLavish", "name": "Zandt Lavish", "avatar_url": "https://avatars.githubusercontent.com/u/99204971?v=4", "profile": "https://github.com/ZandtLavish", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "issa-me-sush", "name": "sushthecoda", "avatar_url": "https://avatars.githubusercontent.com/u/29679285?v=4", "profile": "https://github.com/issa-me-sush", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "LucasMartinCalderon", "name": "Lucas Martin Calderon", "avatar_url": "https://avatars.githubusercontent.com/u/25382998?v=4", "profile": "http://pentestify.io", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "crypto8893", "name": "crypto8893", "avatar_url": "https://avatars.githubusercontent.com/u/115051650?v=4", "profile": "https://github.com/crypto8893", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "victorpatru", "name": "Victor Patru", "avatar_url": "https://avatars.githubusercontent.com/u/102596893?v=4", "profile": "http://victorpatru.xyz", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "vaishnav-mk", "name": "wishee", "avatar_url": "https://avatars.githubusercontent.com/u/84540554?v=4", "profile": "https://vaishnav.tech", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Harshil-Gupta", "name": "Harshil Gupta", "avatar_url": "https://avatars.githubusercontent.com/u/53968071?v=4", "profile": "https://github.com/Harshil-Gupta", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "vanshika-srivastava", "name": "Vanshika Srivastava", "avatar_url": "https://avatars.githubusercontent.com/u/76511019?v=4", "profile": "https://github.com/vanshika-srivastava", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "shariqanwar20", "name": "Shariq Anwar", "avatar_url": "https://avatars.githubusercontent.com/u/61353122?v=4", "profile": "https://github.com/shariqanwar20", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "giorgionocera", "name": "Giorgio Nocera", "avatar_url": "https://avatars.githubusercontent.com/u/13519292?v=4", "profile": "https://github.com/giorgionocera", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "alexeevcc", "name": "Dmitry Alexeev", "avatar_url": "https://avatars.githubusercontent.com/u/61043916?v=4", "profile": "https://cyberacademy.dev", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "af-afk", "name": "Alex", "avatar_url": "https://avatars.githubusercontent.com/u/71931113?v=4", "profile": "https://github.com/af-afk", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "benlazzero", "name": "benlazzero", "avatar_url": "https://avatars.githubusercontent.com/u/85390423?v=4", "profile": "https://github.com/benlazzero", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ankitzm", "name": "Ankit Singh", "avatar_url": "https://avatars.githubusercontent.com/u/66105983?v=4", "profile": "https://github.com/ankitzm", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "mhairimcalpine", "name": "mhairimcalpine", "avatar_url": "https://avatars.githubusercontent.com/u/76955258?v=4", "profile": "https://github.com/mhairimcalpine", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "itsthedoom", "name": "William Doom", "avatar_url": "https://avatars.githubusercontent.com/u/32095408?v=4", "profile": "https://github.com/itsthedoom", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "AsheBarrett", "name": "AsheBarrett", "avatar_url": "https://avatars.githubusercontent.com/u/117123553?v=4", "profile": "https://github.com/AsheBarrett", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "Hitisha-G", "name": "Hitishaa", "avatar_url": "https://avatars.githubusercontent.com/u/89304585?v=4", "profile": "https://github.com/Hitisha-G", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "srustagi", "name": "Shiv Rustagi", "avatar_url": "https://avatars.githubusercontent.com/u/11203724?v=4", "profile": "https://github.com/srustagi", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "douglasmakey", "name": "Douglas Makey Mendez Molero", "avatar_url": "https://avatars.githubusercontent.com/u/8400576?v=4", "profile": "https://www.kungfudev.com/", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ameeetgaikwad", "name": "Amit Gaikwad", "avatar_url": "https://avatars.githubusercontent.com/u/76063569?v=4", "profile": "https://github.com/ameeetgaikwad", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "EridianAlpha", "name": "Eridian", "avatar_url": "https://avatars.githubusercontent.com/u/86061486?v=4", "profile": "https://github.com/EridianAlpha", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "bobbyg603", "name": "Bobby Galli", "avatar_url": "https://avatars.githubusercontent.com/u/2646053?v=4", "profile": "http://bobbyg603.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "flanagansteve", "name": "flanagansteve", "avatar_url": "https://avatars.githubusercontent.com/u/32844300?v=4", "profile": "https://github.com/flanagansteve", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "owenHwang", "name": "Owen Hwang", "avatar_url": "https://avatars.githubusercontent.com/u/112543777?v=4", "profile": "https://github.com/owenHwang", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "florath", "name": "Andreas Florath", "avatar_url": "https://avatars.githubusercontent.com/u/11856543?v=4", "profile": "https://github.com/florath", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "dgcoffman", "name": "Daniel Coffman", "avatar_url": "https://avatars.githubusercontent.com/u/1711204?v=4", "profile": "http://dancoffman.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Amit0617", "name": "AMIT KUMAR MISHRA", "avatar_url": "https://avatars.githubusercontent.com/u/71893015?v=4", "profile": "https://github.com/Amit0617", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Saksham010", "name": "Saksham Thapa", "avatar_url": "https://avatars.githubusercontent.com/u/56692835?v=4", "profile": "https://github.com/Saksham010", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "vjgaur", "name": "Vijayendra Gaur", "avatar_url": "https://avatars.githubusercontent.com/u/1871257?v=4", "profile": "https://github.com/vjgaur", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "nocibambi", "name": "András Novoszáth", "avatar_url": "https://avatars.githubusercontent.com/u/8539674?v=4", "profile": "https://www.linkedin.com/in/andrasnovoszath/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "SahilAujla", "name": "Sahil Aujla", "avatar_url": "https://avatars.githubusercontent.com/u/83442423?v=4", "profile": "http://sahilaujla.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "ritave", "name": "Olaf Tomalka", "avatar_url": "https://avatars.githubusercontent.com/u/1614945?v=4", "profile": "https://github.com/ritave", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "armgp", "name": "Abhiram G P", "avatar_url": "https://avatars.githubusercontent.com/u/49094298?v=4", "profile": "https://github.com/armgp", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "aelmanaa", "name": "Amine E.", "avatar_url": "https://avatars.githubusercontent.com/u/4503543?v=4", "profile": "https://github.com/aelmanaa", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Roshan-R", "name": "Roshan R Chandar", "avatar_url": "https://avatars.githubusercontent.com/u/43182697?v=4", "profile": "https://roshan.ml/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "mossow", "name": "mossow", "avatar_url": "https://avatars.githubusercontent.com/u/9072132?v=4", "profile": "https://github.com/mossow", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "OpenWJY", "name": "yujingwei", "avatar_url": "https://avatars.githubusercontent.com/u/29328336?v=4", "profile": "https://github.com/OpenWJY", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Olshansk", "name": "Daniel Olshansky", "avatar_url": "https://avatars.githubusercontent.com/u/1892194?v=4", "profile": "http://olshansky.info", - "contributions": [ - "doc", - "ideas" - ] + "contributions": ["doc", "ideas"] }, { "login": "aguzmant103", "name": "aguzmant103", "avatar_url": "https://avatars.githubusercontent.com/u/67167307?v=4", "profile": "https://github.com/aguzmant103", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "soheil555", "name": "Soheil", "avatar_url": "https://avatars.githubusercontent.com/u/22212139?v=4", "profile": "https://soheil.vercel.app/", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "metadiver", "name": "metadiver.eth", "avatar_url": "https://avatars.githubusercontent.com/u/75746881?v=4", "profile": "http://linktr.ee/metadiver", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "nuclearfalcon", "name": "Jacob", "avatar_url": "https://avatars.githubusercontent.com/u/12568736?v=4", "profile": "https://github.com/nuclearfalcon", - "contributions": [ - "ideas", - "doc" - ] + "contributions": ["ideas", "doc"] }, { "login": "theSamPadilla", "name": "Sam Padilla", "avatar_url": "https://avatars.githubusercontent.com/u/35386211?v=4", "profile": "https://github.com/theSamPadilla", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "terasum", "name": "Chen Quan", "avatar_url": "https://avatars.githubusercontent.com/u/20042193?v=4", "profile": "https://chenquan.me", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "Marcelixoo", "name": "Marcelo T. dos Santos", "avatar_url": "https://avatars.githubusercontent.com/u/29285152?v=4", "profile": "http://marcelixoo.com", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "NoahSchick", "name": "NoahSchick", "avatar_url": "https://avatars.githubusercontent.com/u/43729013?v=4", "profile": "https://github.com/NoahSchick", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "Joeysantoro", "name": "Joey", "avatar_url": "https://avatars.githubusercontent.com/u/31974730?v=4", "profile": "https://github.com/Joeysantoro", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "AnnaNodes", "name": "AnnaNodes", "avatar_url": "https://avatars.githubusercontent.com/u/117726964?v=4", "profile": "https://github.com/AnnaNodes", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "yash251", "name": "Yash Jagtap", "avatar_url": "https://avatars.githubusercontent.com/u/47234407?v=4", "profile": "https://yashjagtap.netlify.app", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "gzanitti", "name": "Gastón Zanitti", "avatar_url": "https://avatars.githubusercontent.com/u/1610461?v=4", "profile": "https://github.com/gzanitti", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "danceratopz", "name": "Dan", "avatar_url": "https://avatars.githubusercontent.com/u/91727015?v=4", "profile": "https://github.com/danceratopz", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Dev-Liz", "name": "Elizabeth Bassey", "avatar_url": "https://avatars.githubusercontent.com/u/40176275?v=4", "profile": "https://dribbble.com/Liz-B", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "mihaic01", "name": "mihaic01", "avatar_url": "https://avatars.githubusercontent.com/u/108999659?v=4", "profile": "https://github.com/mihaic01", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "qiuhaohao", "name": "qiuhaohao", "avatar_url": "https://avatars.githubusercontent.com/u/22148367?v=4", "profile": "https://github.com/qiuhaohao", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "debeldami", "name": "damilola debel", "avatar_url": "https://avatars.githubusercontent.com/u/44111962?v=4", "profile": "https://github.com/debeldami", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "SaratAngajalaoffl", "name": "Sarat Angajala", "avatar_url": "https://avatars.githubusercontent.com/u/60383339?v=4", "profile": "https://github.com/SaratAngajalaoffl", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "questions", "name": "questions", "avatar_url": "https://avatars.githubusercontent.com/u/3233328?v=4", "profile": "https://github.com/Questions", - "contributions": [ - "projectManagement", - "question" - ] + "contributions": ["projectManagement", "question"] }, { "login": "machin3boy", "name": "machin3boy", "avatar_url": "https://avatars.githubusercontent.com/u/78896694?v=4", "profile": "https://github.com/machin3boy", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "nsexer", "name": "nethan", "avatar_url": "https://avatars.githubusercontent.com/u/30265113?v=4", "profile": "https://github.com/nsexer", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "MrJithil", "name": "Jithil P Ponnan", "avatar_url": "https://avatars.githubusercontent.com/u/26359740?v=4", "profile": "https://www.linkedin.com/in/jithil", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "chocolatesuit", "name": "chocolatesuit", "avatar_url": "https://avatars.githubusercontent.com/u/120116662?v=4", "profile": "https://github.com/chocolatesuit", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "apinanyogaratnam", "name": "Apinan Yogaratnam", "avatar_url": "https://avatars.githubusercontent.com/u/72412733?v=4", "profile": "http://apinanyogaratnam.github.io/my-personal-website-v2.0/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "trevorsc19", "name": "trevorsc19", "avatar_url": "https://avatars.githubusercontent.com/u/30576577?v=4", "profile": "http://trevorscanlon.eth.xyz", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "thouravi", "name": "ImThour", "avatar_url": "https://avatars.githubusercontent.com/u/15676184?v=4", "profile": "https://github.com/thouravi", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "nvitorovic", "name": "Nenad Vitorović", "avatar_url": "https://avatars.githubusercontent.com/u/3808837?v=4", "profile": "https://github.com/nvitorovic", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "danierod", "name": "danierod", "avatar_url": "https://avatars.githubusercontent.com/u/12255235?v=4", "profile": "https://github.com/danierod", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "siddtheone", "name": "siddtheone", "avatar_url": "https://avatars.githubusercontent.com/u/45398971?v=4", "profile": "https://github.com/siddtheone", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ShawkiS", "name": "Shawki Sukkar", "avatar_url": "https://avatars.githubusercontent.com/u/57439827?v=4", "profile": "http://shawkisukkar.com/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "therealharpaljadeja", "name": "Harpal Jadeja", "avatar_url": "https://avatars.githubusercontent.com/u/38040789?v=4", "profile": "https://github.com/therealharpaljadeja", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "zlog-in", "name": "Zion", "avatar_url": "https://avatars.githubusercontent.com/u/67903793?v=4", "profile": "http://www.zlog.in", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "azpwnz", "name": "Andriy Zhuk", "avatar_url": "https://avatars.githubusercontent.com/u/6987007?v=4", "profile": "https://github.com/azpwnz", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "gooseri", "name": "gooser.eth", "avatar_url": "https://avatars.githubusercontent.com/u/121782105?v=4", "profile": "https://etherscan.io/address/gooser.eth", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "feibowei", "name": "feibowei", "avatar_url": "https://avatars.githubusercontent.com/u/69777448?v=4", "profile": "https://github.com/feibowei", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "mesquitaoliveira", "name": "Mesquita Oliveira", "avatar_url": "https://avatars.githubusercontent.com/u/92008139?v=4", "profile": "https://github.com/mesquitaoliveira", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Juancamp1987", "name": "Juan José Giraldo", "avatar_url": "https://avatars.githubusercontent.com/u/91024217?v=4", "profile": "http://www.juanjosegiraldo.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Ash20pk", "name": "Ash@metaschool", "avatar_url": "https://avatars.githubusercontent.com/u/86375577?v=4", "profile": "https://github.com/Ash20pk", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "t-rutten", "name": "Tom Rutten", "avatar_url": "https://avatars.githubusercontent.com/u/1389793?v=4", "profile": "https://github.com/t-rutten", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "chawyehsu", "name": "Chawye Hsu", "avatar_url": "https://avatars.githubusercontent.com/u/5764917?v=4", "profile": "http://chawyehsu.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "MateusTP", "name": "Mateus Pimenta", "avatar_url": "https://avatars.githubusercontent.com/u/59940545?v=4", "profile": "https://github.com/MateusTP", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ezal", "name": "ezal", "avatar_url": "https://avatars.githubusercontent.com/u/6931328?v=4", "profile": "https://github.com/ezal", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "jarrodwatts", "name": "Jarrod Watts", "avatar_url": "https://avatars.githubusercontent.com/u/35651410?v=4", "profile": "https://jarrodwatts.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "mlCode111", "name": "Miao", "avatar_url": "https://avatars.githubusercontent.com/u/34754144?v=4", - "profile": "https://github.com/mlCode111", - "contributions": [ - "code" - ] + "profile": "https://github.com/mlCode111", + "contributions": ["code"] }, { "login": "ljiatu", "name": "Jiatu Liu", "avatar_url": "https://avatars.githubusercontent.com/u/3280973?v=4", "profile": "https://github.com/ljiatu", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "DeUETH", "name": "DeUETH", "avatar_url": "https://avatars.githubusercontent.com/u/107472460?v=4", "profile": "https://github.com/DeUETH", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "erin-at-work", "name": "erin-at-work", "avatar_url": "https://avatars.githubusercontent.com/u/50590950?v=4", "profile": "http://www.erinleelikes.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "AmazingAng", "name": "0xAA", "avatar_url": "https://avatars.githubusercontent.com/u/14728591?v=4", "profile": "https://github.com/AmazingAng", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "changwu-tw", "name": "changwu", "avatar_url": "https://avatars.githubusercontent.com/u/1557364?v=4", "profile": "https://changwu.me/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "uniyj", "name": "yj", "avatar_url": "https://avatars.githubusercontent.com/u/84749041?v=4", "profile": "http://uniyj.eth", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "megatheikal", "name": "megatheikal", "avatar_url": "https://avatars.githubusercontent.com/u/64621442?v=4", "profile": "https://megatheikal.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "stephenfire", "name": "Stephen Guo", "avatar_url": "https://avatars.githubusercontent.com/u/17247036?v=4", "profile": "https://github.com/stephenfire", - "contributions": [ - "translation" - ] + "contributions": ["translation"] }, { "login": "feuGeneA", "name": "F. Eugene Aumson", "avatar_url": "https://avatars.githubusercontent.com/u/7883777?v=4", "profile": "http://aumson.org/gene", - "contributions": [ - "bug", - "content" - ] + "contributions": ["bug", "content"] }, { "login": "rpalakkal", "name": "Roshan", "avatar_url": "https://avatars.githubusercontent.com/u/19766713?v=4", "profile": "https://github.com/rpalakkal", - "contributions": [ - "content", - "code" - ] + "contributions": ["content", "code"] }, { "login": "maxime216-pro", "name": "Maxime Dessez", "avatar_url": "https://avatars.githubusercontent.com/u/66296351?v=4", "profile": "http://maximedessez.fr", - "contributions": [ - "bug", - "translation" - ] + "contributions": ["bug", "translation"] }, { "login": "Tyler-233", "name": "Tyler-233", "avatar_url": "https://avatars.githubusercontent.com/u/44740396?v=4", "profile": "https://github.com/Tyler-233", - "contributions": [ - "translation", - "content" - ] + "contributions": ["translation", "content"] }, { "login": "neodaoist", "name": "neodaoist", "avatar_url": "https://avatars.githubusercontent.com/u/3170590?v=4", "profile": "http://neodaoist.xyz", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "atharvadeosthale", "name": "Atharva Deosthale", "avatar_url": "https://avatars.githubusercontent.com/u/11805367?v=4", "profile": "https://links.atharva.codes", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ckartik", "name": "Kartik Chopra", "avatar_url": "https://avatars.githubusercontent.com/u/13803371?v=4", "profile": "https://github.com/ckartik", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "BBashh", "name": "Bibash Tandon", "avatar_url": "https://avatars.githubusercontent.com/u/125178349?v=4", "profile": "https://github.com/BBashh", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "vaibhavtevatia", "name": "Vaibhav Tevatia", "avatar_url": "https://avatars.githubusercontent.com/u/86671961?v=4", "profile": "https://github.com/vaibhavtevatia", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "cnn-rnn", "name": "cnn-rnn", "avatar_url": "https://avatars.githubusercontent.com/u/44789658?v=4", "profile": "https://github.com/cnn-rnn", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "SahityaRoy", "name": "Sahitya Roy", "avatar_url": "https://avatars.githubusercontent.com/u/72821604?v=4", "profile": "https://www.linkedin.com/in/sahitya-roy-244b941a2/", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "Keecointoken", "name": "KeeCoin", "avatar_url": "https://avatars.githubusercontent.com/u/99338330?v=4", "profile": "https://www.keecoin.io", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "tomatowax", "name": "Seungwook Chi", "avatar_url": "https://avatars.githubusercontent.com/u/799503?v=4", "profile": "http://www.tomatowax.com/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "0xx92", "name": "0xx92", "avatar_url": "https://avatars.githubusercontent.com/u/133748557?v=4", "profile": "https://github.com/0xx92", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "altinocoelho", "name": "altinocoelho", "avatar_url": "https://avatars.githubusercontent.com/u/92543849?v=4", "profile": "https://github.com/altinocoelho", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "viac92", "name": "viac92", "avatar_url": "https://avatars.githubusercontent.com/u/64146594?v=4", "profile": "https://github.com/viac92", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "GDdark", "name": "DongXi Huang", "avatar_url": "https://avatars.githubusercontent.com/u/15982894?v=4", "profile": "https://github.com/GDdark", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "SurajAnand88", "name": "Suraj Anand", "avatar_url": "https://avatars.githubusercontent.com/u/120190623?v=4", "profile": "https://surajanand88.github.io/portfolio/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "MwitahJob", "name": "Mwitah ", "avatar_url": "https://avatars.githubusercontent.com/u/136892656?v=4", "profile": "https://github.com/MwitahJob", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "TucksonDev", "name": "Tuckson", "avatar_url": "https://avatars.githubusercontent.com/u/105675159?v=4", "profile": "https://github.com/TucksonDev", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Akamig", "name": "Akamig", "avatar_url": "https://avatars.githubusercontent.com/u/6278999?v=4", "profile": "https://twitter.com/_Akamig", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "perriefidelis", "name": "Peace Ojemeh", "avatar_url": "https://avatars.githubusercontent.com/u/30669761?v=4", "profile": "https://github.com/perriefidelis", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "woseK", "name": "woseK", "avatar_url": "https://avatars.githubusercontent.com/u/110729731?v=4", "profile": "https://github.com/woseK", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "gunal-123", "name": "Gunal", "avatar_url": "https://avatars.githubusercontent.com/u/103403219?v=4", "profile": "https://github.com/gunal-123", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "LadyDhaga", "name": "chinaman123", "avatar_url": "https://avatars.githubusercontent.com/u/106376368?v=4", "profile": "https://github.com/LadyDhaga", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "z0rats", "name": "Alex", "avatar_url": "https://avatars.githubusercontent.com/u/32142853?v=4", "profile": "http://t.me/mevsinternet", - "contributions": [ - "doc", - "bug" - ] + "contributions": ["doc", "bug"] }, { "login": "mteam88", "name": "Matthew", "avatar_url": "https://avatars.githubusercontent.com/u/84196639?v=4", "profile": "https://mteam88.github.io", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "avalidurl", "name": "gokhan", "avatar_url": "https://avatars.githubusercontent.com/u/11991363?v=4", "profile": "https://github.com/avalidurl", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "0xadri", "name": "Adri", "avatar_url": "https://avatars.githubusercontent.com/u/738533?v=4", "profile": "https://github.com/0xadri", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "DSherryD", "name": "Sherry.Du", "avatar_url": "https://avatars.githubusercontent.com/u/130898085?v=4", "profile": "https://github.com/DSherryD", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "FrancescoXX", "name": "Francesco Ciulla", "avatar_url": "https://avatars.githubusercontent.com/u/18360871?v=4", "profile": "http://francescociulla.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "blazingrome", "name": "blazingrome", "avatar_url": "https://avatars.githubusercontent.com/u/136898739?v=4", "profile": "https://github.com/blazingrome", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "etan-status", "name": "Etan Kissling", "avatar_url": "https://avatars.githubusercontent.com/u/89844309?v=4", "profile": "https://github.com/etan-status", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "kritik-sah", "name": "kritik sah", "avatar_url": "https://avatars.githubusercontent.com/u/57076429?v=4", "profile": "https://linktr.ee/kritik", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "Fuliggine", "name": "Fuliggine", "avatar_url": "https://avatars.githubusercontent.com/u/56844974?v=4", "profile": "https://github.com/Fuliggine", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Omsify", "name": "Omsify", "avatar_url": "https://avatars.githubusercontent.com/u/87442202?v=4", "profile": "https://github.com/Omsify", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "0xMimir", "name": "0xMimir", "avatar_url": "https://avatars.githubusercontent.com/u/108837858?v=4", "profile": "https://github.com/0xMimir", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "bilaljawed", "name": "Bilal", "avatar_url": "https://avatars.githubusercontent.com/u/17548944?v=4", "profile": "https://github.com/bilaljawed", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ilanolkies", "name": "Ilan", "avatar_url": "https://avatars.githubusercontent.com/u/36084092?v=4", "profile": "https://ilanolkies.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "umededoteth", "name": "umede", "avatar_url": "https://avatars.githubusercontent.com/u/122288558?v=4", "profile": "https://mirror.xyz/umede.eth", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "taminobaumann", "name": "Tamino", "avatar_url": "https://avatars.githubusercontent.com/u/48290617?v=4", "profile": "http://taminobaumann.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "keccers", "name": "Katherine Champagne", "avatar_url": "https://avatars.githubusercontent.com/u/770277?v=4", "profile": "https://github.com/keccers", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Coderoostr", "name": "Marcos González", "avatar_url": "https://avatars.githubusercontent.com/u/103231131?v=4", "profile": "https://coderoostr.com", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "natpicone", "name": "Natalino Picone", "avatar_url": "https://avatars.githubusercontent.com/u/4753402?v=4", "profile": "https://chainlabo.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "hammadsaedi", "name": "Hammad Saaedi", "avatar_url": "https://avatars.githubusercontent.com/u/71373419?v=4", "profile": "https://github.com/hammadsaedi", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "srn08", "name": "Shaunak Nagrecha", "avatar_url": "https://avatars.githubusercontent.com/u/105499798?v=4", "profile": "https://github.com/srn08", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "schwindtkevin", "name": "Kevin Schwindt", "avatar_url": "https://avatars.githubusercontent.com/u/1700789?v=4", "profile": "https://github.com/schwindtkevin", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "robertkodra", "name": "Robert", "avatar_url": "https://avatars.githubusercontent.com/u/36516516?v=4", "profile": "https://github.com/robertkodra", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "0xObsidian", "name": "obsidian", "avatar_url": "https://avatars.githubusercontent.com/u/131651958?v=4", "profile": "https://github.com/0xObsidian", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "MohamedFekryyy", "name": "Fekry Aiad", "avatar_url": "https://avatars.githubusercontent.com/u/36033065?v=4", "profile": "http://www.scienft.com", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "Wilson-Wu1", "name": "Wilson Wu", "avatar_url": "https://avatars.githubusercontent.com/u/41039035?v=4", "profile": "https://www.linkedin.com/in/wilson-wu-2021/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "fvaysh", "name": "VAS", "avatar_url": "https://avatars.githubusercontent.com/u/126754021?v=4", "profile": "https://github.com/fvaysh", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "costgallo", "name": "Costanza", "avatar_url": "https://avatars.githubusercontent.com/u/49433698?v=4", "profile": "https://github.com/costgallo", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "joaolago1113", "name": "joao", "avatar_url": "https://avatars.githubusercontent.com/u/22820692?v=4", "profile": "https://github.com/joaolago1113", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "rgb2hsl", "name": "Eugene", "avatar_url": "https://avatars.githubusercontent.com/u/3310192?v=4", "profile": "http://p2p.org", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "g0rbe", "name": "Dániel Görbe", "avatar_url": "https://avatars.githubusercontent.com/u/36860942?v=4", "profile": "https://www.gorbe.io", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "s-crypt", "name": "s-crypt", "avatar_url": "https://avatars.githubusercontent.com/u/41712656?v=4", "profile": "https://blog.insubli.me", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "tudorpintea999", "name": "iwantanode", "avatar_url": "https://avatars.githubusercontent.com/u/87604944?v=4", "profile": "https://github.com/tudorpintea999", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "shak58", "name": "shak58", "avatar_url": "https://avatars.githubusercontent.com/u/150069539?v=4", "profile": "https://github.com/shak58", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Muhammad-Altabba", "name": "Muhammad Altabba", "avatar_url": "https://avatars.githubusercontent.com/u/24407834?v=4", "profile": "https://linkedin.com/in/muhammadaltabba", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "darigovresearch", "name": "Darigov Research", "avatar_url": "https://avatars.githubusercontent.com/u/30328618?v=4", "profile": "https://www.darigovresearch.com/", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "shubhusion", "name": "SHUBHAM SHARMA ", "avatar_url": "https://avatars.githubusercontent.com/u/96301987?v=4", "profile": "https://github.com/shubhusion", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "paulallensuxs", "name": "paulallensuxs", "avatar_url": "https://avatars.githubusercontent.com/u/114240091?v=4", "profile": "https://github.com/paulallensuxs", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "pseudomata", "name": "Pseudomata", "avatar_url": "https://avatars.githubusercontent.com/u/132238190?v=4", "profile": "https://pseudomata.com", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "CodeDragonVN", "name": "CodeDragonVN", "avatar_url": "https://avatars.githubusercontent.com/u/150457827?v=4", "profile": "https://github.com/CodeDragonVN", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "SamiAlHassan", "name": "SamiAlHassan", "avatar_url": "https://avatars.githubusercontent.com/u/150172180?v=4", "profile": "https://github.com/SamiAlHassan", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "NaijaCoderGirl", "name": "NaijaCoderGirl", "avatar_url": "https://avatars.githubusercontent.com/u/150683513?v=4", "profile": "https://github.com/NaijaCoderGirl", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "konstantinzolotarev", "name": "Konstantin Zolotarev", "avatar_url": "https://avatars.githubusercontent.com/u/286431?v=4", "profile": "https://github.com/konstantinzolotarev", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "vuittont60", "name": "vuittont60", "avatar_url": "https://avatars.githubusercontent.com/u/81072379?v=4", "profile": "https://github.com/vuittont60", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "goldnite", "name": "Golden Ite", "avatar_url": "https://avatars.githubusercontent.com/u/114434414?v=4", "profile": "http://goldnite.github.io", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Erlangshen219", "name": "Erlangshen219", "avatar_url": "https://avatars.githubusercontent.com/u/104747507?v=4", "profile": "https://github.com/Erlangshen219", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "AyDeveloper", "name": "AyDeveloper", "avatar_url": "https://avatars.githubusercontent.com/u/72970379?v=4", "profile": "https://oxpampam.netlify.app/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jeremyfritzen", "name": "jeremyfritzen", "avatar_url": "https://avatars.githubusercontent.com/u/26802442?v=4", "profile": "https://github.com/jeremyfritzen", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "fuzheng1998", "name": "Zheng Fu", "avatar_url": "https://avatars.githubusercontent.com/u/24203166?v=4", "profile": "https://github.com/fuzheng1998", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "xiaolou86", "name": "xiaolou86", "avatar_url": "https://avatars.githubusercontent.com/u/20718693?v=4", "profile": "https://github.com/xiaolou86", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "aztecEagle22", "name": "aztecEagle22", "avatar_url": "https://avatars.githubusercontent.com/u/152518936?v=4", "profile": "https://github.com/aztecEagle22", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Messi-Q", "name": "QIAN", "avatar_url": "https://avatars.githubusercontent.com/u/21357985?v=4", "profile": "https://github.com/Messi-Q", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "SanShi2023", "name": "SanShi2023", "avatar_url": "https://avatars.githubusercontent.com/u/136459117?v=4", "profile": "https://github.com/SanShi2023", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "kamuik16", "name": "Krishang Shah", "avatar_url": "https://avatars.githubusercontent.com/u/93703995?v=4", "profile": "https://github.com/kamuik16", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "vuvoth", "name": "Vu Vo", "avatar_url": "https://avatars.githubusercontent.com/u/45826131?v=4", "profile": "https://github.com/vuvoth", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "o2Stake", "name": "Tim - o2Stake", "avatar_url": "https://avatars.githubusercontent.com/u/77958700?v=4", "profile": "http://o2stake.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "b-wagn", "name": "Benedikt Wagner", "avatar_url": "https://avatars.githubusercontent.com/u/113296072?v=4", "profile": "http://benedikt-wagner.dev", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "tdahar", "name": "Tarun Mohandas Daryanani", "avatar_url": "https://avatars.githubusercontent.com/u/18716811?v=4", "profile": "https://github.com/tdahar", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Crosstons", "name": "Shubh", "avatar_url": "https://avatars.githubusercontent.com/u/110349596?v=4", "profile": "https://github.com/Crosstons", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "duckdegen", "name": "duckdegen", "avatar_url": "https://avatars.githubusercontent.com/u/98649644?v=4", "profile": "https://github.com/duckdegen", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sminempepe", "name": "sminempepe", "avatar_url": "https://avatars.githubusercontent.com/u/76882704?v=4", "profile": "https://github.com/sminempepe", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "aslikaya", "name": "aslikaya", "avatar_url": "https://avatars.githubusercontent.com/u/9151261?v=4", "profile": "https://github.com/aslikaya", - "contributions": [ - "doc", - "maintenance" - ] + "contributions": ["doc", "maintenance"] }, { "login": "lucas-amberg", "name": "Lucas Amberg", "avatar_url": "https://avatars.githubusercontent.com/u/102396588?v=4", "profile": "http://lucasamberg.dev", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "a-hagi613", "name": "Abdullahi", "avatar_url": "https://avatars.githubusercontent.com/u/92589940?v=4", "profile": "https://a-hagi.dev/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "pranavkonde", "name": "Pranav Konde", "avatar_url": "https://avatars.githubusercontent.com/u/76070589?v=4", "profile": "https://www.linkedin.com/in/pranav-konde-56aa141b5/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "MohitKambli", "name": "Mohit Kambli", "avatar_url": "https://avatars.githubusercontent.com/u/31406633?v=4", "profile": "https://github.com/MohitKambli", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "oleksandr-hyriavets", "name": "Oleksandr Hyriavets", "avatar_url": "https://avatars.githubusercontent.com/u/19614509?v=4", "profile": "https://github.com/oleksandr-hyriavets", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "titanism", "name": "titanism", "avatar_url": "https://avatars.githubusercontent.com/u/101466223?v=4", "profile": "https://github.com/titanism", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Maxservais", "name": "Maxime Servais", "avatar_url": "https://avatars.githubusercontent.com/u/43566493?v=4", "profile": "https://www.ethereum-ecosystem.com/", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "nebolax", "name": "Alexey Nebolsin", "avatar_url": "https://avatars.githubusercontent.com/u/63492346?v=4", "profile": "https://t.me/nebolax", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "jimgreen2013", "name": "jimgreen2013", "avatar_url": "https://avatars.githubusercontent.com/u/15890793?v=4", "profile": "https://github.com/jimgreen2013", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "gabrieltemtsen", "name": "Gabriel Temsten", "avatar_url": "https://avatars.githubusercontent.com/u/57184013?v=4", "profile": "https://github.com/gabrieltemtsen", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "jennyg0", "name": "Jen ", "avatar_url": "https://avatars.githubusercontent.com/u/60794961?v=4", "profile": "https://github.com/jennyg0", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Molotov-Eugene", "name": "Eugene", "avatar_url": "https://avatars.githubusercontent.com/u/95471552?v=4", "profile": "https://github.com/Molotov-Eugene", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "rimtaex", "name": "RimTaeX", "avatar_url": "https://avatars.githubusercontent.com/u/155366533?v=4", "profile": "https://github.com/rimtaex", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "zarifpour", "name": "Daniel Zarifpour", "avatar_url": "https://avatars.githubusercontent.com/u/16494335?v=4", "profile": "http://zarifpour.xyz", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "intldds", "name": "intldds", "avatar_url": "https://avatars.githubusercontent.com/u/80983240?v=4", "profile": "https://github.com/intldds", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "hodlon", "name": "Hodlon", "avatar_url": "https://avatars.githubusercontent.com/u/37387563?v=4", "profile": "https://hodlon.art", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "M4x28", "name": "Leonardo Birardi", "avatar_url": "https://avatars.githubusercontent.com/u/64036726?v=4", "profile": "https://github.com/M4x28", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "Flamenk", "name": "Parrot Iwai", "avatar_url": "https://avatars.githubusercontent.com/u/78525550?v=4", "profile": "https://github.com/Flamenk", - "contributions": [ - "doc", - "translation" - ] + "contributions": ["doc", "translation"] }, { "login": "starwalker00", "name": "starwalker00", "avatar_url": "https://avatars.githubusercontent.com/u/68958932?v=4", "profile": "https://github.com/starwalker00", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "Eversmile12", "name": "VItto Rivabella", "avatar_url": "https://avatars.githubusercontent.com/u/72762629?v=4", "profile": "http://vitto.cc", - "contributions": [ - "doc", - "tool" - ] + "contributions": ["doc", "tool"] }, { "login": "olafnub", "name": "Andy Li", "avatar_url": "https://avatars.githubusercontent.com/u/101077165?v=4", "profile": "https://www.linkedin.com/in/andy-li-65284220b/", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "maxammann", "name": "Max Ammann", "avatar_url": "https://avatars.githubusercontent.com/u/905221?v=4", "profile": "https://maxammann.org/", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "dswilson4", "name": "dswilson4", "avatar_url": "https://avatars.githubusercontent.com/u/33137497?v=4", "profile": "https://github.com/dswilson4", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "vbaranov", "name": "Victor Baranov", "avatar_url": "https://avatars.githubusercontent.com/u/4341812?v=4", "profile": "https://ethereum.stackexchange.com/users/2128/viktor-baranov", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "drehuwann", "name": "drehuwann", "avatar_url": "https://avatars.githubusercontent.com/u/62968123?v=4", "profile": "https://github.com/drehuwann", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "greetfish", "name": "junble", "avatar_url": "https://avatars.githubusercontent.com/u/11615617?v=4", "profile": "https://github.com/greetfish", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "viniciusmorais", "name": "Vinicius de Morais", "avatar_url": "https://avatars.githubusercontent.com/u/3915778?v=4", "profile": "https://github.com/viniciusmorais", - "contributions": [ - "translation", - "doc" - ] + "contributions": ["translation", "doc"] }, { "login": "0xhsy", "name": "0xhsy", "avatar_url": "https://avatars.githubusercontent.com/u/102006034?v=4", "profile": "http://www.dsrvlabs.com", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "enjoyooor", "name": "enjoyooor", "avatar_url": "https://avatars.githubusercontent.com/u/147568088?v=4", "profile": "https://github.com/enjoyooor", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "konopkja", "name": "Jakub", "avatar_url": "https://avatars.githubusercontent.com/u/100724231?v=4", "profile": "http://ethereum.org", - "contributions": [ - "doc", - "content", - "design" - ] + "contributions": ["doc", "content", "design"] }, { "login": "yusuf-musleh", "name": "Yusuf Musleh", "avatar_url": "https://avatars.githubusercontent.com/u/6829768?v=4", "profile": "http://www.ymusleh.com", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "acceptacross", "name": "acceptacross", "avatar_url": "https://avatars.githubusercontent.com/u/150119116?v=4", "profile": "https://github.com/acceptacross", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "pdelagrave", "name": "Pierre Delagrave", "avatar_url": "https://avatars.githubusercontent.com/u/17990895?v=4", "profile": "https://github.com/pdelagrave", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "blmalone", "name": "Blaine Malone", "avatar_url": "https://avatars.githubusercontent.com/u/15608778?v=4", "profile": "https://medium.com/@blainemalone01", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sixhobbits", "name": "Gareth Dwyer", "avatar_url": "https://avatars.githubusercontent.com/u/2641205?v=4", "profile": "https://dwyer.co.za", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "UNOFFICIALbgd", "name": "UNOFFICIALbgd", "avatar_url": "https://avatars.githubusercontent.com/u/71248977?v=4", "profile": "https://github.com/UNOFFICIALbgd", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "Codex-Bugmenot", "name": "Codex-Bugmenot", "avatar_url": "https://avatars.githubusercontent.com/u/59927099?v=4", "profile": "https://github.com/Codex-Bugmenot", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "doutv", "name": "Jason Huang", "avatar_url": "https://avatars.githubusercontent.com/u/20609724?v=4", "profile": "http://huangyongjin.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "adeolu98", "name": "dCRYPT", "avatar_url": "https://avatars.githubusercontent.com/u/39372980?v=4", "profile": "https://github.com/adeolu98", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "sourabupadhya123", "name": "Sourab", "avatar_url": "https://avatars.githubusercontent.com/u/64914231?v=4", "profile": "https://github.com/sourabupadhya123", - "contributions": [ - "security" - ] + "contributions": ["security"] }, { "login": "ykaravas", "name": "ykaravas", "avatar_url": "https://avatars.githubusercontent.com/u/6537956?v=4", "profile": "https://github.com/ykaravas", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "allwin199", "name": "Prince Allwin", "avatar_url": "https://avatars.githubusercontent.com/u/127643894?v=4", "profile": "https://allwin-portfolio.vercel.app/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ryanpwaldon", "name": "Ryan Waldon", "avatar_url": "https://avatars.githubusercontent.com/u/12480362?v=4", "profile": "https://github.com/ryanpwaldon", - "contributions": [ - "content", - "code" - ] + "contributions": ["content", "code"] }, { "login": "4everlandorg", "name": "4EVERLAND", "avatar_url": "https://avatars.githubusercontent.com/u/89854839?v=4", "profile": "https://www.4everland.org", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "iepn", "name": "iepn", "avatar_url": "https://avatars.githubusercontent.com/u/57232813?v=4", "profile": "https://member.acm.org/~rhymeq", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "veridelisi", "name": "veridelisi", "avatar_url": "https://avatars.githubusercontent.com/u/72710290?v=4", "profile": "https://www.ispanyol.com", - "contributions": [ - "tutorial" - ] + "contributions": ["tutorial"] }, { "login": "reetbatra", "name": "Reet Batra", "avatar_url": "https://avatars.githubusercontent.com/u/51335174?v=4", "profile": "https://github.com/reetbatra", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "gndelia", "name": "Gonzalo D'Elia", "avatar_url": "https://avatars.githubusercontent.com/u/352474?v=4", "profile": "https://github.com/gndelia", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "rileyannon", "name": "Riley Annon", "avatar_url": "https://avatars.githubusercontent.com/u/31807653?v=4", "profile": "http://www.rileyannon.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "ayofimihan", "name": "Ogunsina Champion", "avatar_url": "https://avatars.githubusercontent.com/u/31336254?v=4", "profile": "http://0x13.dev", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "ardislu", "name": "Ardis Lu", "avatar_url": "https://avatars.githubusercontent.com/u/29699850?v=4", "profile": "http://ardislu.dev", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "niuhp", "name": "niuhp", "avatar_url": "https://avatars.githubusercontent.com/u/7373524?v=4", "profile": "https://github.com/niuhp", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "xivanc", "name": "xivanc", "avatar_url": "https://avatars.githubusercontent.com/u/91614446?v=4", "profile": "https://github.com/xivanc", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "zm-moon", "name": "patrick", "avatar_url": "https://avatars.githubusercontent.com/u/42063103?v=4", "profile": "https://github.com/zm-moon", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "0xemrekaya", "name": "Emre", "avatar_url": "https://avatars.githubusercontent.com/u/72754835?v=4", "profile": "https://github.com/0xemrekaya", - "contributions": [ - "tutorial", - "doc" - ] + "contributions": ["tutorial", "doc"] }, { "login": "ryokomy", "name": "Ryo Komiyama", "avatar_url": "https://avatars.githubusercontent.com/u/6007453?v=4", "profile": "http://ryokomy.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "Har01d", "name": "Nikita Zhavoronkov", "avatar_url": "https://avatars.githubusercontent.com/u/14060856?v=4", "profile": "https://blockchair.com/", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "tomasgrusz", "name": "Tomáš Grusz", "avatar_url": "https://avatars.githubusercontent.com/u/85355882?v=4", "profile": "https://grusz.dev", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "davidzhangg", "name": "David Zhang", "avatar_url": "https://avatars.githubusercontent.com/u/59639140?v=4", "profile": "https://github.com/davidzhangg", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "HemaDeviU", "name": "EL", "avatar_url": "https://avatars.githubusercontent.com/u/135946602?v=4", "profile": "https://github.com/HemaDeviU", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "hkey0", "name": "hkey", "avatar_url": "https://avatars.githubusercontent.com/u/81494947?v=4", "profile": "https://github.com/hkey0", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "emmanuel-awosika", "name": "Emmanuel Awosika", "avatar_url": "https://avatars.githubusercontent.com/u/102589267?v=4", "profile": "https://emmanuelawosika.bio.link/", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "seandotau", "name": "seandotau", "avatar_url": "https://avatars.githubusercontent.com/u/12471846?v=4", "profile": "https://github.com/seandotau", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "Eikix", "name": "Elias Tazartes", "avatar_url": "https://avatars.githubusercontent.com/u/66871571?v=4", "profile": "https://github.com/Eikix", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "cradle0fFilth", "name": "cradle0fFilth", "avatar_url": "https://avatars.githubusercontent.com/u/64477775?v=4", "profile": "https://github.com/cradle0fFilth", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "lispking", "name": "King", "avatar_url": "https://avatars.githubusercontent.com/u/4446580?v=4", "profile": "http://lispking.github.io/", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "kartojal", "name": "kartojal", "avatar_url": "https://avatars.githubusercontent.com/u/11179847?v=4", "profile": "https://catapulta.sh", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "AaronChen0", "name": "Aaron Chen", "avatar_url": "https://avatars.githubusercontent.com/u/18425462?v=4", "profile": "https://github.com/AaronChen0", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "melpomene", "name": "Christopher", "avatar_url": "https://avatars.githubusercontent.com/u/763476?v=4", "profile": "https://github.com/melpomene", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "AyumuKasuga", "name": "Andrei Kostakov", "avatar_url": "https://avatars.githubusercontent.com/u/700142?v=4", "profile": "https://t.me/AyumuKasuga", - "contributions": [ - "content", - "doc" - ] + "contributions": ["content", "doc"] }, { "login": "shubhisaran", "name": "Shubhi Saran", "avatar_url": "https://avatars.githubusercontent.com/u/113500663?v=4", "profile": "https://github.com/shubhisaran", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "bh2smith", "name": "Benjamin Smith", "avatar_url": "https://avatars.githubusercontent.com/u/11778116?v=4", "profile": "https://github.com/bh2smith", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "Hector-Chong", "name": "Héctor Chong", "avatar_url": "https://avatars.githubusercontent.com/u/12469549?v=4", "profile": "http://hector.im", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "nakmr", "name": "nace.kimura", "avatar_url": "https://avatars.githubusercontent.com/u/145886319?v=4", "profile": "https://github.com/nakmr", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "WuRuiLei2023", "name": "WuRuiLei2023", "avatar_url": "https://avatars.githubusercontent.com/u/149141323?v=4", "profile": "https://github.com/WuRuiLei2023", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "radeksvarz", "name": "Radek", "avatar_url": "https://avatars.githubusercontent.com/u/6020891?v=4", "profile": "http://www.edukids.cz", - "contributions": [ - "eventOrganizing", - "maintenance" - ] + "contributions": ["eventOrganizing", "maintenance"] }, { "login": "bhargavkakadiya", "name": "Bhargav kakadiya", "avatar_url": "https://avatars.githubusercontent.com/u/26486494?v=4", "profile": "https://github.com/bhargavkakadiya", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "ArtificialPB", "name": "ArtificialPB", "avatar_url": "https://avatars.githubusercontent.com/u/4672155?v=4", "profile": "https://github.com/ArtificialPB", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "Pedrojok01", "name": "Pedrojok01", "avatar_url": "https://avatars.githubusercontent.com/u/77141890?v=4", "profile": "https://github.com/Pedrojok01", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "Vid201", "name": "Vid Kersic", "avatar_url": "https://avatars.githubusercontent.com/u/38610409?v=4", "profile": "https://github.com/Vid201", - "contributions": [ - "tool", - "bug" - ] + "contributions": ["tool", "bug"] }, { "login": "futantan", "name": "Tantan Fu", "avatar_url": "https://avatars.githubusercontent.com/u/6268441?v=4", "profile": "http://www.futantan.com", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "Dharmik79", "name": "Dharmik Dholariya", "avatar_url": "https://avatars.githubusercontent.com/u/61613931?v=4", "profile": "https://dharmik79.github.io/portfolio.github.io/", - "contributions": [ - "bug", - "code" - ] + "contributions": ["bug", "code"] }, { "login": "Destiner", "name": "Timur Badretdinov", "avatar_url": "https://avatars.githubusercontent.com/u/4247901?v=4", "profile": "https://destiner.io", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "finxter", "name": "Finxter", "avatar_url": "https://avatars.githubusercontent.com/u/57671493?v=4", "profile": "https://blog.finxter.com/", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "croath", "name": "Croath Liu", "avatar_url": "https://avatars.githubusercontent.com/u/1398729?v=4", "profile": "http://croath.com", - "contributions": [ - "doc", - "code" - ] + "contributions": ["doc", "code"] }, { "login": "HayattiQ", "name": "Hayatti", "avatar_url": "https://avatars.githubusercontent.com/u/5105841?v=4", "profile": "https://github.com/HayattiQ", - "contributions": [ - "content", - "bug", - "maintenance" - ] + "contributions": ["content", "bug", "maintenance"] }, { "login": "JeffreyJoel", "name": "Jeffrey Owoloko", "avatar_url": "https://avatars.githubusercontent.com/u/72028836?v=4", "profile": "https://github.com/JeffreyJoel", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "colmck", "name": "Colin McKerracher", "avatar_url": "https://avatars.githubusercontent.com/u/73862596?v=4", "profile": "https://github.com/colmck", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "writegr", "name": "writegr", "avatar_url": "https://avatars.githubusercontent.com/u/167099595?v=4", "profile": "https://github.com/writegr", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "richardgreg", "name": "Cardo", "avatar_url": "https://avatars.githubusercontent.com/u/35255909?v=4", "profile": "https://github.com/richardgreg", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "shravanandoria", "name": "shravanandoria", "avatar_url": "https://avatars.githubusercontent.com/u/36509067?v=4", "profile": "https://www.linkedin.com/in/shravan-andoria/", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "mcmoodoo", "name": "Rashid Ma", "avatar_url": "https://avatars.githubusercontent.com/u/8257719?v=4", "profile": "http://rashidma.com", - "contributions": [ - "bug", - "doc" - ] + "contributions": ["bug", "doc"] }, { "login": "prestwich", "name": "James Prestwich", "avatar_url": "https://avatars.githubusercontent.com/u/10149425?v=4", "profile": "https://prestwi.ch", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "daiwt", "name": "Dai Wentao", "avatar_url": "https://avatars.githubusercontent.com/u/26290219?v=4", "profile": "https://github.com/daiwt", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "beetrootkid", "name": "kuhant", "avatar_url": "https://avatars.githubusercontent.com/u/34025634?v=4", "profile": "https://github.com/beetrootkid", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "LucasAschenbach", "name": "Lucas Aschenbach", "avatar_url": "https://avatars.githubusercontent.com/u/37406743?v=4", "profile": "https://github.com/LucasAschenbach", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "juliettech13", "name": "juliettech", "avatar_url": "https://avatars.githubusercontent.com/u/19226636?v=4", "profile": "https://juliet.tech", - "contributions": [ - "tutorial" - ] + "contributions": ["tutorial"] }, { "login": "0xayot", "name": "0xayot", "avatar_url": "https://avatars.githubusercontent.com/u/101125111?v=4", "profile": "https://github.com/0xayot", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "lgaroche", "name": "Louis", "avatar_url": "https://avatars.githubusercontent.com/u/13414533?v=4", "profile": "https://github.com/lgaroche", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "rohit-710", "name": "Rohit Ramesh", "avatar_url": "https://avatars.githubusercontent.com/u/70317502?v=4", "profile": "https://bento.me/rohitramesh", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "gsalzer", "name": "Gernot Salzer", "avatar_url": "https://avatars.githubusercontent.com/u/13353518?v=4", "profile": "https://github.com/gsalzer", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "lightclient", "name": "lightclient", "avatar_url": "https://avatars.githubusercontent.com/u/14004106?v=4", "profile": "https://github.com/lightclient", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "GarenWoo", "name": "Garen Woo", "avatar_url": "https://avatars.githubusercontent.com/u/126687110?v=4", "profile": "https://github.com/GarenWoo", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "AbiPrescott", "name": "Abi Prescott", "avatar_url": "https://avatars.githubusercontent.com/u/140613896?v=4", "profile": "https://github.com/AbiPrescott", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "skyminelabs", "name": "skyminelabs", "avatar_url": "https://avatars.githubusercontent.com/u/57817726?v=4", "profile": "https://github.com/skyminelabs", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "sogobanwo", "name": "sogobanwo", "avatar_url": "https://avatars.githubusercontent.com/u/99739569?v=4", "profile": "https://olorunsogo-portfolio-sand.vercel.app/", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "liuye20240304", "name": "liuye20240304", "avatar_url": "https://avatars.githubusercontent.com/u/162123251?v=4", "profile": "https://github.com/liuye20240304", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "zk-Lumi", "name": "Daniel Lumi", "avatar_url": "https://avatars.githubusercontent.com/u/149794418?v=4", "profile": "https://zksync.io", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "ZakGriffith", "name": "Zak G", "avatar_url": "https://avatars.githubusercontent.com/u/12072395?v=4", "profile": "https://github.com/ZakGriffith", - "contributions": [ - "tutorial" - ] + "contributions": ["tutorial"] }, { "login": "barskhianfannie", "name": "Fannie Barskhian", "avatar_url": "https://avatars.githubusercontent.com/u/42990794?v=4", "profile": "http://fanniebarskhian.com", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "ksdumont", "name": "Keith Dumont", "avatar_url": "https://avatars.githubusercontent.com/u/51958351?v=4", "profile": "https://github.com/ksdumont", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ecabras", "name": "ecabras", "avatar_url": "https://avatars.githubusercontent.com/u/126670074?v=4", "profile": "https://github.com/ecabras", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "raxhvl", "name": "rahul", "avatar_url": "https://avatars.githubusercontent.com/u/10168946?v=4", "profile": "https://github.com/raxhvl", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "professorabhay", "name": "Abhay Gupta ", "avatar_url": "https://avatars.githubusercontent.com/u/76243309?v=4", "profile": "https://abhayporwals.live/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "somethingstup", "name": "somethingstup", "avatar_url": "https://avatars.githubusercontent.com/u/166286712?v=4", "profile": "https://github.com/somethingstup", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "woxjro", "name": "woxjro", "avatar_url": "https://avatars.githubusercontent.com/u/63214188?v=4", "profile": "https://github.com/woxjro", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "SeanXLChen", "name": "bambooskySean", "avatar_url": "https://avatars.githubusercontent.com/u/78134555?v=4", "profile": "https://github.com/SeanXLChen", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "VikVM", "name": "VikVM", "avatar_url": "https://avatars.githubusercontent.com/u/60881781?v=4", "profile": "https://github.com/VikVM", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "checkomkar", "name": "Omkar Kamale", "avatar_url": "https://avatars.githubusercontent.com/u/8987373?v=4", "profile": "https://github.com/checkomkar", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "mingoing", "name": "Mingo", "avatar_url": "https://avatars.githubusercontent.com/u/344175?v=4", "profile": "https://github.com/mingoing", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "zkVlad", "name": "zkVlad", "avatar_url": "https://avatars.githubusercontent.com/u/125317045?v=4", "profile": "https://github.com/zkVlad", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "yunseonna", "name": "yunseon na", "avatar_url": "https://avatars.githubusercontent.com/u/148749864?v=4", "profile": "https://github.com/yunseonna", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "alex1092", "name": "Alex", "avatar_url": "https://avatars.githubusercontent.com/u/59183749?v=4", "profile": "https://github.com/alex1092", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "kyndrawynne", "name": "kyndrawynne", "avatar_url": "https://avatars.githubusercontent.com/u/108100622?v=4", "profile": "https://github.com/kyndrawynne", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "stolab", "name": "stolab", "avatar_url": "https://avatars.githubusercontent.com/u/144235139?v=4", "profile": "https://github.com/stolab", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jacobjelen", "name": "jacobjelen", "avatar_url": "https://avatars.githubusercontent.com/u/6750124?v=4", "profile": "http://www.jacobjelen.com", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "Dennayz", "name": "Dennis Zhang", "avatar_url": "https://avatars.githubusercontent.com/u/58843979?v=4", "profile": "https://github.com/Dennayz", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "JanetMo", "name": "Marlene Marz", "avatar_url": "https://avatars.githubusercontent.com/u/42071757?v=4", "profile": "https://github.com/JanetMo", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "mahnunchik", "name": "Evgeny", "avatar_url": "https://avatars.githubusercontent.com/u/780935?v=4", "profile": "https://github.com/mahnunchik", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "SnehalSrivastava27", "name": "SnehalSrivastava27", "avatar_url": "https://avatars.githubusercontent.com/u/118104081?v=4", "profile": "https://github.com/SnehalSrivastava27", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "wrexgem", "name": "wrexgem", "avatar_url": "https://avatars.githubusercontent.com/u/134736543?v=4", "profile": "https://github.com/wrexgem", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "cd-sigma", "name": "ciphernova", "avatar_url": "https://avatars.githubusercontent.com/u/119534349?v=4", "profile": "https://github.com/cd-sigma", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "CodeMongerrr", "name": "Aditya Joshi", "avatar_url": "https://avatars.githubusercontent.com/u/99281767?v=4", "profile": "https://github.com/CodeMongerrr", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "Khemmie-Ray", "name": "Atoyebi Oluwakemi", "avatar_url": "https://avatars.githubusercontent.com/u/89976006?v=4", "profile": "https://github.com/Khemmie-Ray", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "pglekshmi", "name": "pglekshmi", "avatar_url": "https://avatars.githubusercontent.com/u/107828565?v=4", "profile": "https://github.com/pglekshmi", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "abonnaudet-ledger", "name": "abonnaudet-ledger", "avatar_url": "https://avatars.githubusercontent.com/u/71646516?v=4", "profile": "https://github.com/abonnaudet-ledger", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "JacobSharples", "name": "Jacob Sharples", "avatar_url": "https://avatars.githubusercontent.com/u/45126111?v=4", "profile": "https://github.com/JacobSharples", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "omahs", "name": "omahs", "avatar_url": "https://avatars.githubusercontent.com/u/73983677?v=4", "profile": "https://github.com/omahs", - "contributions": [ - "translation", - "maintenance" - ] + "contributions": ["translation", "maintenance"] }, { "login": "Shiva-Sai-ssb", "name": "Shiva Sai", "avatar_url": "https://avatars.githubusercontent.com/u/112751524?v=4", "profile": "https://github.com/Shiva-Sai-ssb", - "contributions": [ - "bug", - "maintenance", - "content" - ] + "contributions": ["bug", "maintenance", "content"] }, { "login": "saurabhburade", "name": "Saurabh Burade", "avatar_url": "https://avatars.githubusercontent.com/u/39492927?v=4", "profile": "https://bsaurabh.xyz/", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "yorkerhodes3", "name": "Yorke E. Rhodes III", "avatar_url": "https://avatars.githubusercontent.com/u/17415717?v=4", "profile": "https://github.com/yorkerhodes3", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "sandeepV2", "name": "Sandeep Belagavi", "avatar_url": "https://avatars.githubusercontent.com/u/52043035?v=4", "profile": "https://github.com/sandeepV2", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "codingmickey", "name": "Kartik Jolapara", "avatar_url": "https://avatars.githubusercontent.com/u/42518907?v=4", "profile": "https://github.com/codingmickey", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Ekam-Bitt", "name": "Ekam Bitt", "avatar_url": "https://avatars.githubusercontent.com/u/74407205?v=4", "profile": "https://ekam-bitt.github.io", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "iankressin", "name": "Ian K. Guimarães", "avatar_url": "https://avatars.githubusercontent.com/u/29215044?v=4", "profile": "http://iankguimaraes.com", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "jncrabb", "name": "jncrabb", "avatar_url": "https://avatars.githubusercontent.com/u/27811684?v=4", "profile": "https://github.com/jncrabb", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "bibo7086", "name": "Saidu Sokoto", "avatar_url": "https://avatars.githubusercontent.com/u/24389200?v=4", "profile": "https://github.com/bibo7086", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "krishchvn", "name": "Krishnakumar Chavan", "avatar_url": "https://avatars.githubusercontent.com/u/58606754?v=4", "profile": "https://github.com/krishchvn", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "0xV4L3NT1N3", "name": "0xV4L3NT1N3", "avatar_url": "https://avatars.githubusercontent.com/u/33112835?v=4", "profile": "https://github.com/0xV4L3NT1N3", - "contributions": [ - "tool" - ] + "contributions": ["tool"] }, { "login": "JoshDavisLight", "name": "Josh Davis", "avatar_url": "https://avatars.githubusercontent.com/u/82784104?v=4", "profile": "https://github.com/JoshDavisLight", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "tr1sm0s1n", "name": "Mobin Mohanan", "avatar_url": "https://avatars.githubusercontent.com/u/47410557?v=4", "profile": "https://github.com/tr1sm0s1n", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Baystef", "name": "Adebayo Steve", "avatar_url": "https://avatars.githubusercontent.com/u/36106823?v=4", "profile": "https://github.com/Baystef", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "sanjanaynvsdl", "name": "Sanjana", "avatar_url": "https://avatars.githubusercontent.com/u/142678317?v=4", "profile": "https://github.com/sanjanaynvsdl", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "zaryab2000", "name": "Zaryab", "avatar_url": "https://avatars.githubusercontent.com/u/42082608?v=4", "profile": "https://www.zaryabs.com/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "yannggg", "name": "Yann Gerardi", "avatar_url": "https://avatars.githubusercontent.com/u/29145014?v=4", "profile": "https://www.mtpelerin.com", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "panditdhamdhere", "name": "Pandit Dhamdhere", "avatar_url": "https://avatars.githubusercontent.com/u/85685981?v=4", "profile": "https://github.com/panditdhamdhere", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ferreiramarcelo", "name": "M@rC3L0", "avatar_url": "https://avatars.githubusercontent.com/u/11818521?v=4", "profile": "http://linkedin.com/in/fmarcelo", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "Refdeveloper", "name": "DevOFtoken", "avatar_url": "https://avatars.githubusercontent.com/u/87125773?v=4", "profile": "https://github.com/Refdeveloper", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "vvvvvv1vvvvvv", "name": "vvvvvv1vvvvvv", "avatar_url": "https://avatars.githubusercontent.com/u/86296331?v=4", "profile": "https://github.com/vvvvvv1vvvvvv", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "abraj", "name": "Abhishek Raj", "avatar_url": "https://avatars.githubusercontent.com/u/8170980?v=4", "profile": "https://raj.me", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "p1kalys", "name": "Pavan Emani", "avatar_url": "https://avatars.githubusercontent.com/u/85685112?v=4", "profile": "https://github.com/p1kalys", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "makoshan", "name": "Mako Shan", "avatar_url": "https://avatars.githubusercontent.com/u/7024451?v=4", "profile": "https://v2eth.com/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "cratiu222", "name": "Christina", "avatar_url": "https://avatars.githubusercontent.com/u/156356273?v=4", "profile": "https://github.com/cratiu222", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "nipunh", "name": "Nipun Hedaoo", "avatar_url": "https://avatars.githubusercontent.com/u/26524611?v=4", "profile": "https://github.com/nipunh", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "chenjiali-april", "name": "april", "avatar_url": "https://avatars.githubusercontent.com/u/132745538?v=4", "profile": "https://github.com/chenjiali-april", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "r4f4ss", "name": "rafaelss", "avatar_url": "https://avatars.githubusercontent.com/u/5679073?v=4", "profile": "https://github.com/r4f4ss", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "preetjdp", "name": "Preet Parekh", "avatar_url": "https://avatars.githubusercontent.com/u/27439197?v=4", "profile": "https://preetjdp.dev/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "ludamad", "name": "ludamad", "avatar_url": "https://avatars.githubusercontent.com/u/163993?v=4", "profile": "https://www.linkedin.com/in/adamdomurad/", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "MaryNfs", "name": "MaryNfs", "avatar_url": "https://avatars.githubusercontent.com/u/52598322?v=4", "profile": "https://github.com/MaryNfs", - "contributions": [ - "content", - "bug" - ] + "contributions": ["content", "bug"] }, { "login": "Signor1", "name": "Signor Dev", "avatar_url": "https://avatars.githubusercontent.com/u/94352660?v=4", "profile": "https://signor.vercel.app/", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "KatrixReloaded", "name": "Kartikeya Sureka", "avatar_url": "https://avatars.githubusercontent.com/u/68804269?v=4", "profile": "https://github.com/KatrixReloaded", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "Piyush-Tilokani", "name": "Piyush Tilokani", "avatar_url": "https://avatars.githubusercontent.com/u/112542519?v=4", "profile": "https://github.com/Piyush-Tilokani", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jacobourar", "name": "Jacobo Uribe", "avatar_url": "https://avatars.githubusercontent.com/u/109108267?v=4", "profile": "https://github.com/jacobourar", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "Xcertik-Realist", "name": "NilFoundation", "avatar_url": "https://avatars.githubusercontent.com/u/63165931?v=4", "profile": "https://github.com/Xcertik-Realist", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "gconnect", "name": "Glory Agatevure", "avatar_url": "https://avatars.githubusercontent.com/u/23031920?v=4", "profile": "https://github.com/gconnect", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "emmanuellar", "name": "Amarachi Johnson-Ubah", "avatar_url": "https://avatars.githubusercontent.com/u/41474439?v=4", "profile": "http://amarachijohnson.com", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "sumitvekariya", "name": "Sumit Vekariya", "avatar_url": "https://avatars.githubusercontent.com/u/20764957?v=4", "profile": "http://sumitvekariya.surge.sh", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "rafagomes", "name": "Rafa Gomes", "avatar_url": "https://avatars.githubusercontent.com/u/565337?v=4", "profile": "https://github.com/rafagomes", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "ddannehh", "name": "ddannehh", "avatar_url": "https://avatars.githubusercontent.com/u/109203827?v=4", "profile": "https://github.com/ddannehh", - "contributions": [ - "design" - ] + "contributions": ["design"] }, { "login": "jkylling", "name": "Jonas Irgens Kylling", "avatar_url": "https://avatars.githubusercontent.com/u/6781076?v=4", "profile": "https://github.com/jkylling", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "CremaFR", "name": "Thomas Brillard", "avatar_url": "https://avatars.githubusercontent.com/u/5360522?v=4", "profile": "https://github.com/CremaFR", - "contributions": [ - "doc" - ] + "contributions": ["doc"] }, { "login": "YakshitAgarwal", "name": "Yakshit Agarwal", "avatar_url": "https://avatars.githubusercontent.com/u/153830716?v=4", "profile": "https://github.com/YakshitAgarwal", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "mseidlx", "name": "Matthias Seidl", "avatar_url": "https://avatars.githubusercontent.com/u/32496674?v=4", - "profile": "https://growthepie.xyz", - "contributions": [ - "code" - ] + "profile": "https://growthepie.com", + "contributions": ["code"] }, { "login": "JoeChenJ", "name": "JoeChenJ", "avatar_url": "https://avatars.githubusercontent.com/u/171761102?v=4", "profile": "https://github.com/JoeChenJ", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "itzVarsha", "name": "Varshitha", "avatar_url": "https://avatars.githubusercontent.com/u/138134029?v=4", "profile": "https://github.com/itzVarsha", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "alexandriaroberts", "name": "Alexandria Roberts", "avatar_url": "https://avatars.githubusercontent.com/u/31341867?v=4", "profile": "https://alexandriaroberts.dev/", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "colinlyguo", "name": "colin", "avatar_url": "https://avatars.githubusercontent.com/u/102356659?v=4", "profile": "https://github.com/colinlyguo", - "contributions": [ - "content" - ] + "contributions": ["content"] }, { "login": "jenish-thapa", "name": "Jenish Thapa", "avatar_url": "https://avatars.githubusercontent.com/u/141203631?v=4", "profile": "https://github.com/jenish-thapa", - "contributions": [ - "ideas" - ] + "contributions": ["ideas"] }, { "login": "iusx", "name": "iusx", "avatar_url": "https://avatars.githubusercontent.com/u/57232813?v=4", "profile": "https://jiangxue.org/~ritsu", - "contributions": [ - "code" - ] + "contributions": ["code"] }, { "login": "JJOptimist", "name": "JJOptimist", "avatar_url": "https://avatars.githubusercontent.com/u/86833563?v=4", "profile": "https://github.com/JJOptimist", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "hotequil", "name": "João Paulo Hotequil", "avatar_url": "https://avatars.githubusercontent.com/u/46814712?v=4", "profile": "https://github.com/hotequil", - "contributions": [ - "code", - "translation" - ] + "contributions": ["code", "translation"] }, { "login": "microHoffman", "name": "microHoffman", "avatar_url": "https://avatars.githubusercontent.com/u/61500778?v=4", "profile": "http://pwn.xyz", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "smithrashell", "name": "Rashell Smith", "avatar_url": "https://avatars.githubusercontent.com/u/36465023?v=4", "profile": "https://github.com/smithrashell", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "aolson078", "name": "Alex Olson", "avatar_url": "https://avatars.githubusercontent.com/u/69769089?v=4", "profile": "https://github.com/aolson078", - "contributions": [ - "bug" - ] + "contributions": ["bug"] }, { "login": "adminsuci", "name": "SUCI - Blockchain Hub Team", "avatar_url": "https://avatars.githubusercontent.com/u/155696196?v=4", "profile": "https://www.suci.io/", - "contributions": [ - "maintenance" - ] + "contributions": ["maintenance"] }, { "login": "Nik-EpicWeb3", diff --git a/.github/workflows/chromatic.yml b/.github/workflows/chromatic.yml index ec470ea386a..f9bf3d8fba7 100644 --- a/.github/workflows/chromatic.yml +++ b/.github/workflows/chromatic.yml @@ -6,18 +6,8 @@ name: Chromatic Publish and Testing # Event for the workflow on: pull_request: - types: - - opened - - synchronize - - ready_for_review - paths: - # Only run on file changes in any of these paths - - "src/components/**/*" - - "src/pages/**/*" - - "src/layouts/**/*" - - ".storybook/**/*" - - "tailwind.config.ts" - - "src/styles/**/*" + branches: [master, staging, "test/**"] + types: [opened, synchronize, ready_for_review] # List of jobs jobs: @@ -26,28 +16,36 @@ jobs: runs-on: ubuntu-latest # Job steps steps: - # 👇 Version 2 of the action - name: Checkout repo - uses: actions/checkout@v2 + uses: actions/checkout@v4 with: - fetch-depth: 0 # 👈 Required to retrieve git history + fetch-depth: 0 + # Tells the checkout which commit hash to reference + ref: ${{ github.event.pull_request.head.ref }} + env: + CHROMATIC_BRANCH: ${{ github.event.pull_request.head.ref || github.ref_name }} + CHROMATIC_SHA: ${{ github.event.pull_request.head.sha || github.ref }} + CHROMATIC_SLUG: ${{ github.repository }} + - name: Setup pnpm uses: pnpm/action-setup@v2 with: version: 8 + - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: 20 - cache: 'pnpm' + cache: "pnpm" + - name: Install deps - # 👇 Install dependencies with the same package manager used in the project (replace it as needed), e.g. yarn, npm, pnpm run: pnpm install + - name: Publish to Chromatic - # 👇 Adds Chromatic as a step in the workflow uses: chromaui/action@v1 - # Options required for Chromatic's GitHub Action with: projectToken: fee8e66c9916 # 👇 Only fail if Storybook contains stories that error exitZeroOnChanges: true + onlyChanged: true # enables TurboSnap + zip: true diff --git a/.github/workflows/claude.yml b/.github/workflows/claude.yml new file mode 100644 index 00000000000..afd22a73d67 --- /dev/null +++ b/.github/workflows/claude.yml @@ -0,0 +1,52 @@ +name: Claude PR Assistant + +on: + issue_comment: + types: [created] + pull_request_review_comment: + types: [created] + issues: + types: [opened, assigned] + pull_request_review: + types: [submitted] + +jobs: + claude-code-action: + if: | + ( + github.event_name == 'issue_comment' && + contains(github.event.comment.body, '@claude') && + contains('minimalsm,pettinarip,wackerow,corwintines,nloureiro,konopkja', github.event.comment.user.login) + ) || + ( + github.event_name == 'pull_request_review_comment' && + contains(github.event.comment.body, '@claude') && + contains('minimalsm,pettinarip,wackerow,corwintines,nloureiro,konopkja', github.event.comment.user.login) + ) || + ( + github.event_name == 'pull_request_review' && + contains(github.event.review.body, '@claude') && + contains('minimalsm,pettinarip,wackerow,corwintines,nloureiro,konopkja', github.event.review.user.login) + ) || + ( + github.event_name == 'issues' && + contains(github.event.issue.body, '@claude') && + contains('minimalsm,pettinarip,wackerow,corwintines,nloureiro,konopkja', github.event.issue.user.login) + ) + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: read + issues: read + id-token: write + steps: + - name: Checkout repository + uses: actions/checkout@v4 + with: + fetch-depth: 1 + + - name: Run Claude PR Action + uses: anthropics/claude-code-action@beta + with: + anthropic_api_key: ${{ secrets.ANTHROPIC_API_KEY }} + timeout_minutes: "60" \ No newline at end of file diff --git a/.github/workflows/crowdin-ci.yml b/.github/workflows/crowdin-ci.yml index 7d8a7c81570..2ee2ecdb03c 100644 --- a/.github/workflows/crowdin-ci.yml +++ b/.github/workflows/crowdin-ci.yml @@ -18,16 +18,22 @@ jobs: - name: Check out code uses: actions/checkout@v3 + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 + cache: 'pnpm' - name: Install dependencies - run: yarn install + run: pnpm install - name: Install ts-node - run: yarn global add ts-node + run: pnpm add -g ts-node - name: Set up git run: | diff --git a/.github/workflows/generate-review-report.yml b/.github/workflows/generate-review-report.yml index fb9b435f753..1281b51d46d 100644 --- a/.github/workflows/generate-review-report.yml +++ b/.github/workflows/generate-review-report.yml @@ -10,16 +10,22 @@ jobs: - name: Check out code uses: actions/checkout@v3 + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 + cache: 'pnpm' - name: Install dependencies - run: yarn install + run: pnpm install - name: Install ts-node - run: yarn global add ts-node + run: pnpm add -g ts-node - name: Run script run: npx ts-node -O '{"module":"commonjs"}' ./src/scripts/crowdin/reports/generateReviewReport.ts diff --git a/.github/workflows/get-crowdin-contributors.yml b/.github/workflows/get-crowdin-contributors.yml index 57a051ab06a..d6cbe39a87a 100644 --- a/.github/workflows/get-crowdin-contributors.yml +++ b/.github/workflows/get-crowdin-contributors.yml @@ -12,16 +12,22 @@ jobs: - name: Check out code uses: actions/checkout@v3 + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 + cache: 'pnpm' - name: Install dependencies - run: yarn install + run: pnpm install - name: Install ts-node - run: yarn global add ts-node + run: pnpm add -g ts-node - name: Set up git run: | diff --git a/.github/workflows/get-leaderboard-reports.yml b/.github/workflows/get-leaderboard-reports.yml index 4b1dc1c292d..55969e9778d 100644 --- a/.github/workflows/get-leaderboard-reports.yml +++ b/.github/workflows/get-leaderboard-reports.yml @@ -12,16 +12,22 @@ jobs: - name: Check out code uses: actions/checkout@v3 + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 + cache: 'pnpm' - name: Install dependencies - run: yarn install + run: pnpm install - name: Install ts-node - run: yarn global add ts-node + run: pnpm add -g ts-node - name: Set up git run: | diff --git a/.github/workflows/get-translation-progress.yml b/.github/workflows/get-translation-progress.yml index f843c616ab3..95fbde97aef 100644 --- a/.github/workflows/get-translation-progress.yml +++ b/.github/workflows/get-translation-progress.yml @@ -12,16 +12,22 @@ jobs: - name: Check out code uses: actions/checkout@v3 + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 + cache: 'pnpm' - name: Install dependencies - run: yarn install + run: pnpm install - name: Install ts-node - run: yarn global add ts-node + run: pnpm add -g ts-node - name: Set up git run: | diff --git a/.github/workflows/import-community-events.yml b/.github/workflows/import-community-events.yml index ab555af9051..4d421423ee5 100644 --- a/.github/workflows/import-community-events.yml +++ b/.github/workflows/import-community-events.yml @@ -12,13 +12,19 @@ jobs: - name: Check out code uses: actions/checkout@master + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: 18 + node-version: 20 + cache: 'pnpm' - name: Install dependencies - run: yarn install + run: pnpm install - name: Set up git run: | @@ -37,7 +43,7 @@ jobs: git checkout -b "automated-update-${{ env.TIMESTAMP }}" origin/dev - name: Run script - run: yarn events-import + run: pnpm events-import env: GOOGLE_API_KEY: ${{ secrets.GOOGLE_API_KEY }} diff --git a/.github/workflows/update-chains.yml b/.github/workflows/update-chains.yml index e512074de01..db6b45e2d19 100644 --- a/.github/workflows/update-chains.yml +++ b/.github/workflows/update-chains.yml @@ -13,16 +13,22 @@ jobs: - name: Checkout repository uses: actions/checkout@v4 + - name: Setup pnpm + uses: pnpm/action-setup@v2 + with: + version: 8 + - name: Set up Node.js uses: actions/setup-node@v3 with: - node-version: '20' + node-version: 20 + cache: 'pnpm' - name: Install dependencies - run: yarn install + run: pnpm install - name: Install ts-node - run: yarn global add ts-node + run: pnpm add -g ts-node - name: Update chains data run: npx ts-node -O '{"module":"commonjs"}' ./src/scripts/update-chains.ts diff --git a/.storybook/main.ts b/.storybook/main.ts index cfa9176163a..7fc65a2c201 100644 --- a/.storybook/main.ts +++ b/.storybook/main.ts @@ -77,5 +77,8 @@ const config: StorybookConfig = { reactDocgen: "react-docgen-typescript", }, + features: { + experimentalRSC: true, + }, } export default config diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 00000000000..6cca6012642 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,199 @@ +# CLAUDE.md - Ethereum.org Website + +## Project Overview + +This is the official Ethereum.org website - a Next.js application that serves as the primary educational and community hub for Ethereum. The site is built with modern web technologies and focuses on accessibility, internationalization, and performance. + +## Technology Stack + +### Core Framework + +- **Next.js 14.2+** - React framework with App Router +- **React 18** - UI library +- **TypeScript 5.5+** - Type safety and development experience +- **Tailwind CSS 3.4+** - Utility-first CSS framework + +### Key Dependencies + +- **next-intl 3.26+** - Internationalization (i18n) with 60+ languages +- **next-mdx-remote 5.0+** - MDX content processing +- **Framer Motion 10.13+** - Animations and transitions +- **Radix UI** - Accessible component primitives +- **ShadCN/UI** - Component library built on Radix UI +- **Recharts** - Data visualization +- **Viem/Wagmi** - Ethereum blockchain integration + +### Development & Testing + +- **Storybook 8.6+** - Component development and testing +- **Chromatic** - Visual regression testing +- **ESLint** - Code linting with custom rules +- **Prettier** - Code formatting +- **Husky** - Git hooks +- **PNPM** - Package manager + +## Project Structure + +- **app/** - Next.js App Router pages + - **[locale]/** - Internationalized routes +- **src/** + - **components/** - React components + - **ui/** - Design system components + - **icons/** - SVG icon components + - **data/** - Static data and configurations + - **hooks/** - Custom React hooks + - **i18n/** - Internationalization config + - **intl/** - Translation files (60+ languages) + - **layouts/** - Page layout components + - **lib/** - Utility functions and types + - **constants.ts** - App constants + - **types.ts** - TypeScript type definitions + - **utils/** - Utility functions + - **styles/** - Global styles and design tokens +- **public/** - Static assets + - **content/** - Markdown content files + - **images/** - Image assets +- **docs/** - Development documentation + +## Code Conventions + +### File Naming + +- **Components**: PascalCase (e.g., `ActionCard.tsx`) +- **Utilities**: camelCase (e.g., `cn.ts`, `relativePath.ts`) +- **Pages**: kebab-case following Next.js conventions +- **Assets**: kebab-case (e.g., `eth-logo.png`) + +### TypeScript Patterns + +- Use `interface` for object shapes, `type` for unions/intersections +- Prefer explicit typing over `any` (ESLint enforces `fixToUnknown`) +- Use generic constraints for reusable components +- Export types from dedicated files in `@/lib/types` + +### Styling Conventions + +- **Primary approach**: Tailwind CSS utility classes +- **Component variants**: Use `class-variance-authority` (cva) +- **Dynamic classes**: Use `cn()` utility (clsx + tailwind-merge) +- **Custom properties**: CSS variables in `:root` for theme values +- **Responsive design**: Mobile-first approach + +## Development Workflows + +### Available Scripts + +```bash +# Development +pnpm dev # Start development server +pnpm build # Build for production +pnpm start # Start production server + +# Code Quality +pnpm lint # Run ESLint +pnpm lint:fix # Fix ESLint issues +pnpm format # Format with Prettier + +# Storybook +pnpm storybook # Start Storybook dev server +pnpm build-storybook # Build Storybook +pnpm chromatic # Run Chromatic visual tests + +# Content Management +pnpm crowdin-import # Import translations from Crowdin +pnpm markdown-checker # Validate markdown content +pnpm events-import # Import community events +``` + +### Testing Strategy + +- **Visual Testing**: Storybook + Chromatic for component regression +- **Type Safety**: TypeScript strict mode enabled +- **Linting**: ESLint with custom rules for imports and TypeScript +- **Manual Testing**: No automated unit tests - relies on type safety and visual testing + +## Content Management + +### Internationalization + +- **60+ languages** supported via Crowdin +- **RTL support** for Arabic, Hebrew, etc. +- Translation files (JSON format) in `src/intl/[locale]/` +- Content translations managed through Crowdin platform + +### Markdown Content + +- Educational content stored in `public/content/` +- Processed with `next-mdx-remote` +- Custom MDX components for rich content +- Automatic table of contents generation + +### Asset Management + +- Images optimized with Next.js Image component +- SVGs loaded as React components via `@svgr/webpack` +- Static assets served from `public/` +- Placeholder generation for images + +## SEO & Meta + +- Sitemap generation with `next-sitemap` +- Meta tags and Open Graph optimization +- Structured data for search engines +- Security headers (X-Frame-Options: DENY) + +## Development Guidelines + +### When Working on Features + +1. **Check existing patterns** - Look at similar components first +2. **Prioritize Server Components** - Use App Router and Server Components when possible +3. **Follow import order** - ESLint will enforce, but be proactive +4. **Use TypeScript strictly** - No `any` types, prefer `unknown` +5. **Test in Storybook** - Create stories for new components (filename pattern: `.stories.tsx`) +6. **Consider i18n** - All user-facing text should be translatable (use `getTranslations` and `getLocale`) +7. **Mobile-first** - Design for mobile, enhance for desktop +8. **Accessibility** - Use Radix primitives, semantic HTML + +### Component Development + +1. Create component in appropriate `src/components/` subdirectory + - Use `src/components/ui` for shadcn components or pure UI components +2. Add TypeScript types and proper props interface +3. Implement with proper forwardRef if needed +4. Add Storybook story in same directory +5. Export from appropriate index file +6. Update documentation if adding new patterns + +### Content Updates + +1. Markdown files go in `public/content/` +2. Images in `public/images/` with descriptive names +3. Translation strings in appropriate `src/intl/` JSON files +4. Data files in `src/data/` with TypeScript types + +## Key Dependencies to Know + +### UI & Styling + +- `@radix-ui/*` - Accessible component primitives +- `tailwind-variants` - Component variant patterns +- `framer-motion` - Animation library +- `react-icons` - Icon library + +### Content & Data + +- `gray-matter` - Frontmatter parsing +- `recharts` - Data visualization + +### Ethereum Integration + +- `viem` - Ethereum library +- `wagmi` - React hooks for Ethereum +- `@rainbow-me/rainbowkit` - Wallet connection + +## Deployment + +- **Platform**: Netlify (config in `netlify.toml`) +- **Next.js Integration**: Uses `@netlify/plugin-nextjs` for seamless Netlify and Next.js compatibility +- **Monitoring**: Matomo analytics integration diff --git a/README.md b/README.md index 28065e384b9..3af3c8585d6 100644 --- a/README.md +++ b/README.md @@ -1975,7 +1975,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d Yakshit Agarwal
Yakshit Agarwal

🖋 - Matthias Seidl
Matthias Seidl

💻 + Matthias Seidl
Matthias Seidl

💻 JoeChenJ
JoeChenJ

🖋 Varshitha
Varshitha

🚧 Alexandria Roberts
Alexandria Roberts

💻 @@ -1992,6 +1992,10 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d SUCI - Blockchain Hub Team
SUCI - Blockchain Hub Team

🚧 Nik-EpicWeb3
Nik-EpicWeb3

📋 + + kichong
kichong

🖋 + FT
FT

🖋 + diff --git a/app/[locale]/get-eth/_components/get-eth.tsx b/app/[locale]/get-eth/_components/get-eth.tsx deleted file mode 100644 index a2a1bfa5472..00000000000 --- a/app/[locale]/get-eth/_components/get-eth.tsx +++ /dev/null @@ -1,372 +0,0 @@ -"use client" - -import type { ReactNode } from "react" - -import type { ChildOnlyProp, PageWithContributorsProps } from "@/lib/types" - -import CalloutBanner from "@/components/CalloutBanner" -import CardList, { - type CardProps as CardListCardProps, -} from "@/components/CardList" -import CentralizedExchanges from "@/components/CentralizedExchanges" -import Emoji from "@/components/Emoji" -import EthPriceCard from "@/components/EthPriceCard" -import FeedbackCard from "@/components/FeedbackCard" -import FileContributors from "@/components/FileContributors" -import { Image } from "@/components/Image" -import MainArticle from "@/components/MainArticle" -import Translation from "@/components/Translation" -import { Alert, AlertContent, AlertDescription } from "@/components/ui/alert" -import { ButtonLink } from "@/components/ui/buttons/Button" -import { - Card, - CardContent, - CardFooter, - CardHeader, - CardTitle, -} from "@/components/ui/card" -import { Divider } from "@/components/ui/divider" -import { Stack } from "@/components/ui/flex" -import InlineLink from "@/components/ui/Link" - -import { cn } from "@/lib/utils/cn" -import { trackCustomEvent } from "@/lib/utils/matomo" - -import { useBreakpointValue } from "@/hooks/useBreakpointValue" -import { useTranslation } from "@/hooks/useTranslation" -import uniswap from "@/public/images/dapps/uni.png" -import dapps from "@/public/images/doge-computer.png" -import bancor from "@/public/images/exchanges/bancor.png" -import hero from "@/public/images/get-eth.png" -import wallet from "@/public/images/wallet.png" - -type CardProps = { - children: ReactNode - emoji: string - title: ReactNode - description: ReactNode -} - -const StyledCard = ({ children, emoji, title, description }: CardProps) => ( - - - - {title} - - -

{description}

-
- {children} -
-) - -const TwoColumnContent = (props: ChildOnlyProp) => ( -
-) - -type Props = PageWithContributorsProps & { - lastDataUpdateDate: string -} - -const GetEthPage = ({ - lastDataUpdateDate, - contributors, - lastEditLocaleTimestamp, -}: Props) => { - const { t } = useTranslation("page-get-eth") - - const walletImageWidth = useBreakpointValue({ - base: "full", - sm: "60%", - md: "50%", - }) - - const tokenSwaps: CardListCardProps[] = [ - { - title: "Uniswap", - link: "https://app.uniswap.org/#/swap", - image: uniswap, - alt: "", - }, - { - title: "Bancor", - link: "https://www.carbondefi.xyz/", - image: bancor, - alt: "", - }, - ] - - const safetyArticles: CardListCardProps[] = [ - { - title: t("page-get-eth-article-protecting-yourself"), - link: "https://support.mycrypto.com/staying-safe/protecting-yourself-and-your-funds", - description: t("page-get-eth-article-protecting-yourself-desc"), - }, - { - title: t("page-get-eth-article-keeping-crypto-safe"), - link: "https://blog.coinbase.com/the-keys-to-keeping-your-crypto-safe-96d497cce6cf", - description: t("page-get-eth-article-keeping-crypto-safe-desc"), - }, - ] - - return ( - - -
- {t("page-get-eth-hero-image-alt")} -
-

- {t("page-get-eth-where-to-buy-title")} -

-

- {t("page-get-eth-where-to-buy-desc")} -

-
- - - trackCustomEvent({ - eventCategory: "Search by country button", - eventAction: "click", - eventName: "search_by_country", - }) - } - > - {t("page-get-eth-search-by-country")} - -
-
- -
- - - {t("page-get-eth-cex-link-desc")} - - - - - {t("page-get-eth-daos-link-desc")} - - - - - {t("page-get-eth-wallets-link")} - - - - } - > - {t("page-get-eth-try-dex")} - - - - {t("page-get-eth-wallets-link")} - - - - - {t("page-get-eth-staking-link-desc")} - - -
- - -

- - {t("common:listing-policy-disclaimer")}{" "} - - {t("listing-policy-raise-issue-link")} - - -

- - - - - {t("page-get-eth-new-to-eth")}{" "} - - {t("page-get-eth-whats-eth-link")} - - - - -
- -
- -
- - -

- {t("page-get-eth-dexs")} -

- - -

- {t("page-get-eth-what-are-DEX's")} -

-

{t("page-get-eth-dexs-desc")}

-

- {t("page-get-eth-dexs-desc-2")}{" "} - - {t("page-get-eth-smart-contract-link")} - -

-

{t("page-get-eth-dexs-desc-3")}

-

{t("page-get-eth-need-wallet")}

- - {t("page-get-eth-get-wallet-btn")} - - - - - - - - -
- - -

- {t("page-get-eth-other-cryptos")} -

-

{t("page-get-eth-swapping")}

- - - - - - - - -
-
-
- - - - -

- {t("page-get-eth-keep-it-safe")} -

- - - -

- {t("page-get-eth-community-safety")} -

- -
- - - -

{t("page-get-eth-description")}

-

{t("page-get-eth-security")}

-
- -

- {t("page-get-eth-protect-eth-in-wallet")} -

-

{t("page-get-eth-protect-eth-desc")}

- - {t("page-get-eth-your-address-wallet-link")} - -
- -

- {t("page-get-eth-your-address")} -

-

{t("page-get-eth-your-address-desc")}

-
-

- 0x0125e2478d69eXaMpLe81766fef5c120d30fb53f -

-

- {t("page-get-eth-do-not-copy")} -

-
-

{t("page-get-eth-your-address-desc-3")}

-
- -

- {t("page-get-eth-wallet-instructions")} -

-

{t("page-get-eth-wallet-instructions-lost")}

-
-
-
-
- - - - -
- - {t("page-get-eth-checkout-dapps-btn")} - -
-
- - - - -
-
- ) -} - -export default GetEthPage diff --git a/app/[locale]/get-eth/page.tsx b/app/[locale]/get-eth/page.tsx index 266e46d288a..9ed51123fc9 100644 --- a/app/[locale]/get-eth/page.tsx +++ b/app/[locale]/get-eth/page.tsx @@ -1,22 +1,97 @@ import { pick } from "lodash" +import dynamic from "next/dynamic" import { getMessages, getTranslations, setRequestLocale, } from "next-intl/server" +import type { ReactNode } from "react" +import type { ChildOnlyProp } from "@/lib/types" import type { CommitHistory, Lang } from "@/lib/types" +import CalloutBanner from "@/components/CalloutBanner" +import CardList, { + type CardProps as CardListCardProps, +} from "@/components/CardList" +import Emoji from "@/components/Emoji" +import EthPriceCard from "@/components/EthPriceCard" +import FeedbackCard from "@/components/FeedbackCard" +import FileContributors from "@/components/FileContributors" import I18nProvider from "@/components/I18nProvider" +import { Image } from "@/components/Image" +import MainArticle from "@/components/MainArticle" +import Translation from "@/components/Translation" +import { Alert, AlertContent, AlertDescription } from "@/components/ui/alert" +import { ButtonLink } from "@/components/ui/buttons/Button" +import { + Card, + CardContent, + CardFooter, + CardHeader, + CardTitle, +} from "@/components/ui/card" +import { Divider } from "@/components/ui/divider" +import { Stack } from "@/components/ui/flex" +import InlineLink from "@/components/ui/Link" +import { Skeleton } from "@/components/ui/skeleton" +import { cn } from "@/lib/utils/cn" import { getAppPageContributorInfo } from "@/lib/utils/contributors" import { getLastGitCommitDateByPath } from "@/lib/utils/gh" import { getMetadata } from "@/lib/utils/metadata" +import { screens } from "@/lib/utils/screen" import { getRequiredNamespacesForPage } from "@/lib/utils/translations" -import GetEthPage from "./_components/get-eth" - import { routing } from "@/i18n/routing" +import uniswap from "@/public/images/dapps/uni.png" +import dapps from "@/public/images/doge-computer.png" +import bancor from "@/public/images/exchanges/bancor.png" +import hero from "@/public/images/get-eth.png" +import wallet from "@/public/images/wallet.png" + +const CentralizedExchanges = dynamic( + () => import("@/components/CentralizedExchanges").then((mod) => mod.default), + { + ssr: false, + loading: () => ( +
+
+ + +
+ +
+ + +
+
+ ), + } +) + +type CardProps = { + children: ReactNode + emoji: string + title: ReactNode + description: ReactNode +} + +const StyledCard = ({ children, emoji, title, description }: CardProps) => ( + + + + {title} + + +

{description}

+
+ {children} +
+) +const TwoColumnContent = (props: ChildOnlyProp) => ( +
+) export default async function Page({ params, @@ -24,17 +99,46 @@ export default async function Page({ params: Promise<{ locale: Lang }> }) { const { locale } = await params + const t = await getTranslations({ locale, namespace: "page-get-eth" }) - setRequestLocale(locale) + const tokenSwaps: CardListCardProps[] = [ + { + title: "Uniswap", + link: "https://app.uniswap.org/#/swap", + image: uniswap, + alt: "", + }, + { + title: "Bancor", + link: "https://www.carbondefi.xyz/", + image: bancor, + alt: "", + }, + ] + + const safetyArticles: CardListCardProps[] = [ + { + title: t("page-get-eth-article-protecting-yourself"), + link: "https://support.mycrypto.com/staying-safe/protecting-yourself-and-your-funds", + description: t("page-get-eth-article-protecting-yourself-desc"), + }, + { + title: t("page-get-eth-article-keeping-crypto-safe"), + link: "https://blog.coinbase.com/the-keys-to-keeping-your-crypto-safe-96d497cce6cf", + description: t("page-get-eth-article-keeping-crypto-safe-desc"), + }, + ] const lastDataUpdateDate = getLastGitCommitDateByPath( "src/data/exchangesByCountry.ts" ) + setRequestLocale(locale) + // Get i18n messages const allMessages = await getMessages({ locale }) const requiredNamespaces = getRequiredNamespacesForPage("/get-eth") - const pickedMessages = pick(allMessages, requiredNamespaces) + const messages = pick(allMessages, requiredNamespaces) const commitHistoryCache: CommitHistory = {} const { contributors, lastEditLocaleTimestamp } = @@ -45,13 +149,269 @@ export default async function Page({ ) return ( - - - + + +
+ {t("page-get-eth-hero-image-alt")} +
+

+ {t("page-get-eth-where-to-buy-title")} +

+

+ {t("page-get-eth-where-to-buy-desc")} +

+
+ + + {t("page-get-eth-search-by-country")} + +
+
+ +
+ + + {t("page-get-eth-cex-link-desc")} + + + + + {t("page-get-eth-daos-link-desc")} + + + + + {t("page-get-eth-wallets-link")} + + + + } + > + {t("page-get-eth-try-dex")} + + + + {t("page-get-eth-wallets-link")} + + + + + {t("page-get-eth-staking-link-desc")} + + +
+ + +

+ + {t("common:listing-policy-disclaimer")}{" "} + + {t("listing-policy-raise-issue-link")} + + +

+ + + + + {t("page-get-eth-new-to-eth")}{" "} + + {t("page-get-eth-whats-eth-link")} + + + + +
+ +
+
+

{t("page-get-eth-exchanges-header")}

+

+ {t("page-get-eth-exchanges-intro")} +

+ + {/* CLIENT SIDE */} + + + +
+
+ + +

+ {t("page-get-eth-dexs")} +

+ + +

+ {t("page-get-eth-what-are-DEX's")} +

+

{t("page-get-eth-dexs-desc")}

+

+ {t("page-get-eth-dexs-desc-2")}{" "} + + {t("page-get-eth-smart-contract-link")} + +

+

{t("page-get-eth-dexs-desc-3")}

+

{t("page-get-eth-need-wallet")}

+ + {t("page-get-eth-get-wallet-btn")} + + + + + + + + +
+ + +

+ {t("page-get-eth-other-cryptos")} +

+

{t("page-get-eth-swapping")}

+ + + + + + + + +
+
+
+ + + + +

+ {t("page-get-eth-keep-it-safe")} +

+ + + +

+ {t("page-get-eth-community-safety")} +

+ +
+ + + +

{t("page-get-eth-description")}

+

{t("page-get-eth-security")}

+
+ +

+ {t("page-get-eth-protect-eth-in-wallet")} +

+

{t("page-get-eth-protect-eth-desc")}

+ + {t("page-get-eth-your-address-wallet-link")} + +
+ +

+ {t("page-get-eth-your-address")} +

+

{t("page-get-eth-your-address-desc")}

+
+

+ 0x0125e2478d69eXaMpLe81766fef5c120d30fb53f +

+

+ {t("page-get-eth-do-not-copy")} +

+
+

{t("page-get-eth-your-address-desc-3")}

+
+ +

+ {t("page-get-eth-wallet-instructions")} +

+

{t("page-get-eth-wallet-instructions-lost")}

+
+
+
+
+ + + + +
+ + {t("page-get-eth-checkout-dapps-btn")} + +
+
+ + + + +
+
) } diff --git a/app/[locale]/layer-2/networks/_components/networks.tsx b/app/[locale]/layer-2/networks/_components/networks.tsx index 0299dd1fea7..66de0628a8f 100644 --- a/app/[locale]/layer-2/networks/_components/networks.tsx +++ b/app/[locale]/layer-2/networks/_components/networks.tsx @@ -50,7 +50,7 @@ const Layer2Networks = ({ layer2Data, locale, mainnetData }) => { {t("page-layer-2-networks-more-advanced-link-1")} - + {t("page-layer-2-networks-more-advanced-link-2")}
diff --git a/app/[locale]/page.tsx b/app/[locale]/page.tsx index 6d727b71073..c1f5670555d 100644 --- a/app/[locale]/page.tsx +++ b/app/[locale]/page.tsx @@ -451,7 +451,7 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {

- +
{subHeroCTAs.map( @@ -543,7 +543,18 @@ const Page = async ({ params }: { params: Promise<{ locale: Lang }> }) => {

-
+
+ + {t("page-index-activity-action-primary")} + ( @@ -237,9 +237,9 @@ const DepositContractPage = () => { alt: "", }, { - title: "Etherscan", - link: `https://etherscan.io/address/${DEPOSIT_CONTRACT_ADDRESS}`, - image: etherscan, + title: "Blockscout", + link: `https://eth.blockscout.com/address/${DEPOSIT_CONTRACT_ADDRESS}`, + image: blockscout, alt: "", }, ] @@ -391,9 +391,9 @@ const DepositContractPage = () => { )} - {t("page-staking-deposit-contract-etherscan")} + {t("page-staking-deposit-contract-blockexplorer")} diff --git a/app/[locale]/utils.ts b/app/[locale]/utils.ts index bb5b608f49b..0e460245aef 100644 --- a/app/[locale]/utils.ts +++ b/app/[locale]/utils.ts @@ -110,13 +110,13 @@ export const getActivity = async ( }, { apiProvider: "growthepie", - apiUrl: "https://www.growthepie.xyz/fundamentals/transaction-costs", + apiUrl: "https://www.growthepie.com/fundamentals/transaction-costs", label: t("page-index-network-stats-tx-cost-description"), state: medianTxCost, }, { apiProvider: "growthepie", - apiUrl: "https://www.growthepie.xyz/fundamentals/transaction-count", + apiUrl: "https://www.growthepie.com/fundamentals/transaction-count", label: t("page-index-network-stats-tx-day-description"), state: txs, }, diff --git a/docs/ds-implementation.md b/docs/ds-implementation.md index 11394e6acdc..7684afd74e7 100644 --- a/docs/ds-implementation.md +++ b/docs/ds-implementation.md @@ -6,7 +6,7 @@ This is part of our [Design System implementation epic](https://github.com/ethe ## Basics -- Use Chakra tokens for spacing, sizes, and breakpoints. [Chakra theme docs](https://chakra-ui.com/docs/styled-system/theme) +- Use Chakra tokens for spacing, sizes, and breakpoints. [Chakra theme docs](https://chakra-ui.com/docs/components/theme) - For colors use the semantic tokens defined in [this file](https://github.com/ethereum/ethereum-org-website/blob/dev/src/%40chakra-ui/semanticTokens.ts). These tokens will match the color variables used in the DS Figma file - Use as many Chakra components and utils as possible - Read the [Best Practices doc](https://github.com/ethereum/ethereum-org-website/blob/dev/docs/best-practices.md) for more examples and info diff --git a/package.json b/package.json index cf5cd95fbf9..189efda1b30 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ethereum-org-website", - "version": "10.6.1", + "version": "10.7.0", "license": "MIT", "private": true, "scripts": { @@ -64,7 +64,7 @@ "howler": "^2.2.4", "htmr": "^1.0.2", "lodash": "^4.17.21", - "next": "^14.2.26", + "next": "^14.2.30", "next-intl": "^3.26.3", "next-mdx-remote": "^5.0.0", "next-sitemap": "^4.2.3", @@ -150,5 +150,5 @@ "unist-util-visit": "^5.0.0", "xml2js": "^0.6.2" }, - "packageManager": "pnpm@10.11.1+sha512.e519b9f7639869dc8d5c3c5dfef73b3f091094b0a006d7317353c72b124e80e1afd429732e28705ad6bfa1ee879c1fce46c128ccebd3192101f43dd67c667912" + "packageManager": "pnpm@10.12.3+sha512.467df2c586056165580ad6dfb54ceaad94c5a30f80893ebdec5a44c5aa73c205ae4a5bb9d5ed6bb84ea7c249ece786642bbb49d06a307df218d03da41c317417" } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index c9426e9e031..e928a41d0c5 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -79,7 +79,7 @@ importers: version: 2.2.5(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(wagmi@2.15.4(@tanstack/query-core@5.80.2)(@tanstack/react-query@5.80.2(react@18.3.1))(@types/react@18.2.57)(bufferutil@4.0.9)(react@18.3.1)(typescript@5.8.3)(utf-8-validate@5.0.10)(viem@2.30.6(bufferutil@4.0.9)(typescript@5.8.3)(utf-8-validate@5.0.10)(zod@3.22.4))(zod@3.22.4)) '@socialgouv/matomo-next': specifier: ^1.8.0 - version: 1.9.2(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 1.9.2(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) '@tanstack/react-query': specifier: ^5.66.7 version: 5.80.2(react@18.3.1) @@ -126,17 +126,17 @@ importers: specifier: ^4.17.21 version: 4.17.21 next: - specifier: ^14.2.26 - version: 14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + specifier: ^14.2.30 + version: 14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-intl: specifier: ^3.26.3 - version: 3.26.5(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + version: 3.26.5(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) next-mdx-remote: specifier: ^5.0.0 version: 5.0.0(@types/react@18.2.57)(acorn@8.14.1)(react@18.3.1) next-sitemap: specifier: ^4.2.3 - version: 4.2.3(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) + version: 4.2.3(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)) next-themes: specifier: ^0.3.0 version: 0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1) @@ -239,7 +239,7 @@ importers: version: 8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)) '@storybook/nextjs': specifier: ^8.6.14 - version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.5)(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.5)) + version: 8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.5)(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.5)) '@storybook/react': specifier: 8.6.14 version: 8.6.14(@storybook/test@8.6.14(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10)))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(typescript@5.8.3) @@ -353,7 +353,7 @@ importers: version: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) storybook-next-intl: specifier: ^1.2.5 - version: 1.2.6(next-intl@3.26.5(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)) + version: 1.2.6(next-intl@3.26.5(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)) tailwindcss: specifier: ^3.4.4 version: 3.4.17(ts-node@10.9.2(@types/node@20.17.57)(typescript@5.8.3)) @@ -1603,62 +1603,62 @@ packages: '@next/env@13.5.11': resolution: {integrity: sha512-fbb2C7HChgM7CemdCY+y3N1n8pcTKdqtQLbC7/EQtPdLvlMUT9JX/dBYl8MMZAtYG4uVMyPFHXckb68q/NRwqg==} - '@next/env@14.2.29': - resolution: {integrity: sha512-UzgLR2eBfhKIQt0aJ7PWH7XRPYw7SXz0Fpzdl5THjUnvxy4kfBk9OU4RNPNiETewEEtaBcExNFNn1QWH8wQTjg==} + '@next/env@14.2.30': + resolution: {integrity: sha512-KBiBKrDY6kxTQWGzKjQB7QirL3PiiOkV7KW98leHFjtVRKtft76Ra5qSA/SL75xT44dp6hOcqiiJ6iievLOYug==} '@next/eslint-plugin-next@14.2.29': resolution: {integrity: sha512-qpxSYiPNJTr9RzqjGi5yom8AIC8Kgdtw4oNIXAB/gDYMDctmfMEv452FRUhT06cWPgcmSsbZiEPYhbFiQtCWTg==} - '@next/swc-darwin-arm64@14.2.29': - resolution: {integrity: sha512-wWtrAaxCVMejxPHFb1SK/PVV1WDIrXGs9ki0C/kUM8ubKHQm+3hU9MouUywCw8Wbhj3pewfHT2wjunLEr/TaLA==} + '@next/swc-darwin-arm64@14.2.30': + resolution: {integrity: sha512-EAqfOTb3bTGh9+ewpO/jC59uACadRHM6TSA9DdxJB/6gxOpyV+zrbqeXiFTDy9uV6bmipFDkfpAskeaDcO+7/g==} engines: {node: '>= 10'} cpu: [arm64] os: [darwin] - '@next/swc-darwin-x64@14.2.29': - resolution: {integrity: sha512-7Z/jk+6EVBj4pNLw/JQrvZVrAh9Bv8q81zCFSfvTMZ51WySyEHWVpwCEaJY910LyBftv2F37kuDPQm0w9CEXyg==} + '@next/swc-darwin-x64@14.2.30': + resolution: {integrity: sha512-TyO7Wz1IKE2kGv8dwQ0bmPL3s44EKVencOqwIY69myoS3rdpO1NPg5xPM5ymKu7nfX4oYJrpMxv8G9iqLsnL4A==} engines: {node: '>= 10'} cpu: [x64] os: [darwin] - '@next/swc-linux-arm64-gnu@14.2.29': - resolution: {integrity: sha512-o6hrz5xRBwi+G7JFTHc+RUsXo2lVXEfwh4/qsuWBMQq6aut+0w98WEnoNwAwt7hkEqegzvazf81dNiwo7KjITw==} + '@next/swc-linux-arm64-gnu@14.2.30': + resolution: {integrity: sha512-I5lg1fgPJ7I5dk6mr3qCH1hJYKJu1FsfKSiTKoYwcuUf53HWTrEkwmMI0t5ojFKeA6Vu+SfT2zVy5NS0QLXV4Q==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-arm64-musl@14.2.29': - resolution: {integrity: sha512-9i+JEHBOVgqxQ92HHRFlSW1EQXqa/89IVjtHgOqsShCcB/ZBjTtkWGi+SGCJaYyWkr/lzu51NTMCfKuBf7ULNw==} + '@next/swc-linux-arm64-musl@14.2.30': + resolution: {integrity: sha512-8GkNA+sLclQyxgzCDs2/2GSwBc92QLMrmYAmoP2xehe5MUKBLB2cgo34Yu242L1siSkwQkiV4YLdCnjwc/Micw==} engines: {node: '>= 10'} cpu: [arm64] os: [linux] - '@next/swc-linux-x64-gnu@14.2.29': - resolution: {integrity: sha512-B7JtMbkUwHijrGBOhgSQu2ncbCYq9E7PZ7MX58kxheiEOwdkM+jGx0cBb+rN5AeqF96JypEppK6i/bEL9T13lA==} + '@next/swc-linux-x64-gnu@14.2.30': + resolution: {integrity: sha512-8Ly7okjssLuBoe8qaRCcjGtcMsv79hwzn/63wNeIkzJVFVX06h5S737XNr7DZwlsbTBDOyI6qbL2BJB5n6TV/w==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-linux-x64-musl@14.2.29': - resolution: {integrity: sha512-yCcZo1OrO3aQ38B5zctqKU1Z3klOohIxug6qdiKO3Q3qNye/1n6XIs01YJ+Uf+TdpZQ0fNrOQI2HrTLF3Zprnw==} + '@next/swc-linux-x64-musl@14.2.30': + resolution: {integrity: sha512-dBmV1lLNeX4mR7uI7KNVHsGQU+OgTG5RGFPi3tBJpsKPvOPtg9poyav/BYWrB3GPQL4dW5YGGgalwZ79WukbKQ==} engines: {node: '>= 10'} cpu: [x64] os: [linux] - '@next/swc-win32-arm64-msvc@14.2.29': - resolution: {integrity: sha512-WnrfeOEtTVidI9Z6jDLy+gxrpDcEJtZva54LYC0bSKQqmyuHzl0ego+v0F/v2aXq0am67BRqo/ybmmt45Tzo4A==} + '@next/swc-win32-arm64-msvc@14.2.30': + resolution: {integrity: sha512-6MMHi2Qc1Gkq+4YLXAgbYslE1f9zMGBikKMdmQRHXjkGPot1JY3n5/Qrbg40Uvbi8//wYnydPnyvNhI1DMUW1g==} engines: {node: '>= 10'} cpu: [arm64] os: [win32] - '@next/swc-win32-ia32-msvc@14.2.29': - resolution: {integrity: sha512-vkcriFROT4wsTdSeIzbxaZjTNTFKjSYmLd8q/GVH3Dn8JmYjUKOuKXHK8n+lovW/kdcpIvydO5GtN+It2CvKWA==} + '@next/swc-win32-ia32-msvc@14.2.30': + resolution: {integrity: sha512-pVZMnFok5qEX4RT59mK2hEVtJX+XFfak+/rjHpyFh7juiT52r177bfFKhnlafm0UOSldhXjj32b+LZIOdswGTg==} engines: {node: '>= 10'} cpu: [ia32] os: [win32] - '@next/swc-win32-x64-msvc@14.2.29': - resolution: {integrity: sha512-iPPwUEKnVs7pwR0EBLJlwxLD7TTHWS/AoVZx1l9ZQzfQciqaFEr5AlYzA2uB6Fyby1IF18t4PL0nTpB+k4Tzlw==} + '@next/swc-win32-x64-msvc@14.2.30': + resolution: {integrity: sha512-4KCo8hMZXMjpTzs3HOqOGYYwAXymXIy7PEPAXNEcEOyKqkjiDlECumrWziy+JEF0Oi4ILHGxzgQ3YiMGG2t/Lg==} engines: {node: '>= 10'} cpu: [x64] os: [win32] @@ -3691,6 +3691,9 @@ packages: caniuse-lite@1.0.30001720: resolution: {integrity: sha512-Ec/2yV2nNPwb4DnTANEV99ZWwm3ZWfdlfkQbWSDDt+PsXEVYwlhPH8tdMaPunYTKKmz7AnHi2oNEi1GcmKCD8g==} + caniuse-lite@1.0.30001723: + resolution: {integrity: sha512-1R/elMjtehrFejxwmexeXAtae5UO9iSyFn6G/I806CYC/BLyyBk1EPhrKBkWhy6wM6Xnm47dSJQec+tLJ39WHw==} + case-sensitive-paths-webpack-plugin@2.4.0: resolution: {integrity: sha512-roIFONhcxog0JSSWbvVAh3OocukmSgpqOH6YpMkCvav/ySIV3JKg4Dc8vYtQjYi/UxpNE36r/9v+VqTQqgkYmw==} engines: {node: '>=4'} @@ -5959,8 +5962,8 @@ packages: react: ^16.8 || ^17 || ^18 react-dom: ^16.8 || ^17 || ^18 - next@14.2.29: - resolution: {integrity: sha512-s98mCOMOWLGGpGOfgKSnleXLuegvvH415qtRZXpSp00HeEgdmrxmwL9cgKU+h4XrhB16zEI5d/7BnkS3ATInsA==} + next@14.2.30: + resolution: {integrity: sha512-+COdu6HQrHHFQ1S/8BBsCag61jZacmvbuL2avHvQFbWa2Ox7bE+d8FyNgxRLjXQ5wtPyQwEmk85js/AuaG2Sbg==} engines: {node: '>=18.17.0'} hasBin: true peerDependencies: @@ -9649,37 +9652,37 @@ snapshots: '@next/env@13.5.11': {} - '@next/env@14.2.29': {} + '@next/env@14.2.30': {} '@next/eslint-plugin-next@14.2.29': dependencies: glob: 10.3.10 - '@next/swc-darwin-arm64@14.2.29': + '@next/swc-darwin-arm64@14.2.30': optional: true - '@next/swc-darwin-x64@14.2.29': + '@next/swc-darwin-x64@14.2.30': optional: true - '@next/swc-linux-arm64-gnu@14.2.29': + '@next/swc-linux-arm64-gnu@14.2.30': optional: true - '@next/swc-linux-arm64-musl@14.2.29': + '@next/swc-linux-arm64-musl@14.2.30': optional: true - '@next/swc-linux-x64-gnu@14.2.29': + '@next/swc-linux-x64-gnu@14.2.30': optional: true - '@next/swc-linux-x64-musl@14.2.29': + '@next/swc-linux-x64-musl@14.2.30': optional: true - '@next/swc-win32-arm64-msvc@14.2.29': + '@next/swc-win32-arm64-msvc@14.2.30': optional: true - '@next/swc-win32-ia32-msvc@14.2.29': + '@next/swc-win32-ia32-msvc@14.2.30': optional: true - '@next/swc-win32-x64-msvc@14.2.29': + '@next/swc-win32-x64-msvc@14.2.30': optional: true '@noble/ciphers@1.2.1': {} @@ -10553,9 +10556,9 @@ snapshots: '@noble/hashes': 1.8.0 '@scure/base': 1.2.6 - '@socialgouv/matomo-next@1.9.2(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': + '@socialgouv/matomo-next@1.9.2(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))': dependencies: - next: 14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) '@socket.io/component-emitter@3.1.2': {} @@ -10760,7 +10763,7 @@ snapshots: dependencies: storybook: 8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10) - '@storybook/nextjs@8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.5)(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.5))': + '@storybook/nextjs@8.6.14(babel-plugin-macros@3.1.0)(esbuild@0.25.5)(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10))(type-fest@2.19.0)(typescript@5.8.3)(webpack-hot-middleware@2.26.1)(webpack@5.99.9(esbuild@0.25.5))': dependencies: '@babel/core': 7.27.4 '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.27.4) @@ -10786,7 +10789,7 @@ snapshots: find-up: 5.0.0 image-size: 1.2.1 loader-utils: 3.3.1 - next: 14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) node-polyfill-webpack-plugin: 2.0.1(webpack@5.99.9(esbuild@0.25.5)) pnp-webpack-plugin: 1.7.0(typescript@5.8.3) postcss: 8.5.4 @@ -12709,6 +12712,8 @@ snapshots: caniuse-lite@1.0.30001720: {} + caniuse-lite@1.0.30001723: {} + case-sensitive-paths-webpack-plugin@2.4.0: {} ccount@2.0.1: {} @@ -15434,11 +15439,11 @@ snapshots: neo-async@2.6.2: {} - next-intl@3.26.5(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): + next-intl@3.26.5(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1): dependencies: '@formatjs/intl-localematcher': 0.5.10 negotiator: 1.0.0 - next: 14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) react: 18.3.1 use-intl: 3.26.5(react@18.3.1) @@ -15456,40 +15461,40 @@ snapshots: - acorn - supports-color - next-sitemap@4.2.3(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): + next-sitemap@4.2.3(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)): dependencies: '@corex/deepmerge': 4.0.43 '@next/env': 13.5.11 fast-glob: 3.3.3 minimist: 1.2.8 - next: 14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) + next: 14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) next-themes@0.3.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: react: 18.3.1 react-dom: 18.3.1(react@18.3.1) - next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): + next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1): dependencies: - '@next/env': 14.2.29 + '@next/env': 14.2.30 '@swc/helpers': 0.5.5 busboy: 1.6.0 - caniuse-lite: 1.0.30001720 + caniuse-lite: 1.0.30001723 graceful-fs: 4.2.11 postcss: 8.4.31 react: 18.3.1 react-dom: 18.3.1(react@18.3.1) styled-jsx: 5.1.1(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react@18.3.1) optionalDependencies: - '@next/swc-darwin-arm64': 14.2.29 - '@next/swc-darwin-x64': 14.2.29 - '@next/swc-linux-arm64-gnu': 14.2.29 - '@next/swc-linux-arm64-musl': 14.2.29 - '@next/swc-linux-x64-gnu': 14.2.29 - '@next/swc-linux-x64-musl': 14.2.29 - '@next/swc-win32-arm64-msvc': 14.2.29 - '@next/swc-win32-ia32-msvc': 14.2.29 - '@next/swc-win32-x64-msvc': 14.2.29 + '@next/swc-darwin-arm64': 14.2.30 + '@next/swc-darwin-x64': 14.2.30 + '@next/swc-linux-arm64-gnu': 14.2.30 + '@next/swc-linux-arm64-musl': 14.2.30 + '@next/swc-linux-x64-gnu': 14.2.30 + '@next/swc-linux-x64-musl': 14.2.30 + '@next/swc-win32-arm64-msvc': 14.2.30 + '@next/swc-win32-ia32-msvc': 14.2.30 + '@next/swc-win32-x64-msvc': 14.2.30 transitivePeerDependencies: - '@babel/core' - babel-plugin-macros @@ -16784,9 +16789,9 @@ snapshots: storybook-i18n@3.1.1: {} - storybook-next-intl@1.2.6(next-intl@3.26.5(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)): + storybook-next-intl@1.2.6(next-intl@3.26.5(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1)): dependencies: - next-intl: 3.26.5(next@14.2.29(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) + next-intl: 3.26.5(next@14.2.30(@babel/core@7.27.4)(babel-plugin-macros@3.1.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1))(react@18.3.1) storybook-i18n: 3.1.1 storybook@8.6.14(bufferutil@4.0.9)(prettier@3.5.3)(utf-8-validate@5.0.10): diff --git a/public/content/community/events/organizing/index.md b/public/content/community/events/organizing/index.md index 942df53cff0..856af6c4218 100644 --- a/public/content/community/events/organizing/index.md +++ b/public/content/community/events/organizing/index.md @@ -4,87 +4,89 @@ description: How to organize an Ethereum event lang: en hideEditButton: true --- -# How to Organize an Ethereum event + +# How to Organize an Ethereum event {#how-to-organize-an-ethereum-event} Building a strong and vibrant community is at the heart of growing the Ethereum ecosystem. Whether you’re planning to organize meetups, workshops, or a full-scale conference, the success of your event depends on the connections and engagement within your local network. This guide will help you lay the groundwork for an active Ethereum community and take you step by step through the process of organizing a memorable and impactful conference. -## Ask yourself, is there an Ethereum community? +## Ask yourself, is there an Ethereum community? {#ask-yourself-is-there-an-ethereum-community} A successful Ethereum conference is built on an active and engaged community. If you already have one, you’re ahead of the game — but if you don’t, the essential pre-step is to build that foundation. It’s important to distinguish between a scene and a community: a scene might include companies and individuals present in a certain area, but they often operate independently with only occasional joint initiatives — like the traditional web2 ecosystem in many places. A community, on the other hand, is a network of interconnected people and organizations collaborating and supporting each other, which is often seen in web3 ecosystems. **Your first steps should be:** -* Explore local startups and companies — having strong, active companies in your city or country is often the most critical prerequisite for building a community. -* Check if there are already some meetups — ethereum.org [events page](https://ethereum.org/en/community/events/) -* [The ethereum.org website](https://ethereum.org/en/community/events/) and ethereum.org Discord — to check if there are local Ethereum events, developers, and contributors. -* Luma and Meetup.com — to see if there are Ethereum-related events or broader web3 events happening in your area. -* X — Try to find local advocates or influencers in the space. + +- Explore local startups and companies — having strong, active companies in your city or country is often the most critical prerequisite for building a community. +- Check if there are already some meetups — ethereum.org [events page](https://ethereum.org/en/community/events/) +- [The ethereum.org website](https://ethereum.org/en/community/events/) and ethereum.org Discord — to check if there are local Ethereum events, developers, and contributors. +- Luma and Meetup.com — to see if there are Ethereum-related events or broader web3 events happening in your area. +- X — Try to find local advocates or influencers in the space. If you find most of these elements, it’s a strong sign that the conditions to build a community exist — but not necessarily that a community is already in place. The next step is the crucial work of organizing, engaging, and nurturing these actors, creating opportunities for collaboration and long-term growth. -### **If not, how to build it** +### If not, how to build it {#if-not-how-to-build-it} If you realize that many of these elements are missing, don’t worry — building a community from the ground up is a challenging but deeply rewarding process. A strong Ethereum community doesn’t appear overnight; it requires patience, consistency, and a clear vision. Here’s how you can start: -* **Set up a communication channel** — this could be Telegram, Signal, WhatsApp, WeChat, or a Discord server, whatever is more popular where you’re at, so people can connect, ask questions, and share resources. -* **Find your early adopters.** Identify a few people who are passionate about Ethereum and Web3. They will become your core supporters and collaborators. -* **Host small, consistent events.** Start with informal meetups, study groups, or workshops. Consistency is key — even if the group is small at first, regular events build trust and momentum. -* **Try reaching out to local companies**, educational institutions, or coworking spaces to provide you with space free of charge. If you can not find speakers from your country, invite online speakers but gather people physically. It’s crucial to keep your audience physically present in one place. -* **Collaborate with existing tech communities.** If there are developer groups, startup ecosystems, or blockchain meetups already established, partner with them to introduce Ethereum topics and expand your reach. -* **Share educational content** about Ethereum’s potential. -* **Reach out to global communities.** Connect with established Ethereum groups and projects worldwide for support, mentorship, and potential collaboration. Ethereum communities across the globe have at least one thing in common: They are all eager to help. -* **Try and secure funding** — whether from local web3 companies or through some grants program such as [ESP](https://esp.ethereum.foundation/). +- **Set up a communication channel** — this could be Telegram, Signal, WhatsApp, WeChat, or a Discord server, whatever is more popular where you’re at, so people can connect, ask questions, and share resources. +- **Find your early adopters.** Identify a few people who are passionate about Ethereum and Web3. They will become your core supporters and collaborators. +- **Host small, consistent events.** Start with informal meetups, study groups, or workshops. Consistency is key — even if the group is small at first, regular events build trust and momentum. +- **Try reaching out to local companies**, educational institutions, or coworking spaces to provide you with space free of charge. If you can not find speakers from your country, invite online speakers but gather people physically. It’s crucial to keep your audience physically present in one place. +- **Collaborate with existing tech communities.** If there are developer groups, startup ecosystems, or blockchain meetups already established, partner with them to introduce Ethereum topics and expand your reach. +- **Share educational content** about Ethereum’s potential. +- **Reach out to global communities.** Connect with established Ethereum groups and projects worldwide for support, mentorship, and potential collaboration. Ethereum communities across the globe have at least one thing in common: They are all eager to help. +- **Try and secure funding** — whether from local web3 companies or through some grants program such as [ESP](https://esp.ethereum.foundation/). -### **If yes, how to maintain and grow it** +### If yes, how to maintain and grow it {#if-yes-how-to-maintain-and-grow-it} Once you have an established community, the work doesn’t stop — in fact, it’s just beginning. Keeping a community active, engaged, and growing requires ongoing effort and creativity. One of the key elements for keeping the community involved is that you should constantly experiment with new formats and ideas. Here are some strategies for maintaining a vibrant Ethereum community: -* **Diversify your event formats:** Don’t just stick to one type of gathering. Mix things up with meetups, short hackathons, panel discussions, and networking events. You can try organizing co-work days or educational courses. -* **Diversify topics:** Ethereum is not just a technology; it is also a set of values that involves legal, marketing, and business. -* **Ask your community** for feedback and ideas. -* **Engage with different audience** segments. Tailor content and events to different levels of experience — from beginners exploring Ethereum for the first time to seasoned developers and entrepreneurs. +- **Diversify your event formats:** Don’t just stick to one type of gathering. Mix things up with meetups, short hackathons, panel discussions, and networking events. You can try organizing co-work days or educational courses. +- **Diversify topics:** Ethereum is not just a technology; it is also a set of values that involves legal, marketing, and business. +- **Ask your community** for feedback and ideas. +- **Engage with different audience** segments. Tailor content and events to different levels of experience — from beginners exploring Ethereum for the first time to seasoned developers and entrepreneurs. By providing diverse opportunities for learning, collaboration, and growth, you ensure that your community remains active and ready for bigger initiatives like organizing a conference. -# Event +## Event {#event} -## When is the right time to organize an event? +### When is the right time to organize an event? {#when-is-the-right-time-to-organize-an-event} -Organizing a successful Ethereum conference or community event requires careful timing and consideration. The right moment depends on a variety of factors that contribute to the event's overall success. +Organizing a successful Ethereum conference or community event requires careful timing and consideration. The right moment depends on a variety of factors that contribute to the event's overall success. You should take into consideration community maturity, market conditions, whether you have a team, and whether there is a local scene (e.g. potential sponsors). -## KYC — Know your community +### KYC — Know your community {#kyc-know-your-community} One of the most crucial steps in organizing an event is understanding your community. Just like Know Your Customer (KYC) in financial services, Know Your Community (KYC) means taking the time to understand the specific needs, preferences, and characteristics of your local audience. This understanding will help you tailor the conference to ensure its success and relevance. -It’s tempting to aim for a large-scale event right away, but starting small is often the best approach. You will know what is the best solution for you if you objectively look into the state of your community and some other aspects that might seem irrelevant to you, such as: is your country a popular tourist destination or the cost of accommodation. +It’s tempting to aim for a large-scale event right away, but starting small is often the best approach. You will know what is the best solution for you if you objectively look into the state of your community and some other aspects that might seem irrelevant to you, such as: is your country a popular tourist destination or the cost of accommodation. -In the first year, the biggest part of your audience will be a local community, so everything you do for the first year organizing a bigger event should be catering to the needs and size of that community. +In the first year, the biggest part of your audience will be a local community, so everything you do for the first year organizing a bigger event should be catering to the needs and size of that community. -## Where to start +### Where to start {#where-to-start} -When it comes to organizing a conference, the first steps can feel overwhelming. But with a clear plan and structure, you can break down the process into manageable tasks. We will break down each of them. +When it comes to organizing a conference, the first steps can feel overwhelming. But with a clear plan and structure, you can break down the process into manageable tasks. We will break down each of them. Starting with a structured approach will help you stay organized and reduce stress as you move through the various stages of organizing your event. Each decision you make should bring you closer to delivering an experience that meets the needs of your community. **The first thing is to build an organizing team with clear roles and responsibilities.** -Another important step before starting to build a program or reaching out to sponsors is to choose a date. Although that sounds like an easy step, there are a few important factors that you should consider beforehand. Some of them are: +Another important step before starting to build a program or reaching out to sponsors is to choose a date. Although that sounds like an easy step, there are a few important factors that you should consider beforehand. Some of them are: -* **Avoid conflicting dates with major conferences** or events -* **Consider local conditions and circumstances** (such as season of the year, major holidays, etc.) -* **Take into consideration market conditions** -* **Give yourself enough time to organize everything** — at least nine months +- **Avoid conflicting dates with major conferences** or events +- **Consider local conditions and circumstances** (such as season of the year, major holidays, etc.) +- **Take into consideration market conditions** +- **Give yourself enough time to organize everything** — at least nine months -## How to assemble a team +### How to assemble a team {#how-to-assemble-a-team} Choose people who share your vision and complement your skills. Some teams work as collectives, while others have defined roles — find what works best for you. Regular communication and clear expectations are essential. Although it's tempting to rely on communication platforms for event planning, we suggest picking a task management platform (such as Notion, Basecamp, Trello, Asana, or even the good old Google Sheets) for organizing and tracking what needs to be done. It’s crucial to have a well-functioning and well–organized team. Different Ethereum organizer teams have different roles in their teams, but they all have in common people who are working on logistics, budgeting, marketing, program, design, and partnerships. -## The program: A key element of a successful event +### The program: A key element of a successful event {#the-program-a-key-element-of-a-successful-event} When it comes to organizing a truly valuable and memorable conference, **the program is everything**. This is not an area where you can afford to compromise. While sponsors are important and often crucial for financing the event, the audience’s experience and the value they receive must always take precedence. A program overloaded with promotional content and endless sponsor pitches will alienate your attendees and undermine the credibility of your event. @@ -92,25 +94,25 @@ Every session, panel, and workshop should inform, inspire, and engage the commun **When selecting speakers, open the call at least six months before the conference to attract high-quality submissions and allow enough time for agenda curation.** The person responsible for speaker selection should have significant experience in the industry and a deep understanding of the ecosystem. This ensures they can identify valuable, insightful contributions and maintain a high standard of content. -## Where to find financial support +### Where to find financial support {#where-to-find-financial-support} Organizing a high-quality conference comes with significant costs — venue rental, promotional materials, food and beverages, production, and countless other expenses. Securing financial support early on is essential to ensure your event meets professional standards and delivers a great experience for your attendees. -### How to create a sponsorship deck? +#### How to create a sponsorship deck? {#how-to-create-a-sponsorship-deck} -First, you are going to need a deck. **Ask other conference organizers for advice**, even to share their decks so you can create your packages based on that. You should be realistic when it comes to pricing the packages and aim to cover the costs, not to earn money, especially in the beginning. +First, you are going to need a deck. **Ask other conference organizers for advice**, even to share their decks so you can create your packages based on that. You should be realistic when it comes to pricing the packages and aim to cover the costs, not to earn money, especially in the beginning. **Every sponsorship deck should provide a clear and compelling overview of the event**, ensuring potential sponsors understand its scope, focus, and value. Start with the fundamentals—venue, date, and details about the organizing team—to establish credibility. Then, highlight the event’s primary focus, as different Ethereum conferences cater to different audiences. Some are heavily builder-oriented, featuring deep technical discussions, while others may focus more on DeFi, DAOs, or policy topics. Beyond just describing the event, set clear expectations. **Outline the anticipated number of attendees and any key speakers already confirmed**, as this helps sponsors gauge their potential reach. Most importantly, clearly define what they will receive in return for their sponsorship—booth space, speaking opportunities, social media promotion, branding visibility, or exclusive networking access. A well-structured deck not only informs but also excites potential sponsors about the opportunity to be part of your event. -### Who might support your event? +#### Who might support your event? {#who-might-support-your-event} -Start by reaching out to companies within the Ethereum and broader tech ecosystem in your city or country. These **organizations often have a vested interest in supporting local events** that foster community growth and innovation. They’re also more likely to recognize the value of investing in the local ecosystem and see your conference as an opportunity to connect with talent, partners, and users. +Start by reaching out to companies within the Ethereum and broader tech ecosystem in your city or country. These **organizations often have a vested interest in supporting local events** that foster community growth and innovation. They’re also more likely to recognize the value of investing in the local ecosystem and see your conference as an opportunity to connect with talent, partners, and users. Once you’ve tapped into local support, expand your outreach to global players in the web3 space. **Established protocols, DAOs, and ecosystem funds often allocate budgets for community-driven events**. This can be a bit challenging for first-time organizers, as they haven’t yet built a track record to showcase but try and craft a compelling sponsorship package that clearly outlines the benefits of supporting your event — brand visibility, speaking opportunities, and meaningful engagement with a targeted audience. Try to find your unique value that others may not have. -### Alternative forms of funding your event +#### Alternative forms of funding your event {#alternative-forms-of-funding-your-event} Grants are another potential funding source that many organizers overlook. Programs like the Ethereum Foundation’s [Ecosystem Support Program](https://esp.ethereum.foundation/) (ESP) and [other grant initiatives](https://ethereum.org/en/community/grants/#ethereum-grants) exist to support community-driven events. @@ -118,61 +120,61 @@ Beyond financial sponsorships, consider in-kind partnerships, especially for foo Since we’re talking about finances, remember this: every dollar you invest in creating an exceptional attendee experience will pay off exponentially. High-quality production, comfortable venues, thoughtful swag, and well-organized side events contribute to a memorable experience that participants will talk about long after the conference ends. Happy attendees become your biggest advocates and ensure your event’s long-term success. -## Logistics +### Logistics {#logistics} In parallel with securing funding your main focus should be logistics. A well-organized conference requires meticulous planning across multiple areas, from venue setup to attendee experience. Having someone with solid experience in event organization — not necessarily web3 events, but events in general — can make a huge difference. An experienced logistics lead can foresee potential issues and solve them before they become problems, saving time, money, and stress. -A person responsible for logistics should choose a venue, production company, and different vendors for food, beverages, and merch, as well as an easy-to-use online ticketing system that allows attendees to register and pay in crypto as well. +A person responsible for logistics should choose a venue, production company, and different vendors for food, beverages, and merch, as well as an easy-to-use online ticketing system that allows attendees to register and pay in crypto as well. -## Location infrastructure +### Location infrastructure {#location-infrastructure} When choosing a location for your conference, it’s important to think beyond the venue itself and consider the broader city and country infrastructure. Factors like weather, mobility, safety, and the political environment play a huge role in shaping the attendee experience. For less well-known locations, this becomes especially crucial. Attendees and sponsors from around the world need to feel confident that they can travel easily and safely. Look into aspects like airport connectivity, public transportation, and accommodation options. It’s also wise to consider the cultural and political climate of the region to avoid any complications that might deter international participants, such as visa policy. -## How to promote the event +### How to promote the event {#how-to-promote-the-event} Promoting your event effectively is key to attracting the right audience and building excitement. A well-thought-out promotion strategy ensures your conference gets the visibility and engagement it deserves. Design plays an important role in your brand as well, so you should definitely budget for that as well. -### Social media +#### Social media {#social-media} -X.com will be the backbone of your social media promotion. Try to be active and consistent with posting there, but also engage in different conversations, both with your personal account and with the account of your organization. +X.com will be the backbone of your social media promotion. Try to be active and consistent with posting there, but also engage in different conversations, both with your personal account and with the account of your organization. -Although LinkedIn doesn’t sound like a most obvious choice for promotion, you can reach out to a completely different audience there, or even some sponsors. +Although LinkedIn doesn’t sound like a most obvious choice for promotion, you can reach out to a completely different audience there, or even some sponsors. -### Partnerships with other Ethereum communities +#### Partnerships with other Ethereum communities {#partnerships-with-other-ethereum-communities} -Partnerships with different Ethereum organizers can help amplify your reach by tapping into existing networks, especially when you’re starting from scratch. Offer community discounts, cross-promote with other events, and invite partners to co-host side events or workshops. +Partnerships with different Ethereum organizers can help amplify your reach by tapping into existing networks, especially when you’re starting from scratch. Offer community discounts, cross-promote with other events, and invite partners to co-host side events or workshops. -### University outreach +#### University outreach {#university-outreach} Reach out to technical and economics faculties in town through student clubs or professors to promote the event. Engaging with universities can help attract young talent, researchers, and future industry professionals, fostering a stronger connection between academia and the Ethereum ecosystem. This is especially great if you're organizing a hackathon, as students often bring fresh ideas, enthusiasm, and a strong technical foundation. -### Media +#### Media {#media} Reach out to web3-focused media outlets and newsletters for event coverage. Although Web3 Media expects to be paid for their PR articles, you can offer them free tickets or interviews with some high-profile speakers and sponsors if you don’t have a budget for paid promotion. Create a PR package with a press release and some visuals ready for promotion on social media or a website in different formats. Also, broaden the scope to local journalists or even content creators (as long as they have a decent reputation) who can cover tech, as that can be crucial to showcasing the event to larger audiences. This helps bridge the gap between the crypto industry and the broader public, attracting interest from mainstream tech and business communities. -## Should you organize a hackathon as well? +### Should you organize a hackathon as well? {#should-you-organize-a-hackathon-as-well} Organizing a hackathon can be beneficial because hackathons can be a great way to engage the developer community and foster innovation. It also provides hands-on opportunities to collaborate and build projects, which could lead to tangible outcomes for the ecosystem. Hackathons attract developers who may not usually attend conferences but are keen on the challenge of building and testing new ideas. If your conference is aimed at developers, innovation, and hands-on projects, hosting a hackathon is a natural fit. -But, before organizing one, consider if you have enough resources and time. **A hackathon requires significant resources in terms of time, workforce, and financial investment**. Ensure that you have a dedicated team to handle it, especially if you're also managing a conference. Also, check if there is interest in your community. If your community is more builder-oriented, then it probably makes sense to organize it. +But, before organizing one, consider if you have enough resources and time. **A hackathon requires significant resources in terms of time, workforce, and financial investment**. Ensure that you have a dedicated team to handle it, especially if you're also managing a conference. Also, check if there is interest in your community. If your community is more builder-oriented, then it probably makes sense to organize it. Although there are a lot of benefits to organizing it, take in consideration that, depending on the scale of the conference, adding a hackathon might be overwhelming. You should evaluate whether managing both will dilute the quality of either. You may opt for a smaller, focused hackathon or stagger the events across different months. -## (Almost inevitable) Challenges that you will face +### (Almost inevitable) Challenges that you will face {#almost-inevitable-challenges-that-you-will-face} -One of the biggest challenges when organizing a conference, especially in the Ethereum space, is securing enough funding. **Many event organizers struggle to raise the capital needed to cover venue costs**, catering, and other logistical expenses. Sponsorship is often essential, but building relationships and convincing companies to invest in your event can take time. Moreover, the difficulty of attracting sponsors can increase during market downturns, as companies may be less willing to invest in non-core activities. +One of the biggest challenges when organizing a conference, especially in the Ethereum space, is securing enough funding. **Many event organizers struggle to raise the capital needed to cover venue costs**, catering, and other logistical expenses. Sponsorship is often essential, but building relationships and convincing companies to invest in your event can take time. Moreover, the difficulty of attracting sponsors can increase during market downturns, as companies may be less willing to invest in non-core activities. Managing the budget effectively is key. **Unforeseen expenses**, such as last-minute venue changes and additional event tech requirements, can quickly blow your budget. For new events, **getting high-quality speakers can be especially difficult**. Established thought leaders or influencers in the Ethereum space may already have full schedules and might be hesitant to commit to a new event without a proven track record. Be prepared to spend time networking and reaching out to potential speakers long before the event. -Also, when it comes to speakers, have clear and constant communication with them — set the deadline for sending presentations and avoid any last-minute changes. +Also, when it comes to speakers, have clear and constant communication with them — set the deadline for sending presentations and avoid any last-minute changes. -A successful conference requires a dedicated team that can handle logistics, marketing, sponsorships, technical support, and attendee management. Finding individuals with experience in organizing tech events can be challenging, especially if you're working with a small budget or, in most cases, with no budget, but on a volunteer basis. +A successful conference requires a dedicated team that can handle logistics, marketing, sponsorships, technical support, and attendee management. Finding individuals with experience in organizing tech events can be challenging, especially if you're working with a small budget or, in most cases, with no budget, but on a volunteer basis. -## You shouldn’t do it alone. You need volunteers. +### You shouldn’t do it alone. You need volunteers. {#you-shouldnt-do-it-alone-you-need-volunteers} Organizing an Ethereum event requires a diverse and dedicated team to handle the logistics, registrations, speaker coordination, attendee support, and much more. With team sizes ranging from just 3 to 15 people, it becomes clear that volunteers are essential for the smooth running of the event. @@ -180,43 +182,44 @@ Volunteers are often the backbone of many conferences, providing critical suppor While it's challenging to offer monetary compensation to volunteers, it's essential to provide them with something of value that will make their experience worthwhile. Consider offering them networking opportunities, skill development, some exclusive perks, certificates or letters of recommendation. -## Compliance essentials for event organizers +### Compliance essentials for event organizers {#compliance-essentials-for-event-organizers} When organizing an event, there are several essential legal and logistical considerations to keep in mind: -* **Sponsorship agreement** – Ensure you have a clear contract for sponsors, including a well-defined cancellation policy. -* **Code of conduct** – Prepare a Code of Conduct tailored to the specific event type (conference/hackathon, hacker houses etc). -* **Privacy policy** – Draft a privacy policy for your website to comply with data protection regulations and imae -* **Local authorities notification** – Even if your event is a closed gathering, it is advisable to report it to the local police station. -* **Ticketing agreement** – Establish a formal agreement with your ticketing service provider to clarify terms and responsibilities. -* **Regulatory compliance** – Check in advance if the country where you are hosting the conference has specific regulations or restrictions for the crypto industry -* **Customs clearance for merchandise** – If you are importing sponsor merchandise, it is recommended to hire a customs agent to handle the process efficiently. -* **Photography and media policy** – Clearly define guidelines on photography and media coverage, ensuring participants are informed about consent and opt-out options. +- **Sponsorship agreement** – Ensure you have a clear contract for sponsors, including a well-defined cancellation policy. +- **Code of conduct** – Prepare a Code of Conduct tailored to the specific event type (conference/hackathon, hacker houses etc). +- **Privacy policy** – Draft a privacy policy for your website to comply with data protection regulations and image +- **Local authorities notification** – Even if your event is a closed gathering, it is advisable to report it to the local police station. +- **Ticketing agreement** – Establish a formal agreement with your ticketing service provider to clarify terms and responsibilities. +- **Regulatory compliance** – Check in advance if the country where you are hosting the conference has specific regulations or restrictions for the crypto industry +- **Customs clearance for merchandise** – If you are importing sponsor merchandise, it is recommended to hire a customs agent to handle the process efficiently. +- **Photography and media policy** – Clearly define guidelines on photography and media coverage, ensuring participants are informed about consent and opt-out options. -# After the event: What’s next? +## After the event: What’s next? {#after-the-event-whats-next} -After the event concludes, it's crucial to gather feedback from attendees, speakers, and sponsors and create an internal report so you can be better prepared for future events. This helps identify what went well and where improvements can be made. Use surveys or one-on-one interviews to gather valuable insights that will guide future iterations. Take the time to review any mistakes or areas of inefficiency, as they can be avoided in the next conference, making the process smoother. +After the event concludes, it's crucial to gather feedback from attendees, speakers, and sponsors and create an internal report so you can be better prepared for future events. This helps identify what went well and where improvements can be made. Use surveys or one-on-one interviews to gather valuable insights that will guide future iterations. Take the time to review any mistakes or areas of inefficiency, as they can be avoided in the next conference, making the process smoother. The key is to keep the momentum alive. Continue engaging with your community, share updates about the progress you're making based on their feedback, and build excitement for the next event. By maintaining this connection, you ensure the conference's impact extends beyond the event itself, strengthening relationships and setting the stage for future success. -# Acknowledgement +## Acknowledgement {#acknowledgement} -A big thank you to everyone who contributed to this article by sharing their insights: Slavo Fabisik from ETHBratislava; Lola from ETH Kipu and ETH Latam; Tanja Mladenovic from ETH Belgrade, Juan David from Ethereum Bogota; Monika Zając from ETHWarsaw; Raffaele Orefice from NapulETH; Xiao Wu(Ling) from ETH Riyadh; Marco from urbe.eth; Caolán Walsh from ETH Dublin; Alex Males from ETHCluj; and Stanko Devic from ETH Slovenia. +A big thank you to everyone who contributed to this article by sharing their insights: Slavo Fabisik from ETHBratislava; Lola from ETH Kipu and ETH Latam; Tanja Mladenovic from ETH Belgrade, Juan David from Ethereum Bogota; Monika Zając from ETHWarsaw; Raffaele Orefice from NapulETH; Xiao Wu(Ling) from ETH Riyadh; Marco from urbe.eth; Caolán Walsh from ETH Dublin; Alex Males from ETHCluj; and Stanko Devic from ETH Slovenia. -# Resources +## Resources {#resources} Template: + - [Ethereum event checklist](https://cryptpad.fr/sheet/#/2/sheet/view/yhGnwo2bKxgA13SnkG9tS76+0+MtO0I6ZUFYEYP0J7w/) -Podcast: How to organise and promote an ETH event from A-Z: +Podcast: How to organize and promote an ETH event from A-Z: + - [The ETHWarsaw case study, by Out of Ordinary](https://www.youtube.com/watch?v=io2Dx1ouz8o) Twitter space: -- [ETH Community AMA](https://x.com/NapulETH/status/1905732699094151623) - -Articles: -- [Building ETHKL, by Danny H.](https://sekto.tech/ethkl24) -- [POKT Events Playbook](https://docs.pokt.network/community/pokt-events-playbook) +- [ETH Community AMA](https://x.com/NapulETH/status/1905732699094151623) +Articles: +- [Building ETHKL, by Danny H.](https://sekto.tech/ethkl24) +- [POKT Events Playbook](https://docs.pokt.network/community/pokt-events-playbook) diff --git a/public/content/community/grants/index.md b/public/content/community/grants/index.md index e1fa7bb9f4a..de050fc8904 100644 --- a/public/content/community/grants/index.md +++ b/public/content/community/grants/index.md @@ -26,13 +26,10 @@ These resources compile and organize various grant opportunities across the Ethe These general platforms offer broad coverage of grants across the entire Web3 space and are useful starting points for anyone looking for funding: - [Blockworks Grantfarm](https://blockworks.co/grants/programs) - _Blockworks has compiled a comprehensive directory of all grants, RFPs, and bug bounties._ -- [Find Blockchain Grants](https://findblockchaingrants.com/) - _Searchable database of blockchain grants_ -- [Grantr](https://grantr.app/) - _Platform for discovering and applying to Web3 grants_ - [Blockchain Grants](https://www.blockchaingrants.org/) - _Directory of blockchain and crypto grants_ ### For developers and builders {#for-developers-and-builders} -- [Web3 Grants](https://www.notion.so/Web3-Grants-dae38f9b5f524d36a15aaee1b6fa3089) - _Notion database of Web3 grant opportunities_ - [Grant Programs Viewer](https://airtable.com/shr86elKgWTSCP4AY) - _Public Airtable database of grant programs_ - [Web3 Grants Spreadsheet](https://docs.google.com/spreadsheets/d/1c8koZCI-GLnD8MG-eFcXPOBCNu1v8-aXIfwAAvc7AMc/edit#gid=0) - _Google spreadsheet of Web3 grant opportunities_ @@ -54,7 +51,6 @@ Resources for those building products and seeking investment beyond just grants: - [Web3Native](https://www.web3native.co/) - _Directory of Web3 grants, investors, and accelerator programs_ - [Cryptoneur Web3 Grants](https://www.cryptoneur.xyz/web3-grants) - _Platform for finding Web3 project funding_ -- [Pentacle Grants](https://pentacle.xyz/grants) - _Grant opportunities in the Web3 space_ ### Public goods and impact {#public-goods-and-impact} @@ -66,10 +62,6 @@ These programs focus on funding projects that benefit the broader community, pub - [Artizen](https://artizen.fund/) - _Helping creators match fund new projects at the frontier of art, science, technology and culture_ - [Quadratic Accelerator](https://qacc.giveth.io/) - _Start-up accelerator program that uses quadratic funding to support projects that benefit the public good_ -### Additional resources {#additional-resources} - -- [Web3 Summits Grants](https://www.web3summits.io/grants) - _Grant opportunities from Web3 Summits_ -- [Anke's Directory](https://docs.google.com/spreadsheets/d/1IdCCG-U7cGsih_nCNt7Yo4wXstZdCip1UKWbCK0qCZk/edit#gid=938115517) - _Web3 grant program directory_ ## Work in Ethereum {#work-in-ethereum} diff --git a/public/content/developers/docs/apis/backend/index.md b/public/content/developers/docs/apis/backend/index.md index 7bfdb6cac91..100b43333fa 100644 --- a/public/content/developers/docs/apis/backend/index.md +++ b/public/content/developers/docs/apis/backend/index.md @@ -55,6 +55,9 @@ These libraries abstract away much of the complexity of interacting directly wit **Etherscan - Block Explorer and Transaction APIs** - [Documentation](https://docs.etherscan.io/) +**Blockscout - Open Source Block Explorer** +- [Documentation](https://docs.blockscout.com/) + **GetBlock-** **_Blockchain-as-a-service for Web3 development_** - [GetBlock.io](https://getblock.io/) diff --git a/public/content/developers/docs/apis/json-rpc/index.md b/public/content/developers/docs/apis/json-rpc/index.md index 73dac1fc31f..9f403fc1549 100755 --- a/public/content/developers/docs/apis/json-rpc/index.md +++ b/public/content/developers/docs/apis/json-rpc/index.md @@ -445,7 +445,7 @@ None **Returns** -`Boolean` - returns `true` of the client is mining, otherwise `false`. +`Boolean` - returns `true` if the client is mining, otherwise `false`. **Example** diff --git a/public/content/developers/tutorials/ethereum-for-web2-auth/fig-01-saml.png b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-01-saml.png new file mode 100755 index 00000000000..48b5668f0b4 Binary files /dev/null and b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-01-saml.png differ diff --git a/public/content/developers/tutorials/ethereum-for-web2-auth/fig-02-eth-logon.png b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-02-eth-logon.png new file mode 100755 index 00000000000..0a0dcd5e9ba Binary files /dev/null and b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-02-eth-logon.png differ diff --git a/public/content/developers/tutorials/ethereum-for-web2-auth/fig-03-eas-data.png b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-03-eas-data.png new file mode 100755 index 00000000000..a7a7029d420 Binary files /dev/null and b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-03-eas-data.png differ diff --git a/public/content/developers/tutorials/ethereum-for-web2-auth/fig-04-saml-no-eth.png b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-04-saml-no-eth.png new file mode 100755 index 00000000000..c6252d5ff12 Binary files /dev/null and b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-04-saml-no-eth.png differ diff --git a/public/content/developers/tutorials/ethereum-for-web2-auth/fig-05-saml-w-signature.png b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-05-saml-w-signature.png new file mode 100755 index 00000000000..95ca0dd3284 Binary files /dev/null and b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-05-saml-w-signature.png differ diff --git a/public/content/developers/tutorials/ethereum-for-web2-auth/fig-06-saml-sig-n-email.png b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-06-saml-sig-n-email.png new file mode 100755 index 00000000000..d317b2c87f9 Binary files /dev/null and b/public/content/developers/tutorials/ethereum-for-web2-auth/fig-06-saml-sig-n-email.png differ diff --git a/public/content/developers/tutorials/ethereum-for-web2-auth/index.md b/public/content/developers/tutorials/ethereum-for-web2-auth/index.md new file mode 100644 index 00000000000..9ecb9dd2d19 --- /dev/null +++ b/public/content/developers/tutorials/ethereum-for-web2-auth/index.md @@ -0,0 +1,885 @@ +--- +title: Using Ethereum for web2 authentication +description: After reading this tutorial, a developer will be able to integrate Ethereum login (web3) with SAML login, a standard used in web2 to provide single sign-on and other related services. This allows access to web2 resources to be authenticated through Ethereum signatures, with the user attributes coming from attestations. +author: Ori Pomerantz +tags: ["web2", "authentication", "eas"] +skill: beginner +lang: en +published: 2025-04-30 +--- + +## Introduction + +[SAML](https://www.onelogin.com/learn/saml) is a standard used on web2 to allow an [identity provider (IdP)](https://en.wikipedia.org/wiki/Identity_provider#SAML_identity_provider) to provide user information for [service providers (SP)](https://en.wikipedia.org/wiki/Service_provider_(SAML)). + +In this tutorial you learn how to integrate Ethereum signatures with SAML to allow users to use their Ethereum wallets to authenticate themselves to web2 services that don't support Ethereum natively yet. + +Note that this tutorial is written for two separate audiences: + +- Ethereum people who understand Ethereum and need to learn SAML +- Web2 people who understand SAML and web2 authentication and need to learn Ethereum + +As a result, it is going to contain a lot of introductory material that you already know. Feel free to skip it. + +### SAML for Ethereum people + +SAML is a centralized protocol. A service provider (SP) only accepts assertions (such as "this is my user John, he should have permissions to do A, B, and C") from an identity provider (IdP) if it has a pre-existing trust relationship either with it, or with the [certificate authority](https://www.ssl.com/article/what-is-a-certificate-authority-ca/) that signed that IdP's certificate. + +For example, the SP can be a travel agency providing travel services to companies, and the IdP can be a company's internal web site. When employees need to book business travel, the travel agency sends them for authentication by the company before letting them actually book travel. + +![Step by step SAML process](./fig-01-saml.png) + +This is the way the three entities, the browser, SP, and IdP, negotiate for access. The SP does not need to know anything about the user using the browser in advance, just to trust the IdP. + +### Ethereum for SAML people + +Ethereum is a decentralized system. + +![Ethereum logon](./fig-02-eth-logon.png) + +Users have a a private key (typically held in a browser extension). From the private key you can derive a public key, and from that a 20-byte address. When users need to log into a system, they are requested to sign a message with a nonce (a single-use value). The server can verify the signature was created by that address. + +![Getting extra data from attestations](./fig-03-eas-data.png) + +The signature only verifies the Ethereum address. To get other user attributes, you typically use [attestations](https://attest.org/). An attestation typically has these fields: + +- **Attestor**, the address that made the attestation +- **Recipient**, the address to which the attestation applies +- **Data**, the data being attested, such as name, permissions, etc. +- **Schema**, the ID of the schema used to interpret the data. + +Because of the decentralized nature of Ethereum, any user can make attestations. The attestor's identity is important to identify which attestations we consider reliable. + +## Setup + +The first step is to have a SAML SP and a SAML IdP communicating between themselves. + +1. Download the software. The sample software for this article is [on github](https://github.com/qbzzt/250420-saml-ethereum). Different stages are stored in different branches, for this stage you want `saml-only` + + ```sh + git clone https://github.com/qbzzt/250420-saml-ethereum -b saml-only + cd 250420-saml-ethereum + pnpm install + ``` + +2. Create keys with self-signed certificates. This means that the key is its own certificate authority, and needs to be imported manually to the service provider. See [the OpenSSL docs](https://docs.openssl.org/master/man1/openssl-req/) for more information. + + ```sh + mkdir keys + cd keys + openssl req -new -x509 -days 365 -nodes -sha256 -out saml-sp.crt -keyout saml-sp.pem -subj /CN=sp/ + openssl req -new -x509 -days 365 -nodes -sha256 -out saml-idp.crt -keyout saml-idp.pem -subj /CN=idp/ + cd .. + ``` + +3. Start the servers (both SP and IdP) + + ```sh + pnpm start + ``` + +4. Browse to the SP at URL [http://localhost:3000/](http://localhost:3000/) and click the button to be redirected to the IdP (port 3001). + +5. Provide the IdP with your email address and click **Login to the service provider**. See that you get redirected back to the service provider (port 3000) and that it knows you by your email address. + +### Detailed explanation + +This is what happens, step by step: + +![Normal SAML logon without Ethereum](./fig-04-saml-no-eth.png) + +#### src/config.mts + +This file contains the configuration for both the Identity Provider and the Service Provider. Normally these two would be different entities, but here we can share code for simplicity. + +```typescript +const fs = await import("fs") + +const protocol="http" +``` + +For now we're just testing, so it's fine to use HTTP. + +```typescript +export const spCert = fs.readFileSync("keys/saml-sp.crt").toString() +export const idpCert = fs.readFileSync("keys/saml-idp.crt").toString() +``` + +Read the public keys, which are normally available to both components (and either trusted directly, or signed by a trusted certificate authority). + +```typescript +export const spPort = 3000 +export const spHostname = "localhost" +export const spDir = "sp" + +export const idpPort = 3001 +export const idpHostname = "localhost" +export const idpDir = "idp" + +export const spUrl = `${protocol}://${spHostname}:${spPort}/${spDir}` +export const idpUrl = `${protocol}://${idpHostname}:${idpPort}/${idpDir}` +``` + +The URLs for both components. + +```typescript +export const spPublicData = { +``` + +The public data for the service provider. + +```typescript + entityID: `${spUrl}/metadata`, +``` + +By convention, in SAML the `entityID` is the URL where the metadata of the entity is available. This metadata corresponds to the public data here, except it is in XML form. + +```typescript + wantAssertionsSigned: true, + authnRequestsSigned: false, + signingCert: spCert, + allowCreate: true, + assertionConsumerService: [{ + Binding: 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', + Location: `${spUrl}/assertion`, + }] + } +``` + +The most important definition for our purposes is the `assertionConsumerServer`. It means that to assert something (for example, "the user who sends you this information is somebody@example.com") to the service provider we need to use [HTTP POST](https://www.w3schools.com/tags/ref_httpmethods.asp) to URL `http://localhost:3000/sp/assertion`. + +```typescript +export const idpPublicData = { + entityID: `${idpUrl}/metadata`, + signingCert: idpCert, + wantAuthnRequestsSigned: false, + singleSignOnService: [{ + Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST", + Location: `${idpUrl}/login` + }], + singleLogoutService: [{ + Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST", + Location: `${idpUrl}/logout` + }], + } +``` + +The public data for the identity provider is similar. It specifies that to log a user in you POST to `http://localhost:3001/idp/login` and to log a user out you POST to `http://localhost:3001/idp/logout`. + +#### src/sp.mts + +This is the code that implements a service provider. + +```typescript +import * as config from "./config.mts" +const fs = await import("fs") +const saml = await import("samlify") +``` + +We use the [`samlify`](https://www.npmjs.com/package/samlify) library to implement SAML. + +```typescript +import * as validator from "@authenio/samlify-node-xmllint" +saml.setSchemaValidator(validator) +``` + +The `samlify` library expects to have a package validate that XML is correct, signed with the expected public key, etc. We use [`@authenio/samlify-node-xmllint`](https://www.npmjs.com/package/@authenio/samlify-node-xmllint) for this purpose. + +```typescript +const express = (await import("express")).default +const spRouter = express.Router() +const app = express() +``` + +An [`express`](https://expressjs.com/) [`Router`](https://expressjs.com/en/5x/api.html#router) is a "mini web site" that can be mounted inside a web site. In this case, we use it to group all the service provider definitions together. + +```typescript +const spPrivateKey = fs.readFileSync("keys/saml-sp.pem").toString() + +const sp = saml.ServiceProvider({ + privateKey: spPrivateKey, + ...config.spPublicData +}) +``` + +The service provider's own representation of itself is all the public data, and the private key it uses to sign information. + +```typescript +const idp = saml.IdentityProvider(config.idpPublicData); +``` + +The public data contains everything the service provider needs to know about the identity provider. + +```typescript +spRouter.get(`/metadata`, + (req, res) => res.header("Content-Type", "text/xml").send(sp.getMetadata()) +) +``` + +To enable interoperability with other SAML components, service and identity providers should have their public data (called the metadata) available in XML format in `/metadata`. + +```typescript +spRouter.post(`/assertion`, +``` + +This is the page accessed by the browser to identify itself. The assertion includes the user identifier (here we use email address), and can include additional attributes. This is the handler for step 7 in the sequence diagram above. + +```typescript + async (req, res) => { + // console.log(`SAML response:\n${Buffer.from(req.body.SAMLResponse, 'base64').toString('utf-8')}`) +``` + +You can use the commented out command to see the XML data provided in the assertion. It is [base64 encoded](https://en.wikipedia.org/wiki/Base64). + +```typescript + try { + const loginResponse = await sp.parseLoginResponse(idp, 'post', req); +``` + +Parse the login request from the identity server. + +```typescript + res.send(` + + +

Hello ${loginResponse.extract.nameID}

+ + + `) + res.send(); +``` + +Send an HTML response, just to show the user we got the login. + +```typescript + } catch (err) { + console.error('Error processing SAML response:', err); + res.status(400).send('SAML authentication failed'); + } + } +) +``` + +Inform the user in case of failure. + +```typescript +spRouter.get('/login', +``` + +Create a login request when the browser attempts to get this page. This is the handler for step 1 in the sequence diagram above. + +```typescript + async (req, res) => { + const loginRequest = await sp.createLoginRequest(idp, "post") +``` + +Get the information to post a login request. + +```typescript + res.send(` + + + +``` + +This page submits the form (see below) automatically. This way the user does not have to do anything to be redirected. This is step 2 in the sequence diagram above. + +```typescript +
+``` + +Post to `loginRequest.entityEndpoint` (the URL of the identity provider endpoint). + +```typescript + +``` + +The input name is `loginRequest.type` (`SAMLRequest`). The content for that field is `loginRequest.context`, which is again XML that is base64 encoded. + +```typescript +
+ + + `) + } +) + +app.use(express.urlencoded({extended: true})) +``` + +[This middleware](https://expressjs.com/en/5x/api.html#express.urlencoded) reads the body of the [HTTP request](https://www.tutorialspoint.com/http/http_requests.htm). By default express ignores it, because most requests don't require it. We need it because POST does use the body. + +```typescript +app.use(`/${config.spDir}`, spRouter) +``` + +Mount the router in the service provider directory (`/sp`). + +```typescript +app.get("/", (req, res) => { + res.send(` + + + + + + `) +}) +``` + +If a browser tries to get the root directory, provide it with a link to the login page. + +```typescript +app.listen(config.spPort, () => { + console.log(`service provider is running on http://${config.spHostname}:${config.spPort}`) +}) +``` + +Listen to the `spPort` with this express application. + +#### src/idp.mts + +This is the identity provider. It is very similar to the service provider, the explanations below are for the parts that are different. + +```typescript +const xmlParser = new (await import("fast-xml-parser")).XMLParser( + { + ignoreAttributes: false, // Preserve attributes + attributeNamePrefix: "@_", // Prefix for attributes + } +) +``` + +We need to read and understand the XML request we receive from the service provider. + +```typescript +const getLoginPage = requestId => ` +``` + +This function creates the page with the auto-submitted form that is returned in step 4 of the sequence diagram above. + +```typescript + + + Login page + + +

Login page

+
+ + Email address: +
+ +``` + +There are two fields we send to the service provider: + +1. The `requestId` to which we are responding. +2. The user identifier (we use the email address the user provides for now). + +```typescript +
+ + + +const idpRouter = express.Router() + +idpRouter.post("/loginSubmitted", async (req, res) => { + const loginResponse = await idp.createLoginResponse( +``` + +This is the handler for step 5 of the sequence diagram above. [`idp.createLoginResponse`](https://github.com/tngan/samlify/blob/master/src/entity-idp.ts#L73-L125) creates the login response. + +```typescript + sp, + { + authnContextClassRef: 'urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport', + audience: sp.entityID, +``` + +The audience is the service provider. + +```typescript + extract: { + request: { + id: req.body.requestId + } + }, +``` + +Information extracted from the request. The one parameter we care about in the request is the requestId, which lets the service provider match requests and their responses. + +```typescript + signingKey: { privateKey: idpPrivateKey, publicKey: config.idpCert } // Ensure signing +``` + +We need `signingKey` to have the data to sign the response. The service provider doesn't trust unsigned requests. + +```typescript + }, + "post", + { + email: req.body.email +``` + +This is the field with the user information we send back to the service provider. + +```typescript + } + ); + + res.send(` + + + + +
+ +
+ + + `) +}) +``` + +Again, use an auto-submitted form. This is step 6 of the sequence diagram above. + +```typescript + +// IdP endpoint for login requests +idpRouter.post(`/login`, +``` + +This is the endpoint that receives a login request from the service provider. This is the handler the step 3 of the sequence diagram above. + +```typescript + async (req, res) => { + try { + // Workaround because I couldn't get parseLoginRequest to work. + // const loginRequest = await idp.parseLoginRequest(sp, 'post', req) + const samlRequest = xmlParser.parse(Buffer.from(req.body.SAMLRequest, 'base64').toString('utf-8')) + res.send(getLoginPage(samlRequest["samlp:AuthnRequest"]["@_ID"])) +``` + +We should be able to use [`idp.parseLoginRequest`](https://github.com/tngan/samlify/blob/master/src/entity-idp.ts#L127-L144) to read the authentication request's ID. However, I couldn't get it working and it wasn't worth spending a lot of time on it so I just use a [general-purpose XML parser](https://www.npmjs.com/package/fast-xml-parser). The information we need is the `ID` attribute inside the `` tag, which is at the top level of the XML. + +## Using Ethereum signatures + +Now that we can send a user identity to the service provider, the next step is to obtain the user identity in a trusted manner. Viem allows us to just ask the wallet for the user address, but this means asking the browser for the information. We don't control the browser, so we can't automatically trust the response we get from it. + +Instead, the IdP is going to send the browser a string to sign. If the wallet in the browser signs this string, it means that it really is that address (that is, it knows the private key that corresponds to the address). + +To see this in action, stop the existing IdP and SP and run these commands: + +```sh +git checkout eth-signatures +pnpm install +pnpm start +``` + +Then browse [to the SP](http://localhost:3000) and follow the directions. + +Note that at this point we don't know how to get the email address from the Ethereum address, so instead we report `@bad.email.address` to the SP. + +### Detailed explanation + +The changes are in steps 4-5 in the previous diagram. + +![SAML with an Ethereum signature](./fig-05-saml-w-signature.png) + +The only file we changed is `idp.mts`. Here are the changed parts. + +```typescript +import { v4 as uuidv4 } from 'uuid' +import { verifyMessage } from 'viem' +``` + +We need these two additional libraries. We use [`uuid`](https://www.npmjs.com/package/uuid) to create the [nonce](https://en.wikipedia.org/wiki/Cryptographic_nonce) value. The value itself does not matter, just the fact it is only used once. + +The [`viem`](https://viem.sh/) library lets us use Ethereum definitions. Here we need it to verify that the signature is indeed valid. + +```typescript +const loginPrompt = "To access the service provider, sign this nonce: " +``` + +The wallet asks the user for permission to sign the message. A message that is just a nonce could confuse users, so we include this prompt. + +```typescript +// Keep requestIDs here +let nonces = {} +``` + +We need the request information to be able to respond to it. We could send it with the request (step 4), and receive it back (step 5). However, we cannot trust the information we get from the browser, which is under the control of a potentially hostile user. So it's better to store it here, with the nonce as key. + +Note that we are doing it here as a variable for the sake of simplicity. However, this has several disadvantages: + +- We are vulnerable to a denial of service attack. A malicious user could attempt to log on multiple times, filling up our memory. +- If the IdP process needs to be restarted, we lose the existing values. +- We cannot load balance across multiple processes, because each would have its own variable. + +On a production system we'd use a database and implement some kind of expiry mechanism. + +```typescript +const getSignaturePage = requestId => { + const nonce = uuidv4() + nonces[nonce] = requestId +``` + +Create a nonce, and store the `requestId` for future use. + +```typescript + return ` + + + + + +

Please sign

+ +
+ + + +` +} +``` + +The rest is just standard HTML. + +```typescript +idpRouter.get("/signature/:nonce/:account/:signature", async (req, res) => { +``` + +This is the handler for step 5 in the sequence diagram. + +```typescript + const requestId = nonces[req.params.nonce] + if (requestId === undefined) { + res.send("Bad nonce") + return ; + } + + nonces[req.params.nonce] = undefined +``` + +Get the request ID, and delete the nonce from `nonces` to make sure it cannot be reused. + +```typescript + try { +``` + +Becasue there are so many ways in which the signature can be invalid, we wrap this in a `try ... catch` block to catch any thrown errors. + +```typescript + const validSignature = await verifyMessage({ + address: req.params.account, + message: `${loginPrompt}${req.params.nonce}`, + signature: req.params.signature + }) +``` + +Use [`verifyMessage`](https://viem.sh/docs/actions/public/verifyMessage#verifymessage) to implement step 5.5 in the sequence diagram. + +```typescript + if (!validSignature) + throw("Bad signature") + } catch (err) { + res.send("Error:" + err) + return ; + } +``` + +The rest of the handler is equivalent to what we've done in the `/loginSubmitted` handler previously, except for one small change. + +```typescript + const loginResponse = await idp.createLoginResponse( + . + . + . + { + email: req.params.account + "@bad.email.address" + } + ); +``` + +We don't have the actual email address (we will get it in the next section), so for now we return the Ethereum address and mark it clearly as not an email address. + + +```typescript +// IdP endpoint for login requests +idpRouter.post(`/login`, + async (req, res) => { + try { + // Workaround because I couldn't get parseLoginRequest to work. + // const loginRequest = await idp.parseLoginRequest(sp, 'post', req) + const samlRequest = xmlParser.parse(Buffer.from(req.body.SAMLRequest, 'base64').toString('utf-8')) + res.send(getSignaturePage(samlRequest["samlp:AuthnRequest"]["@_ID"])) + } catch (err) { + console.error('Error processing SAML response:', err); + res.status(400).send('SAML authentication failed'); + } + } +) +``` + +Instead of `getLoginPage`, now use `getSignaturePage` in the step 3 handler. + +## Getting the email address + +The next step is to obtain the email address, the identifier requested by the service provider. To do that, we use [Ethereum Attestation Service (EAS)](https://attest.org/). + +The easiest way to get attestations is to use the [GraphQL API](https://docs.attest.org/docs/developer-tools/api). We use this query: + +``` +query GetAttestationsByRecipient { + attestations( + where: { + recipient: { equals: "${getAddress(ethAddr)}" } + schemaId: { equals: "0xfa2eff59a916e3cc3246f9aec5e0ca00874ae9d09e4678e5016006f07622f977" } + } + take: 1 + ) { + data + id + attester + } +} +``` + +This [`schemaId`](https://optimism.easscan.org/schema/view/0xfa2eff59a916e3cc3246f9aec5e0ca00874ae9d09e4678e5016006f07622f977) includes just an e-mail address. This query asks for attestations of this schema. The subject of the attestation is called the `recipient`. It is always an Ethereum address. + +Warning: The way we are getting attestations here has two security issues. + +- We are going to the API endpoint, `https://optimism.easscan.org/graphql`, which is a centralized component. We can get the `id` attribute and then do a lookup onchain to verify that an attestation is real, but the API endpoint can still censor attestations by not telling us about them. + + This problem is not impossible to solve, we could run our own GraphQL endpoint and get the attestations from the chain logs, but that is excessive for our purposes. + +- We don't look at the attester identity. Anybody can feed us false information. In a real world implementation we would have a set of trusted attesters and only look at their attestations. + +To see this in action, stop the existing IdP and SP and run these commands: + +```sh +git checkout email-address +pnpm install +pnpm start +``` + +Then provide your e-mail address. You have two ways to do that: + +- Import a wallet using a private key, and use the testing private key `0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80`. + +- Add an attestation for your own e-mail address: + + 1. Browse to [the schema in the attestation explorer](https://optimism.easscan.org/schema/view/0xfa2eff59a916e3cc3246f9aec5e0ca00874ae9d09e4678e5016006f07622f977). + + 2. Click **Attest with Schema**. + + 3. Enter your Ethereum address as the recipient, your e-mail address as email address, and select **Onchain**. Then click **Make Attestation**. + + 4. Approve the transaction in your wallet. You will need some ETH on [the Optimism Blockchain](https://app.optimism.io/bridge/deposit) to pay for gas. + +Either way, after you do this browse to [http://localhost:3000](http://localhost:3000) and follow the directions. If you imported the testing private key, the e-mail you receive is `test_addr_0@example.com`. If you used your own address, it should be whatever you attested. + +### Detailed explanation + +![Getting from Ethereum address to e-mail](./fig-06-saml-sig-n-email.png) + +The new steps are the GraphQL communication, steps 5.6 and 5.7. + +Again, here are the changed parts of `idp.mts`. + +```typescript +import { GraphQLClient } from 'graphql-request' +import { SchemaEncoder } from '@ethereum-attestation-service/eas-sdk' +``` + +Import the libraries we need. + +```typescript +const graphqlEndpointUrl = "https://optimism.easscan.org/graphql" +``` + +There is [a separate endpoint for each blockchain](https://docs.attest.org/docs/developer-tools/api). + +```typescript +const graphqlClient = new GraphQLClient(graphqlEndpointUrl, { fetch }) +``` + +Create a new `GraphQLClient` client we can use for querying the endpoint. + +```typescript +const graphqlSchema = 'string emailAddress' +const graphqlEncoder = new SchemaEncoder(graphqlSchema) +``` + +GraphQL only gives us an opaque data object with bytes. To understand it we need the schema. + +```typescript +const ethereumAddressToEmail = async ethAddr => { +``` + +A function to get from an Ethereum address to an e-mail address. + +```typescript + const query = ` + query GetAttestationsByRecipient { +``` + +This is a GraphQL query. + +```typescript + attestations( +``` + +We are looking for attestations. + +```typescript + where: { + recipient: { equals: "${getAddress(ethAddr)}" } + schemaId: { equals: "0xfa2eff59a916e3cc3246f9aec5e0ca00874ae9d09e4678e5016006f07622f977" } + } +``` + +The attestations we want are those in our schema, where the recipient is `getAddress(ethAddr)`. The [`getAddress`](https://viem.sh/docs/utilities/getAddress#getaddress) function makes sure our address has the correct [checksum](https://github.com/ethereum/ercs/blob/master/ERCS/erc-55.md). This is necessary about GraphQL is case-significant. "0xBAD060A7", "0xBad060A7", and "0xbad060a7" are differemt values. + +```typescript + take: 1 +``` + +Regardless of how many attestations we find, we only want the first one. + +```typescript + ) { + data + id + attester + } + }` +``` + +The fields we want to receive. + +- `attester`: The address that submitted the attestation. Normally this is used to decide whether to trust the attestation or not. +- `id`: The attestation ID. You can use this value to [read the attestation onchain](https://optimism.blockscout.com/address/0x4200000000000000000000000000000000000021?tab=read_proxy&source_address=0x4E0275Ea5a89e7a3c1B58411379D1a0eDdc5b088#0xa3112a64) to verify that the information from the GraphQL query is correct. +- `data`: The schema data (in this case, the e-mail address). + +```typescript + const queryResult = await graphqlClient.request(query) + + if (queryResult.attestations.length == 0) + return "no_address@available.is" +``` + +If there is no attestation, return a value that is obviously incorrect, but that would appear valid to the service provider. + +```typescript + const attestationDataFields = graphqlEncoder.decodeData(queryResult.attestations[0].data) + return attestationDataFields[0].value.value +} +``` + +If there is a value, use `decodeData` to decode the data. We don't need the metadata it provides, just the value itself. + +```typescript + const loginResponse = await idp.createLoginResponse( + sp, + { + . + . + . + }, + "post", + { + email: await ethereumAddressToEmail(req.params.account) + } + ); +``` + +Use the new function to get the e-mail address. + +## What about decentralization? + +In this configuration users cannot pretend to be somebody they are not, as long as we rely on trustworthy attesters for the Ethereum to e-mail address mapping. However, our identity provider is still a centralized component. Whoever has the private key of the identity provider can send false information to the service provider. + +There may be a solution using [multi-party computation (MPC)](https://en.wikipedia.org/wiki/Secure_multi-party_computation). I hope to write about it in a future tutorial. + +## Conclusion + +Adoption of a log on standard, such as Ethereum signatures, faces a chicken and egg problem. Service providers want to appeal to the broadest possible market. Users want to be able to access services without having to worry about supporting their log on standard. +Creating adapters, such as an Ethereum IdP, can help us get over this hurdle. diff --git a/public/content/enterprise/use-cases/index.md b/public/content/enterprise/use-cases/index.md index 3fc53665d0d..b4ebed0674f 100644 --- a/public/content/enterprise/use-cases/index.md +++ b/public/content/enterprise/use-cases/index.md @@ -42,7 +42,7 @@ Here are some of the enterprise applications that have been built on top of the - [Sila](https://silamoney.com/) - _banking and ACH payments infrastructure-as-a-service, using a stablecoin_ - [Societe Generale FORGE](https://www.sgforge.com/product/bonds/) - _bond issuance_ - [Taurus](https://www.taurushq.com/) - _issues tokenized securities_ -- [Visa Tokenized Asset Plaform](https://developer.visa.com/capabilities/visa-tokenized-asset-platform) - _provides the tools and infrastructure for banks to tokenize fiat currencies on blockchain networks_ +- [Visa Tokenized Asset Platform](https://developer.visa.com/capabilities/visa-tokenized-asset-platform) - _provides the tools and infrastructure for banks to tokenize fiat currencies on blockchain networks_ ### Asset tokenization {#tokenization} @@ -96,7 +96,7 @@ Here are some of the enterprise applications that have been built on top of the - [Bhutan National Digital Identity](https://www.bhutanndi.com/) - \_a foundation for Bhutan’s digital economy, facilitating trusted interactions between individuals and organizations - [Hyland Credentials](https://www.hylandcredentials.com) - _digital diplomas and other education credentials, licenses, and certificates_ - [Palau Digital Residency Program](https://rns.id/) - _offers global citizens the ability to have a legal Palau government-issued ID_ -- [QuarkID](https://quarkid.org/) _is a self-soverign identity protocol for managing essential personal documents such as birth and marriage certificates, academic credentials, and proof of income, developed by the government of Buenos Aires for use in Argentia and other South American countries_ +- [QuarkID](https://quarkid.org/) _is a self-soverign identity protocol for managing essential personal documents such as birth and marriage certificates, academic credentials, and proof of income, developed by the government of Buenos Aires for use in Argentina and other South American countries_ - [Spherity](https://www.spherity.com/) - _offers digital identity management solutions to establish digital trust in ecosystems, focusing on decentralized identities and verifiable credentials_ - [Zug Digital ID](https://ezug.ch/en/) - _is a blockchain-based identity system in Switzerland, offering residents digital access to government services and supporting functionalities like e-bike borrowing and municipal voting_ diff --git a/public/content/guides/how-to-revoke-token-access/index.md b/public/content/guides/how-to-revoke-token-access/index.md index ca5f76ce414..7d55f57acdf 100644 --- a/public/content/guides/how-to-revoke-token-access/index.md +++ b/public/content/guides/how-to-revoke-token-access/index.md @@ -20,6 +20,7 @@ Several websites let you view and revoke smart contracts connected to your addre - [Ethallowance](https://ethallowance.com/) (Ethereum) - [Etherscan](https://etherscan.io/tokenapprovalchecker) (Ethereum) +- [Blockscout](https://eth.blockscout.com/apps/revokescout) (Ethereum) - [Cointool](https://cointool.app/approve/eth) (multiple networks) - [Revoke](https://revoke.cash/) (multiple networks) - [Unrekt](https://app.unrekt.net/) (multiple networks) diff --git a/public/content/history/index.md b/public/content/history/index.md index 3ff9bee1286..e97f9dd5048 100644 --- a/public/content/history/index.md +++ b/public/content/history/index.md @@ -581,7 +581,7 @@ The Tangerine Whistle fork was the first response to the denial of service (DoS) #### Summary {#dao-fork-summary} -The DAO fork was in response to the [2016 DAO attack](https://www.coindesk.com/learn/understanding-the-dao-attack/) where an insecure [DAO](/glossary/#dao) contract was drained of over 3.6 million ETH in a hack. The fork moved the funds from the faulty contract to a [new contract](https://etherscan.io/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) with a single function: withdraw. Anyone who lost funds could withdraw 1 ETH for every 100 DAO tokens in their wallets. +The DAO fork was in response to the [2016 DAO attack](https://www.coindesk.com/learn/understanding-the-dao-attack/) where an insecure [DAO](/glossary/#dao) contract was drained of over 3.6 million ETH in a hack. The fork moved the funds from the faulty contract to a [new contract](https://eth.blockscout.com/address/0xbf4ed7b27f1d666546e30d74d50d173d20bca754) with a single function: withdraw. Anyone who lost funds could withdraw 1 ETH for every 100 DAO tokens in their wallets. This course of action was voted on by the Ethereum community. Any ETH holder was able to vote via a transaction on [a voting platform](https://web.archive.org/web/20170620030820/http://v1.carbonvote.com/). The decision to fork reached over 85% of the votes. diff --git a/public/content/nft/index.md b/public/content/nft/index.md index a93ba806054..295287e30bf 100644 --- a/public/content/nft/index.md +++ b/public/content/nft/index.md @@ -102,6 +102,7 @@ Security issues relating to NFTs are most often related to phishing scams, smart - [A beginner's guide to NFTs](https://linda.mirror.xyz/df649d61efb92c910464a4e74ae213c4cab150b9cbcc4b7fb6090fc77881a95d) – _Linda Xie, January 2020_ - [EtherscanNFT tracker](https://etherscan.io/nft-top-contracts) +- [Blockscout NFT tracker](https://eth.blockscout.com/tokens?type=ERC-721,ERC-1155,ERC-404) - [ERC-721 token standard](/developers/docs/standards/tokens/erc-721/) - [ERC-1155 token standard](/developers/docs/standards/tokens/erc-1155/) - [Popular NFT Apps and Tools](https://www.ethereum-ecosystem.com/blockchains/ethereum/nfts) diff --git a/public/content/roadmap/pectra/maxeb/index.md b/public/content/roadmap/pectra/maxeb/index.md index a623a7fe529..512c8d25476 100644 --- a/public/content/roadmap/pectra/maxeb/index.md +++ b/public/content/roadmap/pectra/maxeb/index.md @@ -140,57 +140,57 @@ There are several tools available to manage consolidations. The official tool, c | Ethereal | [GitHub](https://github.com/wealdtech/ethereal) | Yes, Apache 2.0 | [Jim McDonald](https://www.attestant.io/team/) | No | Command line | Full feature set for validator and node management | | Siren | [GitHub](https://github.com/sigp/siren) | Yes, Apache 2.0 | [Sigma Prime](https://sigmaprime.io/) | No | Some command line, but primarily web UI | Only works if you're using the Lighthouse consensus client | -## FAQ {#FAQ} +## FAQ {#faq} -### Does opting-in change my proposal luck or rewards? +### Does opting-in change my proposal luck or rewards? {#change-luck-or-rewards} No. Opting in does not decrease your change of proposal - your duties and proposal selection remain the same. For example, if you have two 32 ETH validators vs one 64 ETH validator, you will have the same total chances of being selected to propose a block and earn rewards. -### Does opting in change my slashing risk? +### Does opting in change my slashing risk? {#change-slashing-risk} For smaller or unprofessional operators, the short answer is no. The longer answer is that, for professional operators running many validators per node with fast alerting, consolidating into fewer validators may reduce their ability to react to a slashing and prevent cascade events. The initial slashing *penalty* for all validators has been dramatically reduced from 1 ETH (per 32 ETH) to 0.0078125 ETH (per 32 ETH) to offset this risk. -### Do I have to exit my validator to convert? +### Do I have to exit my validator to convert? {#exit-validator} No. You can convert in place without exiting. -### How long will it take to convert / consolidate? +### How long will it take to convert / consolidate? {#how-long} A minimum of 27.3 hours but consolidations are also subject to a queue. This queue is independent of the deposit and withdrawal queues and is not affected by them. -### Can I keep my validator index? +### Can I keep my validator index? {#keep-validator-index} Yes. In-place conversion keeps the same validator index. If you consolidate multiple validators, you'll only be able to keep the index of the *target validator*. -### Will I miss attestations? +### Will I miss attestations? {#miss-attestations} During a consolidation into another validator, the source validator is exited and there is a ~27 hour waiting period before the balance is active on the target validator. This period **does not affect performance metrics**. -### Will I incur penalties? +### Will I incur penalties? {#incur-penalties} No. As long as your validator is online, you will not incur penalties. -### Do the withdrawal addresses of the validators being consolidated have to match? +### Do the withdrawal addresses of the validators being consolidated have to match? {#withdrawal-addresses-match} No. But the *source* must authorize the request from its own address. -### Will my rewards compound after converting? +### Will my rewards compound after converting? {#rewards-compound} Yes. With **Type 2** credentials, rewards above 32 ETH are automatically restaked — but not instantly. Because of a small buffer (called [*hysteresis*](https://eth2book.info/capella/part2/incentives/balances/#hysteresis)), your balance needs to reach **about 1.25 ETH more** before the extra is restaked. So instead of compounding at 33.0 ETH, it happens at 33.25 (effective balance = 33 ETH), then 34.25 (effective balance = 34 ETH), and so on. -### Can I still get automatic sweeps after converting? +### Can I still get automatic sweeps after converting? {#automatic-sweep} Automatic sweeps will only happen with excess balances over 2048. For all other partial withdrawals, you'll need to manually trigger them. -### Can I change my mind and go back from Type 2 to Type 1? +### Can I change my mind and go back from Type 2 to Type 1? {#go-back-to-type1} No. Converting to **Type 2** is irreversible. -### If I want to consolidate multiple validators, do I have convert each one to Type 2 first? +### If I want to consolidate multiple validators, do I have convert each one to Type 2 first? {#consolidate-multiple-validators} Nope! Convert one validator to Type 2 then use that as the target. All other validators consolidated into that Type 2 target can be Type 1 or Type 2 -### My validator is offline or below 32 ETH - can I still convert it? +### My validator is offline or below 32 ETH - can I still convert it? {#offline-or-below-32eth} Yes. As long as it's active (not exited) and you can sign with its withdrawal address, you can convert it. diff --git a/public/content/translations/el/contributing/adding-layer-2s/index.md b/public/content/translations/el/contributing/adding-layer-2s/index.md index 25a242db61e..3420ba0191c 100644 --- a/public/content/translations/el/contributing/adding-layer-2s/index.md +++ b/public/content/translations/el/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Δεν θεωρούμε ότι ανήκουν στο επίπεδο 2 οι άλ Εάν θέλετε να προσθέσετε ένα επίπεδο 2 στο ethereum.org, δημιουργήστε ένα ζήτημα στο GitHub. - + Δημιουργήστε ένα ζήτημα diff --git a/public/content/translations/el/contributing/content-resources/index.md b/public/content/translations/el/contributing/content-resources/index.md index e120126620f..aba61586cc2 100644 --- a/public/content/translations/el/contributing/content-resources/index.md +++ b/public/content/translations/el/contributing/content-resources/index.md @@ -27,6 +27,6 @@ description: Τα κριτήριά μας για την καταχώριση τ Αν θέλετε να προσθέσετε έναν πόρο περιεχομένου στο ethereum.org και πληροί τα κριτήρια, δημιουργήστε ένα ζήτημα στο GitHub. - + Δημιουργήστε ένα ζήτημα diff --git a/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md index cd2fb8ea542..e32c453800b 100644 --- a/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/el/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -178,7 +178,7 @@ lang: el Τελικά, υπάρχουν πλεονεκτήματα και μειονεκτήματα και για τις δύο επιλογές, αλλά είναι ενδιαφέρον πώς η τάση φαίνεται να είναι προς το token στα δεξιά. -# Συμπεριφορά κουμπιών {#button-behavior} +## Συμπεριφορά κουμπιών {#button-behavior} Μην έχετε ξεχωριστό κουμπί για το Approve. Επίσης, μην έχετε ξεχωριστό κλικ για το Approve. Ο χρήστης θέλει να κάνει Swap, οπότε απλώς πείτε "swap" στο κουμπί και ξεκινήστε την έγκριση ως το πρώτο βήμα. Ένα modal μπορεί να δείξει την πρόοδο με ένα stepper, ή μια απλή ειδοποίηση "tx 1 από 2 - έγκριση". @@ -186,7 +186,7 @@ lang: el ![Ένα UI με ένα κουμπί που λέει έγκριση](./15.png) -## Κουμπί ως συμφραζόμενη βοήθεια {#button-as-contextual-help} +### Κουμπί ως συμφραζόμενη βοήθεια {#button-as-contextual-help} Το κουμπί μπορεί να κάνει διπλή λειτουργία ως ειδοποίηση! @@ -204,7 +204,7 @@ lang: el ![Μήνυμα σφάλματος που εμφανίζεται στο κύριο CTA](./17.png) -## Δημιουργήστε το δικό σας με αυτό το αρχείο figma {#build-your-own-with-this-figma-file} +### Δημιουργήστε το δικό σας με αυτό το αρχείο figma {#build-your-own-with-this-figma-file} Χάρη στη σκληρή δουλειά πολλών πρωτοκόλλων, ο σχεδιασμός DEX έχει βελτιωθεί πολύ. Γνωρίζουμε ποιες πληροφορίες χρειάζεται ο χρήστης, πώς πρέπει να τις εμφανίζουμε και πώς να κάνουμε τη ροή όσο το δυνατόν πιο ομαλή. Ας ελπίσουμε ότι αυτό το άρθρο παρέχει μια σταθερή επισκόπηση των αρχών UX. diff --git a/public/content/translations/es/community/events/index.md b/public/content/translations/es/community/events/index.md index a2079753e73..8b2c61983d6 100644 --- a/public/content/translations/es/community/events/index.md +++ b/public/content/translations/es/community/events/index.md @@ -13,12 +13,14 @@ hideEditButton: true Esta es una lista no exhaustiva mantenida por nuestra comunidad. ¿Sabe de algún evento próximo de Ethereum para añadir a esta lista? [¡Por favor, añádalo](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-events.json)! + + ## Encuentros sobre Ethereum {#meetups} ¿No ve ningún evento que le venga bien? Intente asistir a un encuentro. Los encuentros son eventos más pequeños celebrados por grupos de entusiastas de Ethereum, es decir, son una oportunidad para que las personas interesadas en Ethereum se reúnan, hablen acerca de Ethereum y se enteren de las últimas novedades. -¿Le interesaría organizar su propia reunión? Eche un vistazo a [BUIDL Network](https://consensys.net/developers/buidlnetwork/): una iniciativa de ConsenSys para ayudar a apoyar las comunidades de encuentros de Ethereum. +¿Le interesaría organizar su propio encuentro? Eche un vistazo a [BUIDL Network](https://consensys.net/developers/buidlnetwork/): una iniciativa de ConsenSys para ayudar a apoyar a las comunidades de encuentros de Ethereum. Esta es una lista no exhaustiva mantenida por nuestra comunidad. Aquí [encontrará más información sobre los encuentros de Ethereum](https://www.meetup.com/topics/ethereum/). ¿Sabe de algún un grupo de encuentros activo para añadir a esta lista? [¡Por favor, añádalo!](https://github.com/ethereum/ethereum-org-website/blob/dev/src/data/community-meetups.json) diff --git a/public/content/translations/es/contributing/adding-layer-2s/index.md b/public/content/translations/es/contributing/adding-layer-2s/index.md index 507acd4a9cd..d230622d8a5 100644 --- a/public/content/translations/es/contributing/adding-layer-2s/index.md +++ b/public/content/translations/es/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _No consideramos que otras soluciones de escalabilidad que no utilicen Ethereum Si quiere añadir una capa 2 a ethereum.org, cree una incidencia en GitHub. - + Crear una incidencia diff --git a/public/content/translations/es/contributing/content-resources/index.md b/public/content/translations/es/contributing/content-resources/index.md index fc48ccd72f2..e680cd10251 100644 --- a/public/content/translations/es/contributing/content-resources/index.md +++ b/public/content/translations/es/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Los recursos de aprendizaje se evaluarán a tenor de los siguientes criterios: Si desea añadir un recurso de contenido a ethereum.org y cumple con los criterios, cree una incidencia en GitHub. - + Crear una incidencia diff --git a/public/content/translations/es/contributing/index.md b/public/content/translations/es/contributing/index.md index 84f80869dd7..ec4589a3eb9 100644 --- a/public/content/translations/es/contributing/index.md +++ b/public/content/translations/es/contributing/index.md @@ -25,7 +25,6 @@ Ethereum.org es un proyecto gestionado de código abierto con más de **12.000** - [Cree/edite contenido](/contributing/#how-to-update-content): sugiera crear nuevas páginas o hacer ajustes al contenido actual - [Añada recursos para la comunidad](/contributing/content-resources/): agregue un artículo o recurso útil a una página relevante - [Sugiera un recurso de diseño](/contributing/design/adding-design-resources/): sume, actualce o elimine recursos de diseño útiles -- [Agregue un término al glosario](/contributing/adding-glossary-terms/): ayúdenos a expandir el [glosario](/glossary/) de Ethereum - [Cuestionarios](/contributing/quizzes/): agregue, edite y elimine bancos de preguntas de cuestionarios para páginas relevantes **Ideas de funcionalides/características** @@ -90,7 +89,7 @@ Tenemos temas u opciones con barrera baja de entrada, o pocos requisitos, en nue Si su contribución se usa en ethereum.org, tendrá la oportunidad de reclamar una insignia especial en [Galxe](https://app.galxe.com/quest/ethereumorg). Un token de logro en cadena (OAT, Onchain Achievement Token) es una prueba de que ayudó a hacer el ecosistema un poco más increíble. -[Más sobre los OAT](https://help.galxe.com/en/articles/7067290-galxe-oats-reward-and-celebrate-achievements) +[Más sobre los OAT](https://help.galxe.com/en/articles/9645630-create-quest-rewards#h_1c5d63ba03) ### Cómo reclamarlo 1. Únase a nuestro [servidor de Discord](https://discord.gg/ethereum-org). diff --git a/public/content/translations/es/contributing/translation-program/index.md b/public/content/translations/es/contributing/translation-program/index.md index 01aee15752a..4aa39be9952 100644 --- a/public/content/translations/es/contributing/translation-program/index.md +++ b/public/content/translations/es/contributing/translation-program/index.md @@ -36,9 +36,9 @@ Conozca más detalles sobre la [misión y visión](/contributing/translation-pro ### Nuestra evolución hasta la fecha {#our-progress} -- [**6000+** traductores](/contributing/translation-program/contributors/) -- **62** idiomas en vivo en el lugar -- [**3 millones** de palabras traducidas en 2023](/contributing/translation-program/acknowledgements/) +- [**más de 6.900** traductores](/contributing/translation-program/contributors/) +- **68** idiomas localizados en el sitio web +- [**2,89 millones** de palabras traducidas en 2024](/contributing/translation-program/acknowledgements/) diff --git a/public/content/translations/es/contributing/translation-program/resources/index.md b/public/content/translations/es/contributing/translation-program/resources/index.md index c3349fc4be2..ef3fb4c485e 100644 --- a/public/content/translations/es/contributing/translation-program/resources/index.md +++ b/public/content/translations/es/contributing/translation-program/resources/index.md @@ -12,7 +12,7 @@ Puede encontrar algunas guías y herramientas útiles para los traductores de et - [Guía de estilo de traducción](/contributing/translation-program/translators-guide/) _: instrucciones y consejos para los traductores de ethereum.org_. - [Preguntas frecuentes sobre la traducción](/contributing/translation-program/faq/) _: Preguntas y respuestas frecuentes sobre el Programa de traducción de ethereum.org_ -- [Guía de edición online de Crowdin](https://support.crowdin.com/online-editor/) _: Una guía detallada para utilizar el editor online de Crowdin y algunas de las funciones avanzadas de Crowdin_ +- [Guía de edición en línea de Crowdin](https://support.crowdin.com/online-editor/) _: una guía detallada para utilizar el editor en línea de Crowdin y algunas de las funciones avanzadas de Crowdin_ - [Bloques de contenido](/contributing/translation-program/content-buckets/) _: qué páginas se incluyen en cada bloque de contenido de ethereum.org_ ## Herramientas {#tools} diff --git a/public/content/translations/es/contributing/translation-program/translators-guide/index.md b/public/content/translations/es/contributing/translation-program/translators-guide/index.md index d18fffd6553..4f6e141425e 100644 --- a/public/content/translations/es/contributing/translation-program/translators-guide/index.md +++ b/public/content/translations/es/contributing/translation-program/translators-guide/index.md @@ -154,7 +154,7 @@ nonce - _Texto no traducible_ El texto original también contiene etiquetas acortadas, que solo contienen números, lo que significa que su función no es inmediatamente obvia. Puede pasar el cursor sobre estas etiquetas para ver qué función tienen exactamente. -En el ejemplo de abajo, al pasar el cursor por la `<0>` etiqueta se muestra lo que representa `` y contiene un fragmento de código, por lo tanto el contenido dentro de estas etiquetas no debe traducirse. +En el ejemplo de abajo, puede verlo al pasar el cursor por la `<0>` etiqueta se muestra lo que representa `` y contiene un fragmento de código, por lo tanto el contenido dentro de estas etiquetas no debe traducirse. ![Ejemplo de tags.png ambiguo](./example-of-ambiguous-tags.png) diff --git a/public/content/translations/es/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/es/developers/docs/design-and-ux/dex-design-best-practice/index.md index 31adf58cf82..63a43904774 100644 --- a/public/content/translations/es/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/es/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ La ley de proximidad establece que los elementos que están cerca se perciben co En última instancia, hay ventajas y desventajas para ambas opciones, pero es interesante cómo la tendencia parece ser colocar el token del lado derecho. -# Comportamiento del botón {#button-behavior} +## Comportamiento del botón {#button-behavior} No tenga un botón separado para Aprobar. Tampoco tenga un clic separado para Aprobar. El usuario quiere intercambiar, así que solo tiene que decir "intercambiar" en el botón e iniciar la aprobación como primer paso. Un modal puede mostrar el progreso con un paso a paso, o una simple notificación "tx 1 de 2 - aprobación". @@ -188,7 +188,7 @@ No tenga un botón separado para Aprobar. Tampoco tenga un clic separado para Ap ![Una interfaz de usuario con un botón que dice aprobar](./15.png) -## Botón como ayuda contextual {#button-as-contextual-help} +### Botón como ayuda contextual {#button-as-contextual-help} El botón puede tener una doble función como una ¡alerta! @@ -206,7 +206,7 @@ El botón también puede ser **mapeado a la acción** a realizar. Por ejemplo, s ![Mensaje de error mostrado en el CTA principal](./17.png) -## Construya el suyo con este archivo figma {#build-your-own-with-this-figma-file} +### Construya el suyo con este archivo figma {#build-your-own-with-this-figma-file} Gracias a la ardua labor de múltiples protocolos, el diseño de DEX ha mejorado mucho. Sabemos qué información necesita el usuario, cómo debemos mostrarla y cómo hacer que el flujo sea lo más fluido posible. Esperamos que este artículo ofrezca una sólida visión general de los principios de la UX. diff --git a/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md index eacffa426cf..0be0baa7d3b 100644 --- a/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/es/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Cualquiera a quien se le permita transferir un token puede quemarlo. Mientras que una quema parece equivalente a transferira la dirección cero, la dirección cero no recibe el token. Esto nos permite liberar todo el almacenamiento que se utilizó para el token, lo que puede reducir el coste del gas de la transacción. -# Utilizar este contrato {#using-contract} +## Utilizar este contrato {#using-contract} En contraste con Solidity, Vyper no tiene herencia. Esta es una elección de diseño deliberada para hacer el código más claro y por lo tanto más fácil de asegurar. Así que para crear su propio contrato Vyper ERC-721, utilice [este contrato](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) y modifíquelo para implementar la lógica de negocio que desee. -## Conclusión {#conclusion} +### Conclusión {#conclusion} A modo de recapitulación, he resumido algunas de las ideas más importantes de este contrato: diff --git a/public/content/translations/es/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/es/developers/tutorials/waffle-test-simple-smart-contract/index.md index 4b7434207ee..47078d62d5e 100644 --- a/public/content/translations/es/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/es/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - Ha utilizado algunos gestores de paquetes como yarn o npm. - Posee conocimientos muy básicos de contratos inteligentes y Solidity. -# Introducción {#getting-started} +## Introducción {#getting-started} Este tutorial explica una configuración de prueba y se ejecuta utilizando yarn, pero no pasa nada si prefiere hacerlo con npm, ya proporcionaré las indicaciones apropiadas a la documentación oficial de Waffle[](https://ethereum-waffle.readthedocs.io/en/latest/index.html). -## Instalar las dependencias {#install-dependencies} +### Instalar las dependencias {#install-dependencies} [Añada](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation) las dependencias ethereum-waffle y de typescript a las dependencias de desarrollo de su proyecto. @@ -37,7 +37,7 @@ Este tutorial explica una configuración de prueba y se ejecuta utilizando yarn, yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## Ejemplo de contrato inteligente {#example-smart-contract} +### Ejemplo de contrato inteligente {#example-smart-contract} Durante el tutorial trabajaremos con un sencillo ejemplo de contrato inteligente: EtherSplitter. Permite casi se manera similar que cualquiera envíe algunos wei y, eventualmente, los divida entre dos receptores por defecto. La función dividida requiere que la cantidad de wei sea un número entero, de lo contario se revertirá. Para ambos receptores realiza una transferencia de wei, seguida a la emisión de un evento de transferencia. @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## Compilar el contrato {#compile-the-contract} +### Compilar el contrato {#compile-the-contract} Para [compilar](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract) el contrato, añada las siguientes líneas al archivo de package.json: @@ -90,7 +90,7 @@ A continuación, cree el archivo de configuración de Waffle en el directorio de Ejecute `yarn build`. Como resultado, el directorio `build` aparecerá con el contrato compilado de EtherSplitter en formato JSON. -## Configuración de la prueba {#test-setup} +### Configuración de la prueba {#test-setup} Para hacer pruebas con Waffle se tienen que utilizar los emparejadores de Chai y Mocha, por lo que necesita [añadirlos](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) a su proyecto. Actualice su archivo package.json y añada la línea de `test` en la parte de scripts: @@ -103,7 +103,7 @@ Para hacer pruebas con Waffle se tienen que utilizar los emparejadores de Chai y Si quiere [ejecutar](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) sus pruebas, simplemente ejecute `yarn test` . -# Pruebas {#testing} +## Pruebas {#testing} Seguidamente cree el directorio `test` y un nuevo archivo `test\EtherSplitter.test.ts`. Copie el fragmento de abajo y péguelo en nuestro archivo de prueba. @@ -134,7 +134,7 @@ Unas breves aclaraciones antes de que empecemos. El `MockProvider` incluye una s A continuación, declaramos una variable llamada «splitter»: este es nuestro contrato simulado EtherSplitter. Se crea antes de la ejecución de una única prueba a través del método `deployContract`. Este método simula la implementación de un contrato desde la cartera pasado como el primer parámetro (en nuestro caso, la cartera del emisor). El segundo parámetro es el ABI y el código de bytes del contrato de prueba: aquí pasamos el archivo json o el contrato EtherSplitter compilado desde el directorio `build`. El tercer parámetro es una matriz con los argumentos del constructor del contrato, que en nuestro caso, son las dos direcciones de los receptores. -## ChangeBalances {#changebalances} +### ChangeBalances {#changebalances} Primero, revisamos si el método dividido realmente cambia el saldo de las carteras de los receptores. Si dividimos 50 wei desde las cuentas de los emisores, esperaríamos que los saldos de ambos receptores aumentaran 25 wei. Usaremos el comparador `changeBalances` de Waffle: @@ -162,7 +162,7 @@ Tenga en cuenta que en ambos casos `changeBalance` y `changeBalances`, enviamos A continuación, probaremos si el evento de transferencia se emitió después de cada transferencia de wei. Cambiaremos a otra máquina desde Waffle: -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { El emparejador `emit` nos permite revisar si un contrato ha emitido un evento al recurrir a un método. Como parámetros del emparejador `emit`, proporcionamos el simulacro de contrato que predecimos para emitir el evento, junto al nombre de ese evento. En nuestro caso, el simulacro de contrato es `splitter` y el nombre del evento: `Transfer`. También podemos verificar los valores precisos de los argumentos con los que se emitió el evento: enviamos tantos argumentos al emparejador `withArgs` como lo espera nuestra declaración de evento. En el caso del contrato EtherSplitter, enviamos las direcciones del emisor y del receptor, junto a la cantidad de wei transferida. -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} Como último ejemplo, comprobaremos si se revirtió la transacción en caso de número impar de wei. Usaremos el emparejador `revertedWith`: @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { Si la prueba sale bien, nos garantizará que se ha revertido la transacción. Sin embargo, también debe haber una coincidencia exacta entre los mensajes que hemos enviado en la declaración `require` y el mensaje que esperamos en `revertedWith`. Si regresamos al código del contrato EtherSplitter, en la declaración `require` para la cantidad de wei, proporcionamos el mensaje: «no se permite una cantidad impar de wei». Esto coincide con el mensaje que esperamos en nuestra prueba. Si no coinciden, será que la prueba ha salido mal. -# ¡Felicitaciones! {#congratulations} +## ¡Felicitaciones! {#congratulations} ¡Acabas de dar tu primer gran paso para probar los contratos inteligentes con Waffle! Puede que también te interesen otros tutoriales de Waffle: diff --git a/public/content/translations/fa/contributing/adding-layer-2s/index.md b/public/content/translations/fa/contributing/adding-layer-2s/index.md index 6dd2e94af0d..512976b473a 100644 --- a/public/content/translations/fa/contributing/adding-layer-2s/index.md +++ b/public/content/translations/fa/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _ما راه حل‌های مقیاس پذیر دیگری را که از اتر اگر می‌خواهید یک لایه 2 را به ethereum.org اضافه نمائید، یک مسئله در وبسایت گیت‌هاب ایجاد کنید. - + یک مسئله ایجاد کنید diff --git a/public/content/translations/fa/contributing/content-resources/index.md b/public/content/translations/fa/contributing/content-resources/index.md index 0788f58b182..b2fb6bf87a1 100644 --- a/public/content/translations/fa/contributing/content-resources/index.md +++ b/public/content/translations/fa/contributing/content-resources/index.md @@ -27,6 +27,6 @@ description: معیارهای ما برای لیست کردن منابع محت اگر می خواهید یک منبع محتوا به ethereum.org اضافه کنید و معیارها را رعایت می کند، در GitHub یک مسئله ایجاد کنید. - + یک مسئله ایجاد کنید diff --git a/public/content/translations/fa/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/fa/developers/docs/design-and-ux/dex-design-best-practice/index.md index 7efb9db6d65..94a942ce18e 100644 --- a/public/content/translations/fa/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/fa/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ DEX ها معمولاً جزئیات اضافی را در یک ردیف بالا در نهایت، نکات مثبت و منفی برای هر دو گزینه وجود دارد، اما جالب است که به نظر می رسد چگونه روند به سمت توکن سمت راست است. -# رفتار دکمه {#button-behavior} +## رفتار دکمه {#button-behavior} دکمه جداگانه ای برای تأیید نداشته باشید. همچنین یک کلیک جداگانه برای تأیید نداشته باشید. کاربر می‌خواهد Swap را انجام دهد، بنابراین فقط روی دکمه بگویید «swap» و تأیید را به عنوان اولین مرحله آغاز کنید. یک مودال می‌تواند پیشرفت را با یک استپر یا یک اعلان ساده "tx 1 of 2 - تایید" نشان دهد. @@ -188,7 +188,7 @@ DEX ها معمولاً جزئیات اضافی را در یک ردیف بالا ![یک رابط کاربری با یک دکمه که تأیید می‌کند](./15.png) -## دکمه به عنوان راهنمای متنی {#button-as-contextual-help} +### دکمه به عنوان راهنمای متنی {#button-as-contextual-help} این دکمه می تواند به عنوان یک هشدار، وظیفه ای مضاعف را انجام دهد! @@ -206,7 +206,7 @@ DEX ها معمولاً جزئیات اضافی را در یک ردیف بالا ![پیام خطا در CTA اصلی نشان داده می‌شود](./17.png) -## مال خودتان را با این فایل فیگما بسازید {#build-your-own-with-this-figma-file} +### مال خودتان را با این فایل فیگما بسازید {#build-your-own-with-this-figma-file} به لطف کار سخت پروتکل های متعدد، طراحی DEX بسیار بهبود یافته است. ما می دانیم که کاربر به چه اطلاعاتی نیاز دارد، چگونه باید آن را نشان دهیم و چگونه جریان را تا حد امکان روان کنیم. امیدواریم این مقاله یک نمای کلی از اصول UX ارائه دهد. diff --git a/public/content/translations/fa/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/fa/developers/docs/standards/tokens/erc-777/index.md deleted file mode 100644 index e9e07e78e33..00000000000 --- a/public/content/translations/fa/developers/docs/standards/tokens/erc-777/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: 'EIP-: استاندارد توکن ERC-777' -description: -lang: fa ---- - -## {#introduction} - -**** - -**** - -قلاب ها تابعی هستند که در کد یک قرارداد هوشمند توضیح داده شده است. هنگامی که توکن ها از طریق یک قرارداد ارسال یا دریافت می شوند، قلاب ها فراخوانی می شوند. این به یک قرارداد هوشمند اجازه می دهد تا به توکن های ورودی یا خروجی واکنش نشان دهد. - -## {#prerequisites} - -- []() -- []() -- []() - -## {#body} - -قلاب ها با استفاده از استاندارد [ERC-1820](https://eips.ethereum.org/EIPS/eip-1820)ثبت و کشف می‌شوند. - -این استاندارد همچنین ابهامی را که در مورد `اعشار` ایجاد شده در ERC-20 وجود دارد حل می کند. این شفافیت باعث بهبود تجربه توسعه دهنده می شود. - -می توان با قراردادهای ERC-777 به گونه ای تعامل کرد که انگار قراردادهای ERC-20 هستند. - -### {#methods} - -```solidity - -``` - -### {#events} - -```solidity - -``` - -### {#web3py-example} - -#### {#web3py-example} - -``` - -``` - -```python - - - - -``` - -```python - - -``` - -## {#popular-nfts} - -- -- -- -- -- -- -- -- - -## اطلاعات بیشتر {#further-reading} - -- []() -- []() -- []() -- []() diff --git a/public/content/translations/fr/contributing/adding-layer-2s/index.md b/public/content/translations/fr/contributing/adding-layer-2s/index.md index 18c84d4f524..ec77967918c 100644 --- a/public/content/translations/fr/contributing/adding-layer-2s/index.md +++ b/public/content/translations/fr/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Nous ne considérons pas comme relevant de la couche 2 les autres solutions d' Si vous souhaitez ajouter une Couche 2 sur ethereum.org, créez un ticket sur GitHub. - + Créez un ticket diff --git a/public/content/translations/fr/contributing/content-resources/index.md b/public/content/translations/fr/contributing/content-resources/index.md index 6dbae83cee0..8d1f6574770 100644 --- a/public/content/translations/fr/contributing/content-resources/index.md +++ b/public/content/translations/fr/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Les ressources d'apprentissage seront évaluées selon les critères suivants : Si vous souhaitez ajouter une ressource de contenu à ethereum.org et qu'elle répond aux critères, créez un ticket sur GitHub. - + Créez un ticket diff --git a/public/content/translations/fr/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/fr/developers/docs/design-and-ux/dex-design-best-practice/index.md index 41ab7455f08..0ff53041b88 100644 --- a/public/content/translations/fr/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/fr/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -179,7 +179,7 @@ La loi de proximité stipule que les éléments proches sont perçus comme étan En fin de compte, les deux options présentent des avantages et des inconvénients, mais il est intéressant de noter que la tendance est au jeton placé à droite. -# Comportement du bouton {#button-behavior} +## Comportement du bouton {#button-behavior} N'ayez pas de bouton séparé pour l'approbation. Évitez également de demander un clic séparé pour l'approbation. L'utilisateur veut effectuer un échange, il suffit donc d'indiquer "échanger" sur le bouton et de lancer l'approbation comme première étape. Une fenêtre modale peut afficher la progression avec un indicateur d'étapes, ou une simple notification du type "tx 1 sur 2 - approbation en cours". @@ -187,7 +187,7 @@ N'ayez pas de bouton séparé pour l'approbation. Évitez également de demander ![Une interface utilisateur avec un seul bouton d'approbation](./15.png) -## Bouton comme aide contextuelle {#button-as-contextual-help} +### Bouton comme aide contextuelle {#button-as-contextual-help} Le bouton peut également servir d'alerte ! @@ -205,7 +205,7 @@ Le bouton peut également être **associé à l'action** qui doit être effectu ![Message d'erreur affiché dans le principal appel à l'action](./17.png) -## Construisez le vôtre avec ce fichier Figma {#build-your-own-with-this-figma-file} +### Construisez le vôtre avec ce fichier Figma {#build-your-own-with-this-figma-file} Grâce au travail acharné de plusieurs protocoles, la conception des DEX s'est beaucoup améliorée. Nous savons de quelles informations l'utilisateur a besoin, de quelle manière nous devons les présenter et comment rendre le flux aussi fluide que possible. Nous espérons que cet article vous offrira un aperçu solide des principes UX. diff --git a/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md index 1afe4a47d0b..69190ba7dbd 100644 --- a/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/fr/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Toute personne autorisée à transférer un jeton est autorisée à le détruire. Bien que détruire un jeton semble équivalent à le transférer à l'adresse zéro, celle-ci ne reçoit pas réellement le jeton. Cela nous permet de libérer tout l'espace de stockage qui était utilisé pour le jeton, ce qui peut réduire les frais de gaz de la transaction. -# Utiliser ce contrat {#using-contract} +## Utiliser ce contrat {#using-contract} Contrairement à Solidity, Vyper n'a pas de système d'héritage. Il s'agit d'un choix de conception délibéré visant à rendre le code plus clair et donc plus facile à sécuriser. Donc pour créer votre propre contrat Vyper ERC-721, vous prenez [ce contrat](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) puis vous le modifiez en fonction de la stratégie commerciale que vous souhaitez mettre en œuvre. -## Conclusion {#conclusion} +### Conclusion {#conclusion} Voici les principaux points à retenir sur ce contrat : diff --git a/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md index 3dbabf656d5..ed979f3e517 100644 --- a/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/fr/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - Vous avez utilisé des gestionnaires de paquets comme yarn ou npm - Vous possédez des connaissances de base en matière de contrats intelligents et de Solidity -# Premiers pas {#getting-started} +## Premiers pas {#getting-started} Le tutoriel décrit l'installation et l'exécution du test en utilisant yarn, mais il n'y a pas de problème si vous préférez npm - je fournirai les références appropriées à la documentation officielle de Waffle.[](https://ethereum-waffle.readthedocs.io/en/latest/index.html) -## Installer les dépendances {#install-dependencies} +### Installer les dépendances {#install-dependencies} [Ajoutez](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation) dépendances ethereum-waffle et typescript aux dépendances de développement de votre projet. @@ -37,7 +37,7 @@ Le tutoriel décrit l'installation et l'exécution du test en utilisant yarn, ma yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## Exemple de contrat intelligent {#example-smart-contract} +### Exemple de contrat intelligent {#example-smart-contract} Au cours du tutoriel, nous allons travailler sur un exemple de contrat intelligent simple - EtherSplitter. Il ne fait pas grand-chose à part permettre à quelqu'un d'envoyer des wei et de les répartir équitablement entre deux destinataires prédéfinis. La fonction de séparation nécessite que le nombre de wei soit pair, sinon elle s'inverse. Pour les deux destinataires, il effectue un transfert de wei suivi de l'émission de l'événement Transfert. @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## Compiler le contrat {#compile-the-contract} +### Compiler le contrat {#compile-the-contract} Pour [compiler](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract) le contrat, ajoutez l'entrée suivante au fichier package.json : @@ -90,7 +90,7 @@ Ensuite, créez un fichier de configuration avec Waffle, dans le répertoire pri Exécutez `yarn build`. Cela fera apparaître le dossier `build` avec le contrat compilé EtherSplitter au format JSON. -## Configuration du test {#test-setup} +### Configuration du test {#test-setup} Tester avec Waffle nécessite d'utiliser des correspondances Chai et Mocha, vous devez donc [les ajouter](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) à votre projet. Lancez la mise à jour de votre paquet package.json, et ajoutez le `texte`d'entrée, dans la partie modèle: @@ -103,7 +103,7 @@ Tester avec Waffle nécessite d'utiliser des correspondances Chai et Mocha, vous Si vous voulez [faire](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) vos propres tests, exécutez juste le `yarn test` . -# Tests {#testing} +## Tests {#testing} Maintenant, créez le dossier `test` et créez le nouveau fichier `test\EtherSplitter.test.ts`. Copiez le fragment ci-dessous et collez-le dans notre fichier de test. @@ -134,7 +134,7 @@ Quelques mots avant de commencer. Le fournisseur de services, `MockProvider`, pr Ensuite, nous déclarons une variable appelée « splitter » - c'est notre contrat fictif EtherSpliter. Il est créé avant chaque exécution d'un test unique par la méthode `deployContract`. Cette méthode simule le déploiement d'un contrat à partir du portefeuille transmis en tant que premier paramètre (le portefeuille de l'expéditeur dans notre cas). Le deuxième paramètre est l'ABI et le bytecode du contrat testé - nous transmettons le fichier json du contrat EtherSplitter compilé à partir du répertoire `build`. Le troisième paramètre est un tableau contenant les arguments du constructeur du contrat qui, dans notre cas, sont les deux adresses des destinataires. -## changeBalances {#changebalances} +### changeBalances {#changebalances} Tout d'abord, nous vérifierons si la méthode fractionnée modifie réellement les soldes des portefeuilles des destinataires. Si nous divisons 50 wei du compte des expéditeurs, nous nous attendons à ce que les soldes des deux destinataires augmentent de 25 wei. Nous utiliserons la correspondance `changeBalances` de Waffle: @@ -162,7 +162,7 @@ Notez que dans les deux cas de `changeBalance` et `changeBalances`, nous transme Nous allons ensuite déterminer si l'événement Transfert a été émis après chaque transfert de wei. Nous allons passer à une autre correspondance de Waffle : -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { La correspondance `emit` nous permet de vérifier si un contrat a émis un événement en appelant une méthode. En tant que paramètres pour la corrrespondance `emit`, nous fournissons le contrat fictif que nous prévoyons pour émettre l'événement, ainsi que le nom de cet événement. Dans notre cas, le contrat fictif est `splitter` et le nom de l'événement `Transfer`. Nous pouvons également vérifier les valeurs précises des arguments avec lesquels l'événement a été émis - nous transmettons autant d'arguments au `withArgs` correspondant, comme le prévoit notre déclaration d'événement. Dans le cas du contrat EtherSpliter, nous passons les adresses de l'expéditeur et du destinataire avec le montant en wei transféré. -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} Comme dernier exemple, nous allons vérifier si la transaction a été annulée en cas de nombre impair de wei. Nous allons utiliser la correspondance `revertedWith` : @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { Le test, s'il est accepté, nous assurera que la transaction a bien été annulée. Cependant, il doit également y avoir une correspondance exacte entre les messages que nous avons passés dans la déclaration `require` et le message attendu dans `revertedWith`. Si nous revenons au code du contrat EtherSpliter, dans la déclaration `require` pour le montant wei, nous fournissons le message: "Uneven wei amount not allowed". Cela correspond au message que nous attendons dans notre test. Si elles n'étaient pas égales, le test échouerait. -# Félicitations ! {#congratulations} +## Félicitations ! {#congratulations} Vous avez fait votre premier (grand) pas vers les tests des contrats intelligents avec Waffle ! Vous pourriez être intéressé par d'autres tutoriels Waffle : diff --git a/public/content/translations/ga/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/ga/developers/docs/design-and-ux/dex-design-best-practice/index.md index 937f517300d..c70829fb872 100644 --- a/public/content/translations/ga/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/ga/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ Sonraítear i ndlí na gaireachta go mbreathnaítear ar nithe atá gar dá chéi I ndeireadh na dála, tá buntáistí agus míbhuntáistí ann don dá rogha, ach tá sé suimiúil gur cosúil go bhfuil an treocht i dtreo comharthaí ar dheis. -# Iompar cnaipe {#button-behavior} +## Iompar cnaipe {#button-behavior} Ná bíodh cnaipe ar leith agat le haghaidh Faomhadh. Chomh maith leis sin ná bíodh cliceáil ar leith agat le haghaidh Ceadaigh. Is mian leis an úsáideoir Babhtáil, mar sin abair “babhtáil” ar an gcnaipe agus cuir tús leis an gceadú mar an chéad chéim. Is féidir le modal dul i láthair le céimire, nó le fógra simplí 'tx 1 de 2 - á cheadú'. @@ -188,7 +188,7 @@ Ná bíodh cnaipe ar leith agat le haghaidh Faomhadh. Chomh maith leis sin ná b ![UI le cnaipe amháin a deir ceadaigh](./15.png) -## Cnaipe mar chabhair chomhthéacsúil {#button-as-contextual-help} +### Cnaipe mar chabhair chomhthéacsúil {#button-as-contextual-help} Is féidir leis an gcnaipe dualgas dúbailte a dhéanamh mar fholáireamh! @@ -206,7 +206,7 @@ Is féidir an cnaipe a **mhapáil chuig an ngníomh** freisin nach mór a dhéan ![Teachtaireacht earráide léirithe laistigh den phríomh CTA](./17.png) -## Tóg do cheann féin leis an gcomhad figma seo {#build-your-own-with-this-figma-file} +### Tóg do cheann féin leis an gcomhad figma seo {#build-your-own-with-this-figma-file} A bhuí le hobair chrua na bprótacal iolrach, tá feabhas mór tagtha ar dhearadh DEX. Tá a fhios againn cén fhaisnéis a theastaíonn ón úsáideoir, conas ba cheart dúinn é a thaispeáint, agus conas an sreabhadh a dhéanamh chomh réidh agus is féidir. Tá súil agam go dtugann an t-alt seo forbhreathnú láidir ar phrionsabail UX. diff --git a/public/content/translations/hu/contributing/adding-layer-2s/index.md b/public/content/translations/hu/contributing/adding-layer-2s/index.md index a5d9176362d..c160793f024 100644 --- a/public/content/translations/hu/contributing/adding-layer-2s/index.md +++ b/public/content/translations/hu/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Más skálázási megoldásokat nem tekintünk L2-nek, melyek nem használják Ha egy L2-t szeretne hozzáadni az ethereum.org webhelyhez, hozzon létre egy problémát a GitHubon. - + Issue létrehozása diff --git a/public/content/translations/hu/contributing/content-resources/index.md b/public/content/translations/hu/contributing/content-resources/index.md index eef66c3d199..34025b7a923 100644 --- a/public/content/translations/hu/contributing/content-resources/index.md +++ b/public/content/translations/hu/contributing/content-resources/index.md @@ -27,6 +27,6 @@ A tanulási forrásokat a következőképpen ítéljük meg: Ha egy tartalmi forrást szeretne hozzáadni az ethereum.org-hoz, és az megfelel a feltételeknek, hozzon létre egy issue-t a GitHubon. - + Issue létrehozása diff --git a/public/content/translations/hu/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/hu/developers/docs/design-and-ux/dex-design-best-practice/index.md index 26b5b1372f3..262aa0a1cbc 100644 --- a/public/content/translations/hu/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/hu/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ A közelség törvénye azt mondja, hogy a közeli dolgok összefüggőbbnek tű Végülis mindkét megoldásnak vannak előnyei és hátrányai, de a trend szerint a token a jobb oldalra kerül. -# Gombműködés {#button-behavior} +## Gombműködés {#button-behavior} Ne legyen külön gomb a jóváhagyásra. Ne is kelljen ehhez külön kattintani. A felhasználó átváltást akar, ezért legyen a gombon átváltás felirat és az első lépés maga a jóváhagyás. Az ablak mutathatja a haladást lépésekkel, vagy egyszerűen egy „2-ből 1 tranzakció jóváhagyása” figyelmeztetéssel. @@ -188,7 +188,7 @@ Ne legyen külön gomb a jóváhagyásra. Ne is kelljen ehhez külön kattintani ![UI, ahol egy jóváhagyás gomb van](./15.png) -## Gomb mint helyi segítség {#button-as-contextual-help} +### Gomb mint helyi segítség {#button-as-contextual-help} A gomb figyelmeztetésként is működhet! @@ -206,7 +206,7 @@ A gombot **hozzá is lehet kapcsolni az elvégzendő cselekvéshez**. Például, ![Hibaüzenet a fő CTA-n](./17.png) -## Építse meg sajátját ezzel a figma fájllal {#build-your-own-with-this-figma-file} +### Építse meg sajátját ezzel a figma fájllal {#build-your-own-with-this-figma-file} Számos protokoll kemény munkájának köszönhető, hogy a DEX dizájnja sokat fejlődött. Tudjuk, hogy a felhasználónak milyen információra van szüksége, hogyan mutassuk azt meg, és hogyan legyen könnyed a használat menete. Remélhetőleg ez a cikk segített áttekinteni az UX elveket. diff --git a/public/content/translations/id/contributing/adding-layer-2s/index.md b/public/content/translations/id/contributing/adding-layer-2s/index.md index 787474e9088..2657afae242 100644 --- a/public/content/translations/id/contributing/adding-layer-2s/index.md +++ b/public/content/translations/id/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Kami tidak menganggap solusi pengukuran lain yang tidak menggunakan ethereum un Jika Anda ingin menambahkan lapisan ke-2 ke ethereum.org, buatlah sebuah isu di GitHub. - + Buat isu diff --git a/public/content/translations/id/contributing/content-resources/index.md b/public/content/translations/id/contributing/content-resources/index.md index 9f32731bcde..7fe7b1bf493 100644 --- a/public/content/translations/id/contributing/content-resources/index.md +++ b/public/content/translations/id/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Sumber pembelajaran akan dinilai berdasarkan kriteria sebagai berikut: Jika Anda ingin menambahkan sumber konten ke ethereum.org dan itu memenuhi kriteria, buatlah isu di GitHub. - + Buat isu diff --git a/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md index 0609ecad20b..5d57c8edec5 100644 --- a/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/id/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Siapa pun yang diizinkan untuk mentransfer sebuah token diizinkan untuk membakarnya. Sekalipun pembakaran tampak sama dengan transfer ke alamat kosong, alamat nolnya tidak benar-benar menerima token. Ini memungkinkan kita untuk membebaskan semua penyimpanan yang digunakan untuk token, yang dapat mengurangi biaya gas transaksi. -# Menggunakan Kontrak ini {#using-contract} +## Menggunakan Kontrak ini {#using-contract} Berlawanan dengan Solidity, Vyper tidak memiliki warisan. Ini adalah pilihan rancangan yang disengaja untuk membuat kode lebih jelas dan karena itu lebih mudah untuk diamankan. Jadi, untuk membuat kontrak ERC-721 Vyper Anda, Anda mengambil [kontrak ini](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) dan memodifikasinya untuk mengimplementasikan logika bisnis yang Anda inginkan. -## Kesimpulan {#conclusion} +### Kesimpulan {#conclusion} Sebagai tinjauan, berikut adalah beberapa dari pokok pikiran terpenting dalam kontrak ini: diff --git a/public/content/translations/it/contributing/adding-layer-2s/index.md b/public/content/translations/it/contributing/adding-layer-2s/index.md index c2555ded0dc..e9849ec77de 100644 --- a/public/content/translations/it/contributing/adding-layer-2s/index.md +++ b/public/content/translations/it/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Non prendiamo in considerazione altre soluzioni di scalabilità che non utilizz Se desideri aggiungere un livello 2 su ethereum.org, crea un ticket su GitHub. - + Crea un ticket diff --git a/public/content/translations/it/contributing/content-resources/index.md b/public/content/translations/it/contributing/content-resources/index.md index e054d002c9b..86d4b4a66f0 100644 --- a/public/content/translations/it/contributing/content-resources/index.md +++ b/public/content/translations/it/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Le risorse di apprendimento saranno valutate sulla base dei seguenti criteri: Se desideri aggiungere a ethereum.org una risorsa di contenuto che soddisfa i criteri, crea un ticket su GitHub. - + Crea un ticket diff --git a/public/content/translations/it/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/it/developers/docs/design-and-ux/dex-design-best-practice/index.md index d45812a84dd..c63da6300fd 100644 --- a/public/content/translations/it/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/it/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ La legge della prossimità dice che gli elementi vicini sono percepiti come corr In definitiva ci sono pro e contro in entrambe le opzioni, ma è interessante come il trend sembri andare verso il token sulla destra. -# Comportamento del pulsante {#button-behavior} +## Comportamento del pulsante {#button-behavior} Non inserire un pulsante separato per Approva. Inoltre, non prevedere clic separati per Approva. L'utente vuole Scambiare, quindi basta indicare "scambia" sul pulsante e avviare l'approvazione come primo passaggio. Una finestra modale può mostrare il progresso con uno stepper o con una semplice notifica che dica "tx 1 di 2 - approvazione in corso". @@ -188,7 +188,7 @@ Non inserire un pulsante separato per Approva. Inoltre, non prevedere clic separ ![Una UI con un pulsante che indica approva](./15.png) -## Pulsanti come aiuto contestuale {#button-as-contextual-help} +### Pulsanti come aiuto contestuale {#button-as-contextual-help} Il pulsante può svolgere il doppio compito di avviso! @@ -206,7 +206,7 @@ Il pulsante può anche venire **mappato all'azione** che deve essere eseguita. P ![Messaggio di errore visualizzato nella CTA principale](./17.png) -## Costruisci la tua con questo file di Figma {#build-your-own-with-this-figma-file} +### Costruisci la tua con questo file di Figma {#build-your-own-with-this-figma-file} Grazie al duro lavoro di vari protocolli, la progettazione delle DEX è migliorata parecchio. Sappiamo di quali informazioni ha bisogno l'utente, come dobbiamo visualizzarle e come far andare più liscio possibile il flusso. Speriamo che questo articolo ti abbia dato una solida panoramica dei principi UX. diff --git a/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md index fe5495cd10a..1aa4513316d 100644 --- a/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/it/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Chiunque è autorizzato a trasferire un token, può bruciarlo. Anche se bruciare un token appare equivalente a trasferirlo all'indirizzo zero, l'indirizzo zero non riceve realmente il token. Ciò ci consente di liberare tutta l'archiviazione usata per il token, riducendo il costo del gas della transazione. -# Usare questo contratto {#using-contract} +## Usare questo contratto {#using-contract} A differenza di Solidity, Vyper non ha un ereditarietà. Si tratta di una scelta progettuale deliberata per rendere il codice più chiaro e quindi più facile da proteggere. Quindi, per creare il tuo contratto ERC-721 in Vyper, prendi [questo contratto](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) e lo modifichi per implementare la logica di business che desideri. -## Conclusione {#conclusion} +### Conclusione {#conclusion} Per ripasso presentiamo alcune delle idee più importanti in questo contratto: diff --git a/public/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md index 6275c7e1a6f..8dc7d89dbe0 100644 --- a/public/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/it/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - Hai utilizzato dei gestori di pacchetti come yarn o npm - Possiedi conoscenze molto essenziali dei contratti intelligenti e di Solidity -# Primi passi {#getting-started} +## Primi passi {#getting-started} Il tutorial dimostra la configurazione di prova e opera utilizzando yarn, ma non ci sono problemi se preferisci npm: fornirò gli adeguati riferimenti alla [documentazione](https://ethereum-waffle.readthedocs.io/en/latest/index.html) ufficiale di Waffle. -## Installa dipendenze {#install-dependencies} +### Installa dipendenze {#install-dependencies} [Aggiungi](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation) ethereum-waffle e le dipendenze di TypeScript alle dipendenze di sviluppo del tuo progetto. @@ -37,7 +37,7 @@ Il tutorial dimostra la configurazione di prova e opera utilizzando yarn, ma non yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## Esempio di contratto intelligente {#example-smart-contract} +### Esempio di contratto intelligente {#example-smart-contract} Durante il tutorial lavoreremo a un esempio di contratto intelligente semplice: EtherSplitter. Non fa molto, tranne che consentire a chiunque di inviare wei e dividerli uniformemente tra due destinatari predefiniti. La funzione di divisione richiede che il numero di wei sia pari, altrimenti si ripristinerà. Per entrambi i destinatari esegue un trasferimento di wei, seguito dall'emissione dell'evento Trasferimento. @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## Compila il contratto {#compile-the-contract} +### Compila il contratto {#compile-the-contract} Per [compilare](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract) il contratto, aggiungi il seguente elemento al file package.json: @@ -90,7 +90,7 @@ Poi, crea un file di configurazione di Waffle nella cartella di root del progett Esegui `yarn build`. Di conseguenza, la cartella `build` apparirà con il contratto compilato di EtherSplitter nel formato JSON. -## Testare la configurazione {#test-setup} +### Testare la configurazione {#test-setup} Testare con Waffle richiede l'utilizzo di abbinatori Chai e Mocha, quindi, devi [aggiungerli](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) al tuo progetto. Aggiorna il tuo file package.json e aggiungi l'elemento `test` nella parte degli script: @@ -103,7 +103,7 @@ Testare con Waffle richiede l'utilizzo di abbinatori Chai e Mocha, quindi, devi Se desideri [eseguire](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) i tuoi test, basta eseguire `yarn test`. -# Test {#testing} +## Test {#testing} Ora, crea la cartella `test` e crea il nuovo file `test\EtherSplitter.test.ts`. Copia il seguente frammento e incollalo sul nostro file di test. @@ -134,7 +134,7 @@ Solo due parole prima di iniziare. `MockProvider` offre una versione fittizia de Quindi, dichiariamo una variabile detta "splitter" (divisore), che è il nostro contratto fittizio EtherSplitter. È creato prima di ogni esecuzione di un singolo test dal metodo `deployContract`. Questo metodo simula la distribuzione di un contratto dal portafoglio passato come primo parametro (nel nostro caso, il portafoglio del mittente). Il secondo parametro è l'ABI e il bytecode del contratto testato; qui, passiamo il file json del contratto compilato EtherSplitter dalla cartella `build`. Il terzo parametro è un insieme con gli argomenti del costruttore del contratto che, nel nostro caso, sono gli indirizzi dei due destinatari. -## changeBalances {#changebalances} +### changeBalances {#changebalances} Prima controlleremo se il metodo di divisione modifica effettivamente i saldi dei portafogli dei destinatari. Se dividiamo 50 wei dall'account del mittente, i saldi di entrambi i destinatari dovrebbero aumentare di 25 wei. Utilizzeremo l'abbinatore di Waffle "`changeBalances`: @@ -162,7 +162,7 @@ Nota che in entrambi i casi di `changeBalance` e `changeBalances`, passiamo la f Poi, testeremo se l'evento Trasferimento è stato emesso dopo ogni trasferimento di wei. Ci rivolgeremo a un altro abbinatore da Waffle: -## Emetti {#emit} +### Emetti {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { L'abbinatore `emit` ci consente di verificare se un contratto ha emesso un evento alla chiamata di un metodo. Come parametri all'abbinatore `emit`, forniamo il contratto fittizio che prevediamo emetterà l'evento, insieme al nome di tale evento. Nel nostro caso, il contratto fittizio è `splitter` e il nome dell'evento è `Trasferimento`. Inoltre, possiamo verificare i valori precisi degli argomenti con cui è stato emesso l'evento; passiamo altrettanti argomenti all'abbinatore `withArgs`, come previsto dalla dichiarazione del nostro evento. Nel caso del contratto EtherSplitter, passiamo gli indirizzi del mittente e del destinatario insieme all'importo trasferito di wei. -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} Come ultimo esempio verificheremo se la transazione è stata ripristinata, nel caso di un numero dispari di wei. Utilizzeremo l'abbinatore `revertedWith`: @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { Il test, se superato, ci assicurerà che la transazione è stata effettivamente ripristinata. Tuttavia, deve anche verificarsi una corrispondenza esatta tra i messaggi passati nella dichiarazione `require` e il messaggio previsto in `revertedWith`. Se torniamo al codice del contratto EtherSplitter, nella dichiarazione `require` per l'importo di wei, forniamo il messaggio: "Importo di wei dispari non consentito". Questo corrisponde al messaggio che ci aspettiamo nel nostro test. Se non fossero stati uguali, il test sarebbe fallito. -# Congratulazioni! {#congratulations} +## Congratulazioni! {#congratulations} Hai compiuto il tuo primo grande passo verso il test dei contratti intelligenti con Waffle! Potresti essere interessato ad altri tutorial di Waffle: diff --git a/public/content/translations/ja/contributing/adding-layer-2s/index.md b/public/content/translations/ja/contributing/adding-layer-2s/index.md index 6bedb8f5af5..9a8b1a8646b 100644 --- a/public/content/translations/ja/contributing/adding-layer-2s/index.md +++ b/public/content/translations/ja/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _データの可用性やセキュリティにイーサリアムを使用しな ethereum.orgにレイヤー2の追加をご希望の場合は、GitHubで問題を作成してください。 - + 問題の作成 diff --git a/public/content/translations/ja/contributing/content-resources/index.md b/public/content/translations/ja/contributing/content-resources/index.md index b6ce38c02ec..b4cbcb02fa9 100644 --- a/public/content/translations/ja/contributing/content-resources/index.md +++ b/public/content/translations/ja/contributing/content-resources/index.md @@ -27,6 +27,6 @@ description: ethereum.orgへのコンテンツリソースの掲載基準 本基準を満たしたコンテンツのethereum.orgへの掲載をご希望の場合は、GitHubで問題を作成してください。 - + 問題の作成 diff --git a/public/content/translations/ja/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/ja/developers/docs/design-and-ux/dex-design-best-practice/index.md index 17907a0a5d0..df9ee52e5e8 100644 --- a/public/content/translations/ja/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/ja/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -178,7 +178,7 @@ DeFi初期の頃は、法定通貨換算の価値表示がしばしば欠けて 最終的には、どちらのオプションにも利点と欠点がありますが、トークンを右側に配置するトレンドが見られるのは興味深いです。 -# ボタンの動作 {#button-behavior} +## ボタンの動作 {#button-behavior} 承認用の別ボタンは設けないでください。 また、承認のための別クリックも不要です。 ユーザーはスワップを望んでいるので、ボタンには単に「スワップ」と表示し、最初のステップとして承認を開始してください。 モーダルでステッパーを使って進捗を表示するか、シンプルに「取引1/2 - 承認中」という通知を表示することができます。 @@ -186,7 +186,7 @@ DeFi初期の頃は、法定通貨換算の価値表示がしばしば欠けて ![A UI with one button that says approve](./15.png) -## コンテキストヘルプとしてのボタン {#button-as-contextual-help} +### コンテキストヘルプとしてのボタン {#button-as-contextual-help} ボタンはアラートとしても活用できます! @@ -204,7 +204,7 @@ DeFi初期の頃は、法定通貨換算の価値表示がしばしば欠けて ![Error message shown within the main CTA](./17.png) -## Figmaファイルで自作する {#build-your-own-with-this-figma-file} +### Figmaファイルで自作する {#build-your-own-with-this-figma-file} 複数のプロトコルの尽力により、DEXのデザインは大幅に改善されました。 私たちは、ユーザーが必要とする情報や、その表示方法、そしてできるだけスムーズなフローの作り方を理解しています。 この記事がUXの基本原則についてのしっかりとした概要を提供できていれば幸いです。 diff --git a/public/content/translations/ja/developers/docs/design-and-ux/heuristics-for-web3/index.md b/public/content/translations/ja/developers/docs/design-and-ux/heuristics-for-web3/index.md index 425acb38549..f0f9ddd4b21 100644 --- a/public/content/translations/ja/developers/docs/design-and-ux/heuristics-for-web3/index.md +++ b/public/content/translations/ja/developers/docs/design-and-ux/heuristics-for-web3/index.md @@ -52,7 +52,7 @@ lang: ja 例: フッターに目立つサイズで監査結果を掲載します。 -![Audits refernced in the website footer](./Image2.png) +![Audits referenced in the website footer](./Image2.png) ### 3. 最も重要な情報が明確である {#the-most-important-info-is-obvious} diff --git a/public/content/translations/ja/developers/docs/standards/tokens/erc-777/index.md b/public/content/translations/ja/developers/docs/standards/tokens/erc-777/index.md deleted file mode 100644 index b22445732cd..00000000000 --- a/public/content/translations/ja/developers/docs/standards/tokens/erc-777/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: ERC-777 トークン規格 -description: -lang: ja ---- - -## {#introduction} - -**** - -**** - -フックとは、スマートコントラクトのコードで記述された関数です。 フックは、コントラクトによりトークンが送受信される際に呼び出されます。 これにより、スマートコントラクトはトークンの受信/送信に対応できるようになります。 - -## {#prerequisites} - -- []() -- []() -- []() - -## {#body} - -フックの登録および検出は、[ERC-1820](https://eips.ethereum.org/EIPS/eip-1820)規格に基づいて実行されます。 - -ERC-777はさらに、ERC-20における`通貨の最小単位`に関する混乱を解消します。 この混乱を解消することで、デベロッパーの利用体験が向上します。 - -ERC-777コントラクトとの間は、ERC-20コントラクトに対する場合と同様のやりとりが可能です。 - -### {#methods} - -```solidity - -``` - -### {#events} - -```solidity - -``` - -### {#web3py-example} - -#### {#web3py-example} - -``` - -``` - -```python - - - - -``` - -```python - - -``` - -## {#popular-nfts} - -- -- -- -- -- -- -- -- - -## 参考文献 {#further-reading} - -- []() -- []() -- []() -- []() diff --git a/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md index 9e6bbd25911..8a073d19f70 100644 --- a/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/ja/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): トークンの送信が許可されているユーザーは、そのトークンをバーンすることができます。 バーンは、ゼロアドレスへの送信と同じ外見を持ちますが、このゼロアドレスは実際にはこのトークンを受け取りません。 バーンを通じて、このトークンに使用されたすべてのストレージを解放できるため、トランザクションのガス代を軽減することができます。 -# コントラクトの使用方法 {#using-contract} +## コントラクトの使用方法 {#using-contract} Solidityとは異なり、Viperは相続機能を提供しません。 これは、コードをより明確にし、セキュリティを確保しやすくするための意図的な設計上の選択によるものです。 このため、あなた自身がVyperでERC-721コントラクトを作成する際は、[このコントラクト](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy)を用いて修正し、必要なビジネスロジックを実装してください。 -## まとめ {#conclusion} +### まとめ {#conclusion} このコントラクトにつき、最も重要なポイントを以下にまとめました: diff --git a/public/content/translations/ja/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/ja/developers/tutorials/waffle-test-simple-smart-contract/index.md index a3464307588..977e6b72c4f 100644 --- a/public/content/translations/ja/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/ja/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - yarnやnpmなどのパッケージマネージャーを使用したことがある - スマートコントラクトおよびSolidityのごく基本的な知識を持っている -# はじめに {#getting-started} +## はじめに {#getting-started} このチュートリアルでは、yarnを使ってテストのセットアップおよび実行をしていますが、npmの方が良ければnpmでも問題ありません。公式のWaffleのドキュメントは、[こちら](https://ethereum-waffle.readthedocs.io/en/latest/index.html)になります。 -## 依存関係のインストール {#install-dependencies} +### 依存関係のインストール {#install-dependencies} プロジェクトに対してethereum-waffleとtypescriptの依存関係を開発環境の依存関係に[追加](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation)します。 @@ -37,7 +37,7 @@ published: 2021-02-26 yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## スマートコントラクトのコード例 {#example-smart-contract} +### スマートコントラクトのコード例 {#example-smart-contract} このチュートリアルでは、EtherSplitterというシンプルなスマートコントラクトの例に取り組みます。 このコードでは、誰もがweiを送信でき、それを2つの事前定義された受信者間で均等に分割するだけです。 split関数ではweiの数が偶数でなければなりません。さもないと処理が取り消されます。 両方の受信者に対して、weiの送金を実行し、続いてTransferイベントを発行します。 @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## コントラクトのコンパイル {#compile-the-contract} +### コントラクトのコンパイル {#compile-the-contract} コントラクトを[コンパイル](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract)するのに、package.jsonファイルに次のエントリを追加します。 @@ -90,7 +90,7 @@ contract EtherSplitter { `yarn build`を実行してください。 終了すると、`build`ディレクトリに、JSON形式でコンパイルされたEtherSplitterコントラクトが現れます。 -## テストの設定 {#test-setup} +### テストの設定 {#test-setup} Waffleでテストするには ChaiマッチャーとMochaが必要になるため、プロジェクトに[追加](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests)します。 次のようにscriptの場所に`test`エントリを追加してpackage.jsonファイルを更新してください。 @@ -103,7 +103,7 @@ Waffleでテストするには ChaiマッチャーとMochaが必要になるた テストを[実行](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests)する場合は、 `yarn test`を実行します。 -# テストを実行する {#testing} +## テストを実行する {#testing} それでは、`test`ディレクトリを作成し、新しいファイル `test\EtherSplitter.test.ts`を作成してください。 以下のスニペットをコピーして、テストファイルに貼り付けてください。 @@ -134,7 +134,7 @@ describe("Ether Splitter", () => { 次に、「splitter」という変数を宣言します。これは、 EtherSplitterコントラクトのモックです。 このモックは、単一のテストを実行する前に`deployContract`メソッドによって作成されます。 当該のメソッドは、最初のパラメータとして渡されたウォレット (この場合は送信者のウォレット) からコントラクトのデプロイメントをシミュレートします。 2番目のパラメータは、テストされるコントラクトのABIとバイトコードです。コンパイルされたEtherSplitterコントラクトのjsonファイルを`build`ディレクトから渡します。 3番目のパラメータは、コントラクトのコンストラクタ引数を持つ配列です。この場合、受信者の2つのアドレスです。 -## changeBalances {#changebalances} +### changeBalances {#changebalances} まず、splitメソッドによって実際に受取人のウォレットの残高が変わるかどうかを確認します。 送信者のアカウントから50weiを分割すると、両方の受信者の残高が25wei増えることが期待されます。 ここで、Waffleの`changeBalances`マッチャーを使います。 @@ -162,7 +162,7 @@ it("Changes account balance", async () => { 次では、weiの各転送後にTransferイベントが発行されたかどうかをテストします。 それでは、Waffleの別のマッチャーに移ります。 -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { `emit`マッチャーを使うと、メソッドの呼び出し時にコントラクトがイベントを発行したかどうかを確認できます。 `emit`マッチャーへのパラメーターとして、イベントを発行することが予期されるモックコントラクトとそのイベントの名前を渡します。 この場合、モックコントラクトは`splitter`で、イベント名は`Transfer`です。 また、イベントの発行で引数の正確な値を検証することもできます。その場合、イベントの宣言で期待される数の引数を `withArgs`マッチャーに渡します。 EtherSplitterコントラクトの場合では、送金されるwei単位の金額とともに送信者と受信者のアドレスを渡します。 -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} 最後の例として、weiの数が奇数の場合にトランザクションが取り消されるかどうかを確認します。 ここでは、`revertedWith`マッチャーを使います。 @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { このテストをパスすれば、トランザクションが実際に取り消されたことが保証されます。 ただし、`require`ステートメントで渡したメッセージと、`revertedWith`で期待しているメッセージとが完全に一致している必要があります。 EtherSplitterコントラクトのコードに戻った場合、weiの金額の`require`ステートメントで、「偶数でないwei単位の金額は許可されていません」というメッセージが表示されます。 これは、テストで予期されるメッセージと一致します。 それらが等しくなければ、テストは失敗します。 -# おめでとうございます! {#congratulations} +## おめでとうございます! {#congratulations} Waffleでスマートコントラクトをテストするための最初の大きな一歩を踏み出すことができました。 他のWaffleのチュートリアルについては、以下をご参照ください。 diff --git a/public/content/translations/pt-br/contributing/adding-layer-2s/index.md b/public/content/translations/pt-br/contributing/adding-layer-2s/index.md index 08f7dd53614..c465ca5edd4 100644 --- a/public/content/translations/pt-br/contributing/adding-layer-2s/index.md +++ b/public/content/translations/pt-br/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Não consideramos outras soluções de dimensionamento que não usam o Ethereum Se você quiser adicionar uma camada 2 ao ethereum.org, abra um tíquete no Github. - + Crie um ticket diff --git a/public/content/translations/pt-br/contributing/content-resources/index.md b/public/content/translations/pt-br/contributing/content-resources/index.md index 8215db0dd93..acba18e7eb7 100644 --- a/public/content/translations/pt-br/contributing/content-resources/index.md +++ b/public/content/translations/pt-br/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Conteúdos de aprendizado serão avaliados pelos seguintes critérios: Se você deseja adicionar uma fonte de conteúdo ao ethereum.org que atende aos critérios, abra um tíquete no GitHub. - + Criar um novo problema diff --git a/public/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md b/public/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md index 3f1a8b3b7e5..5ea32476a61 100644 --- a/public/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md +++ b/public/content/translations/pt-br/contributing/translation-program/how-to-translate/index.md @@ -18,7 +18,7 @@ Para as pessoas que aprendem melhor de forma visual, assistam ao vídeo do Luka Você precisará fazer login na sua conta do Crowdin ou criar uma conta, caso ainda não tenha. Você só precisa de uma conta de e-mail e senha para se cadastrar. - + Junte-se ao projeto diff --git a/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md index 18e42ed6009..b782878b951 100644 --- a/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/pt-br/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Qualquer pessoa autorizada a transferir um token, tem permissão para queimá-lo. Enquanto uma queima aparece equivalente à transferência para o endereço zero, o endereço zero não recebe de verdade o token. Isso permite-nos liberar todo o armazenamento usado pelo token, o que pode reduzir o custo de gás da transação. -# Usando este contrato {#using-contract} +## Usando este contrato {#using-contract} Ao contrário do Solidity, o Vyper não tem herança. Esta é uma escolha de design deliberada para tornar o código mais claro e, com isso, mais fácil de proteger. Portanto, para criar seu próprio contrato Vyper ERC-721, você usa [este contrato](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) e o modifica para implementar a lógica comercial que você desejar. -## Conclusão {#conclusion} +### Conclusão {#conclusion} Recapitulando, aqui estão algumas das ideias mais importantes neste contrato: diff --git a/public/content/translations/pt-br/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/pt-br/developers/tutorials/waffle-test-simple-smart-contract/index.md index 8d2d9f44d07..ccbdae1f85b 100644 --- a/public/content/translations/pt-br/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/pt-br/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - Você tem usado gerenciadores de pacotes como Yarn ou NPM - Você possui um conhecimento muito básico de contratos inteligentes e Solidity -# Introdução {#getting-started} +## Introdução {#getting-started} O tutorial demonstra a configuração do teste e a execução usando yarn, mas não há problema se você preferir npm - Eu fornecerei referências adequadas a [documentação](https://ethereum-waffle.readthedocs.io/en/latest/index.html) oficial do Waffle. -## Instalando Dependências {#install-dependencies} +### Instalando Dependências {#install-dependencies} [Adicione](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation) as dependências do ethereum-waffle e typescript às dependências de desenvolvimento do seu projeto. @@ -37,7 +37,7 @@ O tutorial demonstra a configuração do teste e a execução usando yarn, mas n yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## Exemplo de contrato inteligente {#example-smart-contract} +### Exemplo de contrato inteligente {#example-smart-contract} Durante o tutorial, nós trabalharemos em um exemplo de contrato inteligente simples - EtherSplitter. Não faz nada de mais, além de permitir que qualquer um envie somas em wei e divida-as igualmente entre dois destinatários predefinidos. A função split exige que a quantidade de wei seja par, caso contrário, ela será anulada. Para ambos os destinatários, ela realiza uma transferência em wei, seguido da emissão do evento Transferir. @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## Compilar o contrato {#compile-the-contract} +### Compilar o contrato {#compile-the-contract} Para [compilar](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract) o contrato, adicione a seguinte entrada ao arquivo package.json: @@ -90,7 +90,7 @@ Em seguida, crie o arquivo de configuração do Waffle, no diretório raiz do pr Execute `yarn build`. Como resultado, o diretório `build` aparecerá com o contrato compilado, EtherSplitter, no formato JSON. -## Teste de configuração {#test-setup} +### Teste de configuração {#test-setup} Testar com Waffle requer usar os matchers (comparadores) Chai e Mocha, então você precisa [adicionar](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) ao seu projeto. Atualize seu arquivo package.json e adicione a entrada `test` na parte de scripts: @@ -103,7 +103,7 @@ Testar com Waffle requer usar os matchers (comparadores) Chai e Mocha, então vo Se você quiser [executar](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) seus testes, basta executar `yarn test`. -# Testando {#testing} +## Testando {#testing} Agora crie o diretório `test` e crie o novo arquivo `test\EtherSplitter.test.ts`. Copie o trecho de código abaixo e cole-o em nosso arquivo de teste. @@ -134,7 +134,7 @@ Algumas palavras antes de começarmos. O `MockProvider` vem com uma versão em m Em seguida, declaramos uma variável chamada 'splitter' - este é o nosso contrato mock EtherSplitter. Ele é criado antes de cada execução de um único teste pelo método `deployContract`. Este método simula a implantação de um contrato, da carteira passada como primeiro parâmetro (a carteira do remetente em nosso caso). O segundo parâmetro é a ABI e o bytecode do contrato testado — passamos para lá o arquivo json do contrato EtherSplitter compilado no diretório `build`. O terceiro parâmetro é uma matriz com os argumentos do construtor do contrato que, no nosso caso, são os dois endereços dos destinatários. -## changeBalances {#changebalances} +### changeBalances {#changebalances} Primeiro, verificaremos se o método split realmente altera os saldos das carteiras dos destinatários. Se dividirmos 50 wei da conta do remetente, nós esperaríamos que os saldos de ambos os destinatários aumentassem em 25 wei. Nós usaremos o matcher `changeBalances` do Waffle: @@ -162,7 +162,7 @@ Observe que, em ambos os casos de `changeBalance` e de `changeBalances`, transmi A seguir, testaremos se o evento Transfer foi emitido após cada transferência de wei. Vamos passar para outro comparador do Waffle: -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { O matcher `emit` nos permite verificar, se um contrato emitiu um evento ao chamar um método. Como parâmetros para o matcher `emit`, nós fornecemos o mock do contrato, que prevemos para emitir o evento, juntamente com o nome desse evento. Em nosso caso, o contrato simulado é o `splitter` e o nome do evento é `Transfer`. Nós também podemos verificar os valores precisos dos argumentos, com os quais o evento foi emitido - nós passamos tantos argumentos para o matcher `withArgs`, como espera a nossa declaração de evento. No caso do contrato EtherSplitter, passamos os endereços do remetente e do destinatário, juntamente com a quantia de wei transferida. -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} Como último exemplo, nós verificaremos se a transação foi revertida, em caso de número desigual de wei. Usaremos o matcher `revertedWith`: @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { O teste, se aprovado, nos garantirá que a transação foi revertida de fato. No entanto, também deve haver uma correspondência exata entre as mensagens que passamos, na instrução `require` e a mensagem que esperamos em `revertedWith`. Se voltarmos ao código do contrato EtherSplitter, na declaração `require` para a quantidade wei, fornecemos a mensagem: 'Quantidade de wei desigual não permitida'. Isso corresponde à mensagem que esperamos em nosso teste. Se eles não fossem iguais, o teste falharia. -# Parabéns! {#congratulations} +## Parabéns! {#congratulations} Você acabou de dar seu primeiro grande passo para testar contratos inteligentes com Waffle! Caso esteja interessado em outros tutoriais do Waffle: diff --git a/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md index d64c0889b48..95a18023ef2 100644 --- a/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/ro/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Oricine este autorizat să transfere un token este autorizat să îl și ardă. În timp ce arderea pare echivalentul unui transfer la adresa zero, această adresă nu primește de fapt tokenul. Aceasta ne permite să eliberăm tot spațiul de stocare folosit pentru token, ceea ce poate reduce costul de gaz al tranzacției. -# Utilizarea acestui contract {#using-contract} +## Utilizarea acestui contract {#using-contract} Spre deosebire de Solidity, Vyper nu are funcția de moștenire. Aceasta este o opțiune deliberată de concepție, pentru a conferi claritate codului, facilitându-i prin aceasta securizarea. Deci, pentru a vă crea propriul contract Vyper ERC-721, porniți de la [acest contract](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) și modificați-l pentru a implementa logica operațională pe care o doriți. -## Concluzie {#conclusion} +### Concluzie {#conclusion} În recapitulare, iată câteva din cele mai importante idei din acest contract: diff --git a/public/content/translations/sr/contributing/adding-layer-2s/index.md b/public/content/translations/sr/contributing/adding-layer-2s/index.md index 0d58a692af2..17e18780720 100644 --- a/public/content/translations/sr/contributing/adding-layer-2s/index.md +++ b/public/content/translations/sr/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Ne uzimamo u obzir druga rešenja za skaliranje koja ne koriste Ethereum za dos Ukoliko želite da dodate nivo 2 na ethereum.org, kreirajte upit na GitHub-u. - + Kreirajte upit diff --git a/public/content/translations/sr/contributing/content-resources/index.md b/public/content/translations/sr/contributing/content-resources/index.md index 6bf7e0c6ca8..d5195ee4b48 100644 --- a/public/content/translations/sr/contributing/content-resources/index.md +++ b/public/content/translations/sr/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Edukativni resursi će biti ocenjivani prema sledećim kriterijumima: Ukoliko želite da dodate resurs za sadržaj na ethereum.org i ukoliko taj izvor ispunjava kriterijume, kreirajte upit na GitHub-u. - + Kreirajte upit diff --git a/public/content/translations/tr/contributing/adding-layer-2s/index.md b/public/content/translations/tr/contributing/adding-layer-2s/index.md index df1fcf7283c..4952c0b9de5 100644 --- a/public/content/translations/tr/contributing/adding-layer-2s/index.md +++ b/public/content/translations/tr/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _Veri kullanılabilirliği veya güvenlik için Ethereum kullanmayan diğer öl Ethereum.org'a bir katman 2 eklemek istiyorsanız, GitHub'da bir konu oluşturun. - + Bir konu oluştur diff --git a/public/content/translations/tr/contributing/content-resources/index.md b/public/content/translations/tr/contributing/content-resources/index.md index 36e8c9acd26..ea6e40165e1 100644 --- a/public/content/translations/tr/contributing/content-resources/index.md +++ b/public/content/translations/tr/contributing/content-resources/index.md @@ -27,6 +27,6 @@ Bir sayfaya eklenmesi gerektiğini düşündüğünüz bir içerik kaynağı var Eğer ethereum.org'a içerik kaynağı eklemek istiyorsanız ve kriterleri karşılıyorsa GitHub'da bir konu oluşturun. - + Bir konu oluştur diff --git a/public/content/translations/tr/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/tr/developers/docs/design-and-ux/dex-design-best-practice/index.md index 3c4c848be03..a0202ec96af 100644 --- a/public/content/translations/tr/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/tr/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -179,7 +179,7 @@ Yakınlık yasası, birbirine yakın duran öğelerin birbiriyle alakalı olarak Sonuç olarak, iki seçeneğin de artıları ve eksileri vardır fakat jetonun sağa yerleştirilmesi ilginç bir şekilde daha popülerdir. -# Buton davranışı {#button-behavior} +## Buton davranışı {#button-behavior} Onaylama için ayrı bir buton oluşturmayın. Onaylama için ayrı bir tıklamaya da gerek olmasın. Kullanıcı Takas yapmak istiyor, butona “swap” deyin ve ilk adım olarak onayı başlatın. Bir mod, bir adımlayıcı ile ilerlemeyi veya basit bir "tx 1/2 - onaylanıyor" bildirimini gösterebilir. @@ -187,7 +187,7 @@ Onaylama için ayrı bir buton oluşturmayın. Onaylama için ayrı bir tıklama ![Onayla yazan tek bir butona sahip bir UI](./15.png) -## Bağlamsal yardım olarak buton {#button-as-contextual-help} +### Bağlamsal yardım olarak buton {#button-as-contextual-help} Bu buton bir uyarı görevi de görebilir! @@ -205,7 +205,7 @@ Buton, aynı zamanda gerçekleştirilmesi gereken **eylemle de eşleştirilebili ![Ana CTA içinde gösterilen hata mesajı](./17.png) -## Bu figma dosyasıyla kendinizinkini oluşturun {#build-your-own-with-this-figma-file} +### Bu figma dosyasıyla kendinizinkini oluşturun {#build-your-own-with-this-figma-file} Birçok farklı protokolün sıkı çalışması sayesinde merkeziyetsiz borsa tasarımı oldukça ilerledi. Kullanıcının hangi bilgilere ihtiyacı olduğunu, bu bilgileri nasıl göstermemiz gerektiğini ve bu akışı nasıl mümkün olabildiğince düzgün yapabileceğimizi biliyoruz. Bu makalenin UX prensipleriyle ilgili sağlam bir temel sunabildiğini umarız. diff --git a/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md index d3010de1966..25254b47a84 100644 --- a/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/tr/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): Bir token'ı transfer etmesine izin verilen herkesin onu yakmasına izin verilir. Bir yakma işlemi, sıfır adresine aktarıma eş değer görünse de, sıfır adresi aslında token'ı almaz. Bu, token için kullanılan tüm depolama alanını boşaltmamızı sağlar ve bu da işlemin gasz maliyetini azaltabilir. -# Bu Sözleşmeyi Kullanmak {#using-contract} +## Bu Sözleşmeyi Kullanmak {#using-contract} Solidity'nin aksine, Vyper'ın kalıtımı yoktur. Bu, kodu daha net hâle getirmek ve dolayısıyla güvenliğini sağlamak için bilinçli bir tasarım seçimidir. Bu nedenle, kendi Vyper ERC-721 sözleşmenizi oluşturmak için [bu sözleşmeyi](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy) alın ve istediğiniz iş mantığını uygulamak için değiştirin. -## Sonuç {#conclusion} +### Sonuç {#conclusion} İnceleme için, bu sözleşmedeki en önemli fikirlerden bazıları şunlardır: diff --git a/public/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md index 20b01d0d49e..8c71275ad41 100644 --- a/public/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/tr/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - Yarn ya da npm gibi bazı paket yöneticilerini daha önce kullandınız - Akıllı sözleşmeler ve Solidity ile ilgili giriş seviyesinde bilgi sahibisiniz -# Başlarken {#getting-started} +## Başlarken {#getting-started} Bu öğretici, yarn kullanarak test kurulumunu ve çalıştırmasını göstermektedir ancak npm tercihinde bulunmanız da sorun teşkil etmez. Resmi Waffle [dokümanlarına](https://ethereum-waffle.readthedocs.io/en/latest/index.html) uygun referanslar sunacağım. -## Bağımlılıkları Yükleme {#install-dependencies} +### Bağımlılıkları Yükleme {#install-dependencies} Ethereum-waffle ve typescript bağımlılıklarını projenizin dev bağımlılıklarına [ekleyin](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation). @@ -37,7 +37,7 @@ Ethereum-waffle ve typescript bağımlılıklarını projenizin dev bağımlıl yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## Örnek akıllı sözleşme {#example-smart-contract} +### Örnek akıllı sözleşme {#example-smart-contract} Öğretici boyunca basit bir akıllı sözleşme örneği olan EtherSplitter üzerinde çalışacağız. Bu, herhangi birinin belirli bir miktarda wei göndermesine ve bu miktarı önceden tanımlanmış iki alıcı arasında eşit olarak bölmesine izin vermenin haricinde pek bir şey yapmaz. Bölme işleminin gerçekleşmesi için wei sayısının çift olması gerekir, aksi takdirde işlem geri döner. Her iki alıcı için de, önce bir wei transferi ve ardından Transfer olayı gerçekleştirilir. @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## Sözleşmeyi derleme {#compile-the-contract} +### Sözleşmeyi derleme {#compile-the-contract} Sözleşmeyi [derlemek](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract) için aşağıdaki girdiyi package.json dosyasına ekleyin: @@ -90,7 +90,7 @@ Sonraki adım olarak, proje kök dizininde - `waffle.json` - Waffle yapılandır `yarn build` komutunu çalıştırın. Sonuç olarak, JSON formatında derlenmiş EtherSplitter sözleşmesinin bulunduğu `build` dizini görünecektir. -## Test kurulumu {#test-setup} +### Test kurulumu {#test-setup} Waffle ile test yapmak için Chai eşleştiricilerini ve Mocha'yı kullanmanız gerekeceğinden, bunları projenize [eklemeniz](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests) gerekir. Package.json dosyanızı güncelleyin ve komut dosyaları bölümüne `test` girdisini ekleyin: @@ -103,7 +103,7 @@ Waffle ile test yapmak için Chai eşleştiricilerini ve Mocha'yı kullanmanız Eğer testlerinizi [çalıştırmak](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests) istiyorsanız, sadece `yarn test` komutunu çalıştırmanız yeterlidir. -# Test {#testing} +## Test {#testing} Şimdi `test` dizinini ve `test\EtherSplitter.test.ts` yeni dosyasını oluşturun. Aşağıdaki kod parçasını kopyalayın ve test dosyanıza yapıştırın. @@ -134,7 +134,7 @@ Başlamadan önce bir kaç kelime. `MockProvider`, blokzinciri taklit eden bir s Sonraki adımda, "splitter" adında bir değişken tanımlıyoruz; bu, taklit EtherSplitter sözleşmemizdir. Bu, tek bir testin her yürütülmesinden önce `deployContract` yöntemi ile oluşturulur. Bu yöntem, ilk parametre olarak aktarılan cüzdandan (bizim durumumuzda göndericinin cüzdanı) bir sözleşmenin dağıtımını simüle eder. İkinci parametre, test edilen sözleşmenin ABI'si ve bit kodudur; burada `build` dizininden derlenmiş EtherSplitter sözleşmesinin json dosyasını aktarıyoruz. Üçüncü parametre, sözleşmenin oluşturucu argümanlarının bir dizisidir; bizim durumumuzda ise alıcıların iki adresidir. -## changeBalances {#changebalances} +### changeBalances {#changebalances} İlk olarak, bölme yönteminin alıcıların cüzdan bakiyelerini gerçekten değiştirip değiştirmediğini kontrol edeceğiz. Eğer gönderen hesaptan 50 wei bölersek, her iki alıcının bakiyelerinin de 25 wei artmasını bekleriz. Waffle'ın `changeBalances` eşleştiricisini kullanacağız: @@ -162,7 +162,7 @@ Hem `changeBalance` hem de `changeBalances` durumlarında, eşleştiricinin ça Sonra, her wei transferi sonrası Transfer olayının yayımlanıp yayımlanmadığını test ediyoruz. Waffle'daki başka bir eşleştiriciye geçeceğiz: -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { `emit` eşleştiricisi, bir sözleşmenin bir yöntemi çağırırken bir etkinlik yayımlayıp yayımlamadığını kontrol etmemizi sağlar. `emit` eşleştiricisinin parametreleri olarak, olayı yayımlayacağını tahmin ettiğimiz taklit sözleşmeyi ve bu olayın adını sağlıyoruz. Bizim durumumuzda, taklit sözleşme `splitter` ve olayın adı `Transfer`'dir. Ayrıca, olayın yayımlandığı sırada verilen argümanların kesin değerlerini de doğrulayabiliriz; `withArgs` eşleştiricisine, olay bildirimi beklediğimiz sayıda argümanı aktarırız. EtherSplitter sözleşmesi durumunda ise, gönderici ve alıcının adresleri ile transfer edilen wei miktarını aktarırız. -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} Son örnek olarak, wei miktarının çift olmadığı durumlarda işlemin geri dönüp dönmediğini kontrol edeceğiz. `revertedWith` eşleştiricisini kullanacağız: @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { Eğer test başarılı olursa, işlemin gerçekten geri döndüğüne emin olacağız. Ancak `require` ifadesine aktardığımız mesajlar ile `revertedWith` içinde beklediğimiz mesaj arasında kesin bir eşleşme olmalıdır. EtherSplitter sözleşmesinin koduna geri dönersek, wei miktarı için `require` ifadesine mesaj olarak "Tek wei miktarına izin verilmiyor" ifadesini giriyoruz. Bu, testimizde beklediğimiz mesajla eşleşir. Eğer eşit değillerse, test başarısız olacaktır. -# Tebrikler! {#congratulations} +## Tebrikler! {#congratulations} Waffle ile akıllı sözleşmeleri test etmenin ilk büyük adımını tamamladınız! Diğer Waffle öğreticileri de ilginizi çekebilir: diff --git a/public/content/translations/zh-tw/contributing/adding-layer-2s/index.md b/public/content/translations/zh-tw/contributing/adding-layer-2s/index.md index 9a6c4a5bd46..3e476220719 100644 --- a/public/content/translations/zh-tw/contributing/adding-layer-2s/index.md +++ b/public/content/translations/zh-tw/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _我們認為,其他不使用以太坊來實現資料可用性或安全性的 如果你想在 ethereum.org 上新增二層網路層,請在 GitHub 上建立議題。 - + 建立一個議題 diff --git a/public/content/translations/zh-tw/contributing/content-resources/index.md b/public/content/translations/zh-tw/contributing/content-resources/index.md index 51cc723e439..0b1107dfa00 100644 --- a/public/content/translations/zh-tw/contributing/content-resources/index.md +++ b/public/content/translations/zh-tw/contributing/content-resources/index.md @@ -27,6 +27,6 @@ description: 我們在 ethereum.org 上列出內容資源的標準 如果你想將內容資源新增至 ethereum.org 並且它符合標準,請在 GitHub 上建立一個議題。 - + 創建一個議題 diff --git a/public/content/translations/zh/contributing/adding-layer-2s/index.md b/public/content/translations/zh/contributing/adding-layer-2s/index.md index d57ce9f51d1..2aec168e548 100644 --- a/public/content/translations/zh/contributing/adding-layer-2s/index.md +++ b/public/content/translations/zh/contributing/adding-layer-2s/index.md @@ -92,6 +92,6 @@ _我们认为,其他不使用以太坊来实现数据可用性或安全性的 如果你想将二层网络添加到 ethereum.org,请在 GitHub 上创建一个提议。 - + 创建一个提议 diff --git a/public/content/translations/zh/contributing/content-resources/index.md b/public/content/translations/zh/contributing/content-resources/index.md index c9f33cd0bab..049361ca6ba 100644 --- a/public/content/translations/zh/contributing/content-resources/index.md +++ b/public/content/translations/zh/contributing/content-resources/index.md @@ -27,6 +27,6 @@ description: 在 ethereum.org 上上架内容资源的标准 如果你想要将内容资源添加到 ethereum.org,并且该内容资源符合标准,请在 GitHub 上创建一个提议。 - + 创建一个提议 diff --git a/public/content/translations/zh/developers/docs/design-and-ux/dex-design-best-practice/index.md b/public/content/translations/zh/developers/docs/design-and-ux/dex-design-best-practice/index.md index c4912ed77a6..92e6b7c2c7f 100644 --- a/public/content/translations/zh/developers/docs/design-and-ux/dex-design-best-practice/index.md +++ b/public/content/translations/zh/developers/docs/design-and-ux/dex-design-best-practice/index.md @@ -180,7 +180,7 @@ Figma 工具包也附于本文底部 - 请随意使用,快速制作你自己 总的来说,两种选择各有优缺点,但有趣的是,当前的趋势似乎是将代币放在右边。 -# 按钮行为 {#button-behavior} +## 按钮行为 {#button-behavior} 不要有单独的“批准”按钮。 也不要单独点击“批准”。 用户想要交换,只需要点击“交换”按钮,并启动批准来作为第一步。 可以用一个模态,通过计步器显示交易进度,或者显示简单通知“交易 1/2 - 正在批准”。 @@ -188,7 +188,7 @@ Figma 工具包也附于本文底部 - 请随意使用,快速制作你自己 ![包含一个批准按钮的用户界面](./15.png) -## 用作上下文帮助的按钮 {#button-as-contextual-help} +### 用作上下文帮助的按钮 {#button-as-contextual-help} 按钮可以起到另一个作用 - 作为警报! @@ -206,7 +206,7 @@ Figma 工具包也附于本文底部 - 请随意使用,快速制作你自己 ![主要行动号召中显示的错误信息](./17.png) -## 使用此 figma 文件构建你自己的设计 {#build-your-own-with-this-figma-file} +### 使用此 figma 文件构建你自己的设计 {#build-your-own-with-this-figma-file} 得益于多个协议的共同作用,去中心化交易所设计已经有了显著改进。 我们知道用户需要哪些信息,应该如何展示这些信息,以及如何使流程尽可能流畅。 希望这篇文章提供了关于用户体验原则的全面概述。 diff --git a/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md b/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md index ba75f08b2d5..b22617d525b 100644 --- a/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md +++ b/public/content/translations/zh/developers/tutorials/erc-721-vyper-annotated-code/index.md @@ -614,11 +614,11 @@ def burn(_tokenId: uint256): 任何可以转移代币的人都可以销毁它。 虽然销毁代币看起来等同于 转移到零地址,但零地址实际上并没有接收到代币。 这样我们可以释放所有用于代币的 存储,因而可以降低交易的燃料成本。 -# 使用此合约 {#using-contract} +## 使用此合约 {#using-contract} 与 Solidity 相比,Vyper 中没有继承。 这种有意而为之的设计选择,是为了使代码 更清晰,从而更容易受保护。 因此,要创建你自己的 Vyper ERC-721 合约,你可以 利用[此合约](https://github.com/vyperlang/vyper/blob/master/examples/tokens/ERC721.vy),并修改 它以实现想要的业务逻辑。 -## 总结 {#conclusion} +### 总结 {#conclusion} 回顾一下,下面是此合约中最重要的几点: diff --git a/public/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md b/public/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md index cb94430a192..6db470f76db 100644 --- a/public/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md +++ b/public/content/translations/zh/developers/tutorials/waffle-test-simple-smart-contract/index.md @@ -25,11 +25,11 @@ published: 2021-02-26 - 你使用过一些包管理器,如 yarn 或 npm - 你拥有关于智能合约和 Solidity 的非常基础的知识 -# 入门指南 {#getting-started} +## 入门指南 {#getting-started} 该教程演示了如何使用 yarn 进行测试设置和运行,但如果你更喜欢使用 npm 也没有问题——我将为你提供官方 Waffle [文档](https://ethereum-waffle.readthedocs.io/en/latest/index.html)的参考链接。 -## 安装依赖项 {#install-dependencies} +### 安装依赖项 {#install-dependencies} 将 ethereum-waffle 和 typescript 依赖项[添加](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#installation)到你的项目的开发依赖项中。 @@ -37,7 +37,7 @@ published: 2021-02-26 yarn add --dev ethereum-waffle ts-node typescript @types/jest ``` -## 智能合约示例 {#example-smart-contract} +### 智能合约示例 {#example-smart-contract} 在本教程中,我们将使用一个简单的智能合约示例- EtherSplitter。 它的作用无非是允许任何人发送一些以 wei 为单位的以太币,并平均分配给两个预定义的接收者。 Split 函数需要 wei 的数量是偶数,否则会回滚。 对于两个接收者,它都会执行 wei 转账,然后触发 Transfer 转账事件。 @@ -67,7 +67,7 @@ contract EtherSplitter { } ``` -## 编译合约 {#compile-the-contract} +### 编译合约 {#compile-the-contract} 要[编译](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#compiling-the-contract)该合约,请将以下条目添加到 package.json 文件中: @@ -90,7 +90,7 @@ contract EtherSplitter { 运行 `yarn build`。 作为结果,将出现 `build` 目录,并包含以 JSON 格式编译的 EtherSplitter 合约。 -## 测试设置 {#test-setup} +### 测试设置 {#test-setup} 使用 Waffle 进行测试需要使用 Chai 匹配器和 Mocha,因此你需要将它们[添加](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#writing-tests)到你的项目中。 请更新你的 package.json 文件,在 scripts 部分添加 `test` 条目: @@ -103,7 +103,7 @@ contract EtherSplitter { 如果你想要[执行](https://ethereum-waffle.readthedocs.io/en/latest/getting-started.html#running-tests)你的测试,只需要运行 `yarn test`。 -# 测试 {#testing} +## 测试 {#testing} 现在创建 `test` 目录,并创建一个新文件 `test\EtherSplitter.test.ts`。 复制下面的代码片段,并粘贴到我们的测试文件中。 @@ -134,7 +134,7 @@ describe("Ether Splitter", () => { 下一步,我们声明一个名为“splitter”的变量 - 这是我们的模拟 EtherSplitter 合约。 它在每次执行单个测试之前通过 `deployContract` 方法创建。 这个方法模拟了从钱包(作为第一个参数进行传递,在我们的例子中是发送者的钱包)部署合约的过程。 第二个参数是被测试合约的 ABI 和字节码,我们传入了从 `build` 目录中编译的 EtherSplitter 合约的 JSON 文件。 第三个参数是一个数组,包含合约的构造函数参数,在我们的例子中,它是接收者的两个地址。 -## changeBalances {#changebalances} +### changeBalances {#changebalances} 首先,我们将检查 split 方法是否确实更改了接收者钱包的余额。 如果我们从发送者帐户中拆分 50 wei,我们预计两个接收者的余额都会增加 25 wei。 我们将使用 Waffle 的 `changeBalances` 匹配器: @@ -162,7 +162,7 @@ it("Changes account balance", async () => { 接下来,我们将测试是否在每次 wei 转账后触发了 Transfer 转账事件。 我们将转向 Waffle 中的另一个匹配器: -## Emit {#emit} +### Emit {#emit} ```ts it("Emits event on the transfer to the first receiver", async () => { @@ -180,7 +180,7 @@ it("Emits event on the transfer to the second receiver", async () => { `emit` 匹配器允许我们检查合约在调用方法时是否触发了事件。 作为 `emit` 匹配器的参数,我们提供我们预测将触发事件的模拟合约,以及该事件的名称。 在我们的例子中,模拟合约是 `splitter`,事件名称为 `Transfer`。 我们还可以验证事件触发时使用的具体参数值 - 我们向 `withArgs` 匹配器传递的参数数量应该与我们事件声明所期望的参数数量相同。 对于 EtherSplitter 合约,我们需要传递发送者和接收者的地址,以及转移的 wei 数量作为参数。 -## revertedWith {#revertedwith} +### revertedWith {#revertedwith} 作为最后一个例子,我们将检查如果 wei 数量拆分不均匀时是否回滚了交易。 我们将使用 `revertedWith` 匹配器: @@ -194,7 +194,7 @@ it("Reverts when Vei amount uneven", async () => { 如果测试通过,这将确保该交易确实已被回滚。 然而,在 `require` 语句中传递的消息和我们在 `revertedWith` 中期望的消息之间也必须完全匹配。 如果我们回到 EtherSplitter 合约的代码中,在关于 wei 数量的 `require` 语句中,我们提供了这样的信息:“Uneven wei amount not allowed”(不允许 wei 数量不均匀)。 这与我们在测试中期望的消息相匹配。 如果它们不相等,则测试将失败。 -# 恭喜你! {#congratulations} +## 恭喜你! {#congratulations} 你已经迈出了使用 Waffle 测试智能合约的第一步! 你可能对其它的 Waffle 教程感兴趣: diff --git a/public/content/wrapped-eth/index.md b/public/content/wrapped-eth/index.md index a62a7fc53be..3cf2cf9a058 100644 --- a/public/content/wrapped-eth/index.md +++ b/public/content/wrapped-eth/index.md @@ -62,5 +62,5 @@ Besides the [canonical implementation of WETH](https://etherscan.io/token/0xc02a ## Further reading {#further-reading} - [WTF is WETH?](https://weth.tkn.eth.limo/) -- [WETH token information on Etherscan](https://etherscan.io/token/0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2) +- [WETH token information on Blockscout](https://eth.blockscout.com/token/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2) - [Formal Verification of WETH](https://zellic.io/blog/formal-verification-weth) diff --git a/public/content/zero-knowledge-proofs/index.md b/public/content/zero-knowledge-proofs/index.md index b39b8b8e3fb..c6bb6f15a8a 100644 --- a/public/content/zero-knowledge-proofs/index.md +++ b/public/content/zero-knowledge-proofs/index.md @@ -46,6 +46,12 @@ Current identity management systems put personal information at risk. Zero-knowl Zero-knowledge proofs are particularly useful in the context of [decentralized identity](/decentralized-identity/). Decentralized identity (also described as ‘self-sovereign identity’) gives the individual the ability to control access to personal identifiers. Proving your citizenship without revealing your tax ID or passport details is a good example of how zero-knowledge technology enables decentralized identity. +### Proof of Humanity {#proof-of-humanity} + +One of the most widely used examples of zero-knowledge proofs in action today is the [World ID protocol](https://world.org/blog/world/world-id-faqs), which can be thought of as “a global digital passport for the age of AI.” It allows people to prove they are unique individuals without revealing personal information. This is achieved through a device called the Orb, which scans a person's iris and generates an iris code. The iris code is checked and verified to confirm the person is a biologically unique human being. After verification, an identity commitment generated on the user’s device (and not linked to or derived from the biometric data) is added to a secure list on the blockchain. Then, whenever the user wants to prove they’re a verified human – whether to sign in, vote, or take other actions – they can generate a zero-knowledge proof that confirms their membership in the list. The beauty of using a zero-knowledge proof is that only one statement is revealed: this person is unique. Everything else stays private. + +World ID relies on the [Semaphore protocol](https://docs.semaphore.pse.dev/) developed by the [PSE team](https://pse.dev/) at the Ethereum Foundation. Semaphore is designed to be a lightweight yet powerful way to generate and verify zero-knowledge proofs. It lets users prove they're part of a group (in this case, verified humans) without showing which member of the group they are. Semaphore is also highly flexible, allowing groups to be created based on a wide range of criteria such as identity verification, participation in events, or ownership of credentials. + ### Authentication {#authentication} Using online services requires proving your identity and right to access those platforms. This often requires providing personal information, like names, email addresses, birth dates, and so on. You may also need to memorize long passwords or risk losing access. diff --git a/public/images/wallets/metamask.png b/public/images/wallets/metamask.png index 85ec29ff032..3ac924adecc 100644 Binary files a/public/images/wallets/metamask.png and b/public/images/wallets/metamask.png differ diff --git a/src/components/CentralizedExchanges/index.tsx b/src/components/CentralizedExchanges/index.tsx index 3c2bb2ff3ff..99ed3dd7650 100644 --- a/src/components/CentralizedExchanges/index.tsx +++ b/src/components/CentralizedExchanges/index.tsx @@ -1,3 +1,5 @@ +"use client" + import { useLocale } from "next-intl" import type { ChildOnlyProp, Lang } from "@/lib/types" @@ -79,11 +81,7 @@ const CentralizedExchanges = ({ const lastUpdated = getLocaleTimestamp(locale as Lang, lastDataUpdateDate) return ( -
-

{t("page-get-eth-exchanges-header")}

-

- {t("page-get-eth-exchanges-intro")} -

+ <>